matlab中出现需要增大options.MaxFunEvals在用matlab解以下非线性方程组的时候出现问题!function G=myfun(x,c1,c2,c3,c4,r)c1=1961873000;c2=300000000;c3=2980623060;c4=0.356232671;r=0.03;d1=(log(x(1)/c2)+(r+(x(2)^2)/2))/x(2);d2=d1-x(2

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/18 11:54:27

matlab中出现需要增大options.MaxFunEvals在用matlab解以下非线性方程组的时候出现问题!function G=myfun(x,c1,c2,c3,c4,r)c1=1961873000;c2=300000000;c3=2980623060;c4=0.356232671;r=0.03;d1=(log(x(1)/c2)+(r+(x(2)^2)/2))/x(2);d2=d1-x(2
matlab中出现需要增大options.MaxFunEvals
在用matlab解以下非线性方程组的时候出现问题!
function G=myfun(x,c1,c2,c3,c4,r)
c1=1961873000;
c2=300000000;
c3=2980623060;
c4=0.356232671;
r=0.03;
d1=(log(x(1)/c2)+(r+(x(2)^2)/2))/x(2);
d2=d1-x(2);
d3=(log(c1^2/(x(1)*c2))+(r+(x(2)^2)/2))/x(2);
d4=d3-x(2);
d5=(log(x(1)/c1)+(r+(x(2)^2)/2))/x(2);
G=[x(1)*normcdf(d1,0,1)-c2*exp(-r)*normcdf(d2,0,1)-(x(1)/c1)^(-2*r/(x(2))^2)*c1*normcdf(d3,0,1)+(x(1)/c2)^(1-2*r/(x(2)^2))*exp(-r)*c2*normcdf(d4,0,1)-c3;
normcdf(d5,0,1)*x(1)*x(2)-c3*c4];
fsolve(@myfun1,[100000000,0.1],optimset('display','iter'))
结果出现
fsolve stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 200 (the default value).
那么到底要怎么增加这个options.MaxFunEvals,我按他help里的方法也没用

matlab中出现需要增大options.MaxFunEvals在用matlab解以下非线性方程组的时候出现问题!function G=myfun(x,c1,c2,c3,c4,r)c1=1961873000;c2=300000000;c3=2980623060;c4=0.356232671;r=0.03;d1=(log(x(1)/c2)+(r+(x(2)^2)/2))/x(2);d2=d1-x(2

    fsolve(@myfun1,[100000000,0.1],optimset('display','iter'))
改成

    fsolve(@myfun1,[100000000,0.1],optimset('display','iter','MaxFunEvals',1000))
其中1000这个数根据你的需要改.