24小时热门版块排行榜    

查看: 4243  |  回复: 0

616840392

金虫 (小有名气)

[求助] 在Matlab中计算得到无穷大的问题

在Matlab中通过一个程序计算某一参数的值时,当变量达到一定值后计算结果显示无穷大,无法再计算,显然真实情况下的结果不应该是无穷大,别人用同样的参数都能计算出结果,不知道他们是怎样做到的。详细程序如下,通过相应的迭代计算出y值的大小。在程序中数字620对应的取值是变化的,当它的取值小于620或者大于996时都无法得到计算结果。请大神帮忙解决这一问题,谢谢!
详情请参见如下程序:
clc;clear;close all
m=200000;%起始点
e=0.000001;%精度
h=0.00000001;%步长
f=inline('620^2*0.5/206000-1820^2*(2*y)^(2*(-0.08))/206000-1820*0.65*(2*y)^(-0.08-0.76)','y'); %参数代入具体数值
t=0;
f0=feval(f,m);
f2=feval(f,m+h);
f1=feval(f,m-h);
n=m-2*h*f0/(f2-f1);
while abs(1-m/n)>e
    m=n;
    f0=feval(f,m);
    f2=feval(f,m+h);
    f1=feval(f,m-h);
    n=m-2*h*f0/(f2-f1);
    t=t+1;
    if t>999
        break
    end
end
if t==1000
disp('没找到方程的根!')
else
disp(m);%方程的解
end
回复此楼

» 猜你喜欢

零五零六零七又零八,长亭折柳,届届应有毕业时;或春或夏或秋亦或冬,故地重游,时时可为归宁日。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 616840392 的主题更新
信息提示
请填处理意见