东南小忽悠 发表于 2011-5-3 17:27

求助:解非线性方程组 结果保留有效数字位数怎么设置

程序如下
function x=myfun1
x0 = ;
options=optimset('MaxFunEvals',33000,'MaxIter',700000);
= 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保留的有效位数不足,应该在程序中如何设置

zhouyang664 发表于 2011-5-3 20:08

仅仅format long 即可!

东南小忽悠 发表于 2011-5-4 10:10

回复 2 # zhouyang664 的帖子

恩,好的, 谢谢,试试
页: [1]
查看完整版本: 求助:解非线性方程组 结果保留有效数字位数怎么设置