使用Matlab中的绘图功能

时间:2017-04-28 01:08:40

标签: matlab plot

我试图绘制相对误差(y轴)和(x轴)上的时间步长。我使用LSM算法为美国选项定价,当我运行程序时,我没有收到任何输出,我不知道为什么。这是我的代码:

clear;
clc;
r = 0.06;
q = 0.03;
S0 = 40;
T = 1;
sigma = 0.4;
K = 40;
N = 10000;
M = 100000;
k = 1;

[Call,Put] = blsprice(S0,K,r,T,sigma,q);

for i = 1:200
    u(i) = LSM(T,r,q,sigma,K,S0,i,M,k);
    relative_error(i) = abs(Call - u(i))/Call;
    hold on
    plot(i,relative_error(i))
end

1 个答案:

答案 0 :(得分:1)

问题在于您一次将一个点传递给Matlab绘图函数。绘图功能的工作原理是获取一系列点并在它们之间画一条线。有一点,它不可能这样做。在for循环之后调用plot函数或使用:

plot(i,relative_error(i),'r*')

清楚地标明每一点。