<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/239655</link>
    <title>MATLAB Central Newsreader - Trying to Produce 3D graph</title>
    <description>Feed for thread: Trying to Produce 3D graph</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Fri, 21 Nov 2008 05:47:02 -0500</pubDate>
      <title>Trying to Produce 3D graph</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/239655#612326</link>
      <author>Hugh </author>
      <description>Hi I have the follwin code:&lt;br&gt;
&lt;br&gt;
function y = ImpVol(C,S,K,r,T,m,l,u,prec)&lt;br&gt;
&lt;br&gt;
f =@(x) BS_European_Call(S,K,x,r,T)-C;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch m&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'bisection'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=bisection(f,l,u,prec,S,K,r,T,C);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'newton'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=newton(f,u,prec,S,K,r,T);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'secant'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=secant(f,u,prec);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'RFalsi'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y=RFalsi(f,l,u,prec,S,K,r,T,C);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;otherwise         &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y =MRFalsi(f,l,u,prec,S,K,r,T,C);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
function val = bisection(f,a,b,tol,S,K,r,T,a_th)&lt;br&gt;
&lt;br&gt;
sigma_0=a;&lt;br&gt;
a_call0 = BS_European_Call(S,K,sigma_0,r,T)&lt;br&gt;
&lt;br&gt;
sigma_1=b;&lt;br&gt;
a_call1 = BS_European_Call(S,K,sigma_1,r,T)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
if (a_call0-a_th)*(a_call1-a_th) &amp;lt;= tol &amp; (a_call0-a_th)*(a_call1-a_th) &amp;gt;= -tol&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;disp('a_call is one  of the initial guesses')&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;br&gt;
end&lt;br&gt;
%------------------------------------------------------------------------&lt;br&gt;
%&lt;br&gt;
k=1;t=[];g=[];&lt;br&gt;
&lt;br&gt;
tic;&lt;br&gt;
&lt;br&gt;
while (a_call0-a_th)*(a_call1-a_th) &amp;lt; tol &lt;br&gt;
&lt;br&gt;
% in case sigma_0+sigma_1 = 0  &lt;br&gt;
sigma_aux = (sigma_0+sigma_1);&lt;br&gt;
if sigma_aux &amp;lt;= tol &amp; sigma_aux &amp;gt;= -tol &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sigma_aux = sigma_aux + tol;&lt;br&gt;
end&lt;br&gt;
sigma_m = sigma_aux/2&lt;br&gt;
t(k)=sigma_m;&lt;br&gt;
a_callm = BS_European_Call(S,K,sigma_m,r,T);&lt;br&gt;
g(k)=a_callm;&lt;br&gt;
k=k+1;&lt;br&gt;
&lt;br&gt;
if (a_call0-a_th)*(a_callm-a_th) &amp;lt; 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if a_callm &amp;gt;= a_th-tol &amp; a_callm &amp;lt;= a_th+tol&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;disp('a_{callm} is a_th')&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t(k)=sigma_m;g(k)=a_callm;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sigma_1 =sigma_m;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a_call1=a_callm;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
elseif (a_callm-a_th)*(a_call1-a_th) &amp;lt; 0 &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if a_callm &amp;gt;= a_th-tol &amp; a_callm&amp;lt;= a_th+tol&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;disp('a_{callm} is a_th')&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t(k)=sigma_m;g(k)=a_callm;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sigma_0 =sigma_m;   &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a_call0=a_callm;&lt;br&gt;
end                   % close &quot;if&quot;&lt;br&gt;
end                   % close &quot;while&quot;&lt;br&gt;
val= sigma_m;&lt;br&gt;
toc;&lt;br&gt;
&lt;br&gt;
disp(k);&lt;br&gt;
&lt;br&gt;
figure(1),subplot(2,1,2);plot([1:k],g,'*',[0:k],4.7594*ones(k+1),'r');&lt;br&gt;
xlabel('Number of iterations');&lt;br&gt;
ylabel('European Call');legend('Call values','At \sigma=0.2 Call = 4.7594')&lt;br&gt;
grid on&lt;br&gt;
subplot(2,1,1);plot([1:k],t);&lt;br&gt;
xlabel('Number of iterations');&lt;br&gt;
ylabel('\sigma');&lt;br&gt;
title('Implied volatility using Bisection method');&lt;br&gt;
grid on&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
figure(2)&lt;br&gt;
plot([1:k],g,'*')&lt;br&gt;
grid on&lt;br&gt;
&lt;br&gt;
figure(3)&lt;br&gt;
plot([1:k],t)&lt;br&gt;
grid on&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
I want to prduce a 3D map of the values from this function by moving the 2nd last and last paramters over 10 values each ImpVol(4.7594,42,40,0.1,0.5,'newton',0.1,1,0.0001)&lt;br&gt;
&lt;br&gt;
i.e. vector upper(1:10);&lt;br&gt;
vector accuracy(0.1:0.000000001);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
can someone please explain in detaili how to do this, I've been trying for ages but have only founf a hundred ways to faill!!</description>
    </item>
  </channel>
</rss>

