声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2197|回复: 2

[综合讨论] 求助:解非线性方程组 结果保留有效数字位数怎么设置

[复制链接]
发表于 2011-5-3 17:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
程序如下
function x=myfun1
x0 = [10;5;0.3;0.02;4000];
options=optimset('MaxFunEvals',33000,'MaxIter',700000);
[x,fval] = fsolve(@f,x0,options) ;
function F=f(x)
k=3000
ga=10322.87553
ei=178892900.6
p=60000
c=1000
h=173
ae=0
ea=159299400
F =[k*x(2)-ea*(((h-ae-x(2))^2+(x(1))^2)^0.5-h)*cos(x(3))/h;
(x(1)-(h-ae-x(2))*x(3))*1000;
(x(4)-((k*x(2)+p)*(ga+p)/(ei*ga))^0.5)*10000;
(1000*x(5)*(1-cos(x(4)*h))-c*h)/(k*x(2)+p)+((k*x(2)+p)*(c-k*x(2)*tan(x(3)))+ga*c)*sin(x(4)*h)/(ga*x(4)*(k*x(2)+p))-x(1);
1000*x(5)-(k*x(2)+p)*(1-cos(x(4)*h))*((ga+k*x(2)+p)*c/ga/x(4)/(k*x(2)+p)-k*x(2)/ga/x(4))/sin(x(4)*h)]

结果如下
F =

         0
   -0.0000
         0
    0.0000
    0.0195

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).

ans =
  1.0e+003 *
    0.0264
         0
    0.0002
    0.0000
    1.3118

有两项0.0000,0.0002  保留的有效位数不足,应该在程序中如何设置
回复
分享到:

使用道具 举报

发表于 2011-5-3 20:08 | 显示全部楼层
仅仅format long 即可!

评分

1

查看全部评分

 楼主| 发表于 2011-5-4 10:10 | 显示全部楼层
回复 2 # zhouyang664 的帖子

恩,好的, 谢谢,试试
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-20 07:37 , Processed in 0.109588 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表