matlab编程出错,S0=50;K=5;r=0.2;sigma=0.3;T=0.5;a=428.5912b=246.7252c=-801.6449for i=1:10; for j=1:100; A(i,j)=S0*exp((r-sigma^2/2)*T+sigma*random_A(i,j)*sqrt(T)); if A(i,j)>K; and b*A(i,j)+c *(A(i,j)^2)-A(i,j)>-K-a; B(i,j)=0; else B(i,j)=a +b*A(i
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 09:33:11
![matlab编程出错,S0=50;K=5;r=0.2;sigma=0.3;T=0.5;a=428.5912b=246.7252c=-801.6449for i=1:10; for j=1:100; A(i,j)=S0*exp((r-sigma^2/2)*T+sigma*random_A(i,j)*sqrt(T)); if A(i,j)>K; and b*A(i,j)+c *(A(i,j)^2)-A(i,j)>-K-a; B(i,j)=0; else B(i,j)=a +b*A(i](/uploads/image/z/3688060-4-0.jpg?t=matlab%E7%BC%96%E7%A8%8B%E5%87%BA%E9%94%99%2CS0%3D50%3BK%3D5%3Br%3D0.2%3Bsigma%3D0.3%3BT%3D0.5%3Ba%3D428.5912b%3D246.7252c%3D-801.6449for+i%3D1%3A10%3B+for+j%3D1%3A100%3B+A%28i%2Cj%29%3DS0%2Aexp%28%28r-sigma%5E2%2F2%29%2AT%2Bsigma%2Arandom_A%28i%2Cj%29%2Asqrt%28T%29%29%3B+if+A%28i%2Cj%29%3EK%3B+and+b%2AA%28i%2Cj%29%2Bc+%2A%28A%28i%2Cj%29%5E2%29-A%28i%2Cj%29%3E-K-a%3B+B%28i%2Cj%29%3D0%3B+else+B%28i%2Cj%29%3Da+%2Bb%2AA%28i)
matlab编程出错,S0=50;K=5;r=0.2;sigma=0.3;T=0.5;a=428.5912b=246.7252c=-801.6449for i=1:10; for j=1:100; A(i,j)=S0*exp((r-sigma^2/2)*T+sigma*random_A(i,j)*sqrt(T)); if A(i,j)>K; and b*A(i,j)+c *(A(i,j)^2)-A(i,j)>-K-a; B(i,j)=0; else B(i,j)=a +b*A(i
matlab编程出错,
S0=50;
K=5;
r=0.2;
sigma=0.3;
T=0.5;
a=428.5912
b=246.7252
c=-801.6449
for i=1:10;
for j=1:100;
A(i,j)=S0*exp((r-sigma^2/2)*T+sigma*random_A(i,j)*sqrt(T));
if A(i,j)>K;
and b*A(i,j)+c *(A(i,j)^2)-A(i,j)>-K-a;
B(i,j)=0;
else B(i,j)=a +b*A(i,j)+c*(A(i,j) ^2);
end
end
end
A
B
Error using &
Inputs must have the same size.
matlab编程出错,S0=50;K=5;r=0.2;sigma=0.3;T=0.5;a=428.5912b=246.7252c=-801.6449for i=1:10; for j=1:100; A(i,j)=S0*exp((r-sigma^2/2)*T+sigma*random_A(i,j)*sqrt(T)); if A(i,j)>K; and b*A(i,j)+c *(A(i,j)^2)-A(i,j)>-K-a; B(i,j)=0; else B(i,j)=a +b*A(i
错误在于逻辑与&的使用,正确的代码如下,纠正错误的地方已用%注释说明
S0=50;
K=5;
r=0.2;
sigma=0.3;
T=0.5;
a=428.5912
b=246.7252
c=-801.6449
random_A=ones(10,100);%从你的错误提示,看出,你的程序之前已经给random_A赋值了
for i=1:10;
for j=1:100;
A(i,j)=S0*exp((r-sigma^2/2)*T+sigma*random_A(i,j)*sqrt(T));
if A(i,j)>K && b*A(i,j)+c *(A(i,j)^2)-A(i,j)>-K-a; %这是你出错的地方
B(i,j)=0;
else B(i,j)=a +b*A(i,j)+c*(A(i,j) ^2);
end
end
end
A
B
希望对你有帮助,欢迎交流!