24小时热门版块排行榜    

查看: 966  |  回复: 0

prince1000

银虫 (小有名气)

[求助] 再次恳求高手帮忙ode45解微分方程组的问题

function dy=diff(r,y)
dy=zeros(3,1)
dy(1)=-((371.04*cos(123.68*r)/(20+sin(123.68*r))+1/r+140/(20+sin(123.68*r))^2/r)/(1+140/(20+sin(123.68*r))^2))*y(1)-((137.2848*cos(123.68*r)/(20+sin(123.68*r))/r-1/r^2)/(1+140/(20+sin(123.68*r))^2))*y(2)+(140/(20+sin(123.68*r))^2/r^2/(1+140/(20+sin(123.68*r))^2))*y(2)
dy(2)=y(1)

用ode45('diff',[r0,r],[y1,y2])命令解以上一阶常微分方程组,这个解区间[r0,r]应该为[0 100],可是零是要出错的,因为方程中有1/r,那这个r0怎么设定呢?是不是取一个很小的数,如1.D-50,可是我试了用[1.D-50 100]和[1.D-40 100],算出来的y(1)差好几个数量级,也就是说y(1)强烈的依赖于r0的取值,这是什么原因呢?解区间的开始的值会导致发散的情况,这个解区间的开始值应怎么取呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 prince1000 的主题更新
信息提示
请填处理意见