gladiator24 发表于 2011-9-5 15:36:54

方程求解

方程求解如下:
clc;
clear;
format long;
XY=0.164984207E+07;
%XY=0.205921093E+07;
%XY=0.257842948E+07;

x1=1E20;
y1=(20.384E+06)*(x1.^(-0.2))+(735.392E+06)*(x1.^(-0.98))-XY;
x2=1;
y2=(20.384E+06)*(x2.^(-0.2))+(735.392E+06)*(x2.^(-0.98))-XY;
x0=(x1+x2)/2;
y0=(20.384E+06)*(x0.^(-0.2))+(735.392E+06)*(x0.^(-0.98))-XY;
%****************************************************
while(abs(y0)>1E-10)
    if(y0>0)
      x2=x0;
      y2=(20.384E+06)*(x2.^(-0.2))+(735.392E+06)*(x2.^(-0.98))-XY;
    else
      x1=x0;
      y1=(20.384E+06)*(x1.^(-0.2))+(735.392E+06)*(x1.^(-0.98))-XY;
    end
   
    x0=(x1+x2)/2;
    y0=(20.384E+06)*(x0.^(-0.2))+(735.392E+06)*(x0.^(-0.98))-XY;
end
%****************************************************
x0

在方程求解中,对应XY的值
XY=0.164984207E+07;
XY=0.205921093E+07;
XY=0.257842948E+07;
第一个和第三个都能求解出x0,而第二个却不能求解。Matlab中始终显示“busy”,请帮忙指出错误所在!谢谢!

页: [1]
查看完整版本: 方程求解