【发布时间】:2014-05-03 12:44:15
【问题描述】:
当我尝试运行以下程序时,我不断收到错误消息。错误在最后一行。
function[P,t] = apprice(xl, xr, J, N, eps)
E=50;
r=0.02;
sigma=0.20;
T=1/3;
alpha=0.5*sigma^2*T;
nu=2*r/(sigma^2);
h=(xr-xl)/(J+1);
mu=-((nu+1)^2)/4;
delta_t=0.25/(N-1);
lambda=delta_t/(h^2);
for j=1:J+2
x(j)=xl+(j-1)*h;
end
for i=1:N+1
tau(i)=(i-1)*delta_t;
end
g_0=max(exp(((nu-1).*x)/2)-exp(((nu+1).*x)/2),0);
v(:,1)=g_0;
for n=2:N+1
g=g_0*exp(-mu*tau(n));
w_old(2:J+1)=max(v(2:J+1,n-1)',g(2:J+1,n));
我知道索引超出了矩阵维度,但我不太确定在哪里解决问题。
任何帮助将不胜感激!
【问题讨论】:
-
欢迎来到 Stack Overflow!要求人们发现代码中的错误并不是特别有效。您应该使用调试器(或添加打印语句)来隔离问题,方法是跟踪程序的进度,并将其与您期望发生的情况进行比较。一旦两者发生分歧,那么您就发现了您的问题。 (然后如果有必要,你应该构造一个minimal test-case。)
-
当我们不知道您传入的变量的大小时,谁能提供帮助?见:mathworks.co.uk/help/matlab/debugging-code.html