声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1016|回复: 3

[编程技巧] 用matlab实现JC法出错求助

[复制链接]
发表于 2007-12-19 15:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
Miu_R=100;
Sigma_R=12;

Miu_S=50;
Sigma_S=7.5;
syms R S Ibeta
g=R-S;

R_cos=-diff(g,R).*Sigma_R./sqrt((diff(g,R).*Sigma_R)^2+(diff(g,S).*Sigma_S)^2);
S_cos=-diff(g,S).*Sigma_S./sqrt((diff(g,R).*Sigma_R)^2+(diff(g,S).*Sigma_S)^2);


% Iteration 1
R_star=Miu_R;
S_star=Miu_S;

Arfa_R=subs(R_cos,{R,S},{Miu_R,Miu_S });
Arfa_S=subs(S_cos,{R,S},{Miu_R,Miu_S});

F=50-12.*beta.*Arfa_R+7.5.*beta.*Arfa_S;
beta1=solve(F,beta);
beta_s=beta1(1);
for i=2:1000
R_star=Miu_R-Arfa_R.*beta_s.*Sigma_R;
S_star=Miu_S-Arfa_S.*beta_s.*Sigma_S;


Arfa_S=subs(S_cos,{R,S},{R_star,S_star});
Arfa_R=subs(R_cos,{R,S},{R_star,S_star });
F=50-12.*beta.*Arfa_R+7.5.*beta.*Arfa_S;

beta2=solve(F,beta);
beta(i)=beta2(1);
p=eval(abs(beta(i)-beta_s));
if p>1e-4;
beta_s=beta(i);
break
end
Pf=norminv(-beta(i),0,1);
disp('R_star','S_star','beta2(1)','Pf');
end


Error in ==> d:\MATLAB6p5\work\Untitled3.m
On line 32  ==> Pf=norminv(-beta(i),0,1);

这里一直出错,各位帮帮忙啊.

[ 本帖最后由 eight 于 2007-12-19 15:59 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-12-19 15:23 | 显示全部楼层
请帖完整错误信息
发表于 2007-12-19 15:36 | 显示全部楼层
我运行了下,出现这个错误
我的是7。5的,

??? Error using ==> beta at 21
Not enough input arguments.

估计你的bata不是调用matlab自带的bata函数吧   

如果不是的话,把bata换个名字。

[ 本帖最后由 sigma665 于 2007-12-19 15:39 编辑 ]
发表于 2007-12-19 16:00 | 显示全部楼层
原帖由 l54tianya 于 2007-12-19 15:14 发表
Miu_R=100;
Sigma_R=12;

Miu_S=50;
Sigma_S=7.5;
syms R S Ibeta
g=R-S;

R_cos=-diff(g,R).*Sigma_R./sqrt((diff(g,R).*Sigma_R)^2+(diff(g,S).*Sigma_S)^2);
S_cos=-diff(g,S).*Sigma_S./sqr ...


下次发帖前,请先认真阅读置顶帖
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 03:22 , Processed in 0.069689 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表