Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-09-16, 00:56   #1
Matlab
初级会员
 
注册日期: 2007-12-01
帖子: 7
声望力: 0
Matlab 正向着好的方向发展
默认 [求助]用fsolve解方程组,带回方程验证出现错误。

用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   #2
Matlab
初级会员
 
注册日期: 2007-12-01
帖子: 7
声望力: 0
Matlab 正向着好的方向发展
默认 回复: [求助]用fsolve解方程组,带回方程验证出现错误。

这是我的方程

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都是平方。
Matlab 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:37


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.