hebut 发表于 2011-10-9 16:41

fsolve循环使用中的问题

还是昨天的八元二次方程组循环求解(http://forum.vibunion.com/thread-106169-1-1.html),每次循环方程组里的参数会发生改变

现在的问题是:每次开始运行,第一次循环得到的结果是正确的,但是第二次第三次和以后的循环要不就是提示
Norm of First-order Trust-region
Iteration Func-count f(x) step optimality radius
0 9 1.82858e-014 0 1
Optimization terminated: first-order optimality is less than options.TolFun.或者提示,初值不对,需要重新设置初值。


下面是主程序


x0=;
options=optimset('LevenbergMarquardt','on','FunValCheck','on','TolFun',1e-12,'TolX',1e-12,'Display','iter');   
= fsolve(@myfun,x0,options);下面是方程子函数

function F = myfun(x)
load spectral.mat;
F = [Gapap_1-Gapap_2-2.....;
Gapbp_1_re-Gapbp_2_re-Ganbp_1.....;
Gapbp_1_im-Gapbp_......;
Gbpbp_1-Gbpbp_2-2*Ganbp_1_re*x(5.....;
Gapap_2-Gapap_3-2*Ganap_2_re*x(1)+2*Ganap_3_....;
Gapbp_2_re-Gapbp_3_re-Ganbp_2_re*x(....;
Gapbp_2_im-Gapbp_3_im-Ganbp_2_im*x(..........;
Gbpbp_.....];函数太长,没写全
spectral.mat;是主程序中保存的变量值

页: [1]
查看完整版本: fsolve循环使用中的问题