登录论坛

查看完整版本 : [求助]用fsolve解方程组,带回方程验证出现错误。


Matlab
2008-09-16, 00:56
用fsolve解方程,解出的解不准确,自己往回带算出的值明明很大,但matlab给出的值却是接近0。
请高手们帮忙看下是哪错了,要是想提高准确度的话该怎么改?多谢了!!!
> clear
[x,y,f]= fsolve('[-0.06877*x(1)^2-0.06877*(100*pi)^2*x(2)^2+x(1),(x(1)^2+(100*pi)^2*x(2)^2)/(100*pi)*x(3)+(-0.2501)*(x(1)^2+(100*pi)^2*x(2)^2)+(100*pi)*x(2),x(1)-5.165161*(x(2)+x(3))]',[1; 0.01; 0.2],optimset('TolFun',1e-30,'TolX',1e-30))
Optimization terminated: relative function value changing by less
than max(options.TolFun^2,eps) and sum-of-squares of function
values is less than sqrt(options.TolFun).

x =

1.0267
0.0119
0.1869


y =

1.0e-015 *

0 0.4441 0


f =

3


下面是我自己把值往回带
>> a=-0.06877*1.0267^2-0.06877*(100*pi)^2*0.0119^2+1.0267

a =

-0.0069
>> clear
>> b=(1.0267^2+(100*pi)^2*0.0119^2)/(100*pi)*0.1869+(-0.2501)*(1.0267^2+(100*pi)^2*0.0119^2)+(100*pi)*0.0119

b =

-0.0117

>> clear
>> c=1.0267-5.165161*(0.0119+0.1869)

c =

-1.3401e-004
(正确的解应该是1.1474,0.012,0.2096,就第二个准点)

Matlab
2008-09-16, 10:20
这是我的方程

R/( R2+w2L2)=a
1/wLs+wL/( R2+w2L2)=-b
R=5.165161(L+Ls)
a=0.2224 b=-0.4103 w=50pi
R,L,Ls是未知数。上面我用x(1),x(2),x(3)代替
:L 平方打不出来,后面的2都是平方。