Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2007-12-01
帖子: 7
声望力: 0 ![]() |
![]()
用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,就第二个准点) |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2007-12-01
帖子: 7
声望力: 0 ![]() |
![]()
这是我的方程
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都是平方。 |
![]() |
![]() |