24小时热门版块排行榜    

查看: 1126  |  回复: 5

ajicsu

金虫 (初入文坛)

[交流] 【求助】最小二乘问题(急) 已有3人参与

我是个MATLAB新手,在应用编辑器编辑函数:
function F = myfun(x)
a_m=534.87,b_m=-301.56,a_n=534.86,b_n=-301.58,c_m=-0.15,d_m=-0.27,c_n=-0.15,d_n=-0.27,l=300;
A=0.5*(exp(x(1)*l)+exp(-x(1)*l))*cos(x(2)*l);
B=0.5*(exp(x(1)*l)-exp(-x(1)*l))*sin(x(2)*l);
C=0.5*(exp(x(1)*l)-exp(-x(1)*l))*cos(x(2)*l);
D=0.5*(exp(x(1)*l)+exp(-x(1)*l))*sin(x(2)*l);
E=0.5*(exp(0.5*x(1)*l)+exp(-0.5*x(1)*l))*cos(0.5*x(2)*l);
I=0.5*(exp(0.5*x(1)*l)-exp(-0.5*x(1)*l))*sin(0.5*x(2)*l);
G=0.5*(exp(0.5*x(1)*l)-exp(-0.5*x(1)*l))*cos(0.5*x(2)*l);
H=0.5*(exp(0.5*x(1)*l)+exp(-0.5*x(1)*l))*sin(0.5*x(2)*l);
J=a_m*A-b_m*B-x(3)*c_m*C+x(4)*d_m*C+x(4)*c_m*D+x(3)*d_m*D;
K=a_n*A-b_n*B-x(3)*c_n*C+x(4)*d_n*C+x(4)*c_n*D+x(3)*d_n*D;
L=A*b_m+B*a_m-x(4)*c_m*C-x(3)*d_m*C-x(3)*c_m*D+x(4)*d_m*D;
M=A*b_n+B*a_n-x(4)*c_n*C-x(3)*d_n*C-x(3)*c_n*D+x(4)*d_n*D;
N=a_m*E-b_m*I-x(3)*c_m*G+x(4)*d_m*G+x(4)*c_m*H+x(3)*d_m*H;
O=E*b_m+I*a_m-x(4)*c_m*G-x(3)*d_m*G-x(3)*c_m*H+x(4)*d_m*H;
P=a_n*E-b_n*I-x(3)*c_n*G+x(4)*d_n*G+x(4)*c_n*H+x(3)*d_n*H;
Q=E*b_n+I*a_n-x(4)*c_n*G-x(3)*d_n*G-x(3)*c_n*H+x(4)*d_n*H;
F=[J*K-L*M-a_n*a_m+b_m*b_n;
    J*M+K*L-a_m*b_n-a_n*b_m;
    P*J-Q*L-N*a_n+O*b_n;
    P*L+Q*J-N*b_n-O*a_n]
然后在命令窗输入:
x0=[1 2 3 4];
[x]=lsqnonlin(@myfun,x0)
结果出现这种情况:
??? Error using ==> eig
NaN or Inf prevents convergence.

Error in ==> C:\MATLAB6p5p1\toolbox\optim\private\trust.m
On line 28  ==> [V,D] = eig(H);

Error in ==> C:\MATLAB6p5p1\toolbox\optim\private\trdog.m
On line 108  ==> [st,qpval,po,fcnt,lambda] = trust(rhs,MM,delta);

Error in ==> C:\MATLAB6p5p1\toolbox\optim\private\snls.m
On line 375  ==>       [sx,snod,qp,posdef,pcgit,Z] = trdog(x,g,A,D,delta,dv,...

Error in ==> C:\MATLAB6p5p1\toolbox\optim\private\lsqncommon.m
On line 207  ==>     [x,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msg]=...

Error in ==> C:\MATLAB6p5p1\toolbox\optim\lsqnonlin.m
On line 122  ==> [x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...


请问各位大虾,应该怎么解决。
以前用都可以,只是方程变了

[ Last edited by ajicsu on 2010-5-19 at 12:12 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

robert2020

银虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
adu886886(金币+1):谢谢提供意见 2010-05-19 14:38:23
zzuwangshilei:多谢分享经验 2010-05-21 21:48:48
计算过程中有的中间数据过大或过小导致的这种结果。
Truthfulness,Compassion,Tolerance,Beauty
2楼2010-05-19 12:32:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
robert2020(金币+1):鼓励交流讨论。考虑可能是因为数据太大(像运行程序后得到的 F 值)导致。楼主最后想要的数据没有出来。 2010-05-19 12:39:28
kuhailangyu(金币+1):谢谢参与 2010-05-19 16:50:07

这是啥数?
F =

  1.0e+265 *

   1.568034000166487
  -3.175955144234988
   0.000000000000000
   0.000000000000000
3楼2010-05-19 12:35:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ajicsu

金虫 (初入文坛)

robert2020:回复时请采用“引用回复该贴”,方便对方查看解答。欢迎常来仿真模拟版交流讨论。 2010-05-19 22:20:11
那么请问应该怎么解决呢?
4楼2010-05-19 14:17:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
adu886886(金币+1):谢谢提供意见 2010-05-19 20:36:26
你先搞明白lsqnonlin是干什么的,怎么用
5楼2010-05-19 20:19:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ajicsu

金虫 (初入文坛)

谢谢~~
6楼2010-05-21 18:36:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ajicsu 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见