全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
4008 11
2019-01-11
悬赏 100 个论坛币 未解决

自己定义的函数的一个变量取一系列值,然后输出对应的结果。

function [price sig] = mcmc(s0, K, sigma, r, T, N, M)
rx=randn(M, N-1);
dt=T/(N-1);
S=[s0*ones(M,1) zeros(M,N-1)];
for i=1:(N-1)
S(:,i+1)=S(:,i)+S(:,i)*r*dt+sigma*dt^0.5*(S(:,i).*rx(:,i));
end;
p1=max(mean(S(:,1:end),2)-K,0);
price=exp(-r*T)*mean(p1);
sig=std(p1)/M^0.5;
end
[price sig]=mcmc(50,50,0.4,0.1,1,60:80,100000)
比如我在这里想要看N取60到80的时候对应的price和sig
运行结果显示nonconformant arguments
应该是矩阵运算的问题,该怎么解决啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-1-11 21:35:32
给你一个建议,你把这个函数给程序化,即用一个程序去运行一下。就知道哪错了。。。。很容易的。即去掉它的函数性。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-1-11 21:42:44
rx=randn(M, N-1);这里是不允许你用向量去定义N=60:80的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-1-11 21:48:03
当然,你可以通过另外的方式把这个公式进行调整达到你算60到80的各个price与SIG值。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-1-11 21:56:17
function [price sig] = mcmc(s0, K, sigma, r, T, N, M)
x=0;
for NN=N
rx=randn(M, NN-1);
dt=T/(NN-1);
S=[s0*ones(M,1) zeros(M,NN-1)];
for i=1:(NN-1)
S(:,i+1)=S(:,i)+S(:,i)*r*dt+sigma*dt^0.5*(S(:,i).*rx(:,i));
end;
x=x+1;
p1=max(mean(S(:,1:end),2)-K,0);
price(x)=exp(-r*T)*mean(p1);
sig(x)=std(p1)/M^0.5;
end
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-1-11 21:56:54
我运行了一下,可行!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群