利用MATLAB求解微分方程初值问题

现在我已经利用matlab求出了dM/dt的解但是怎么样解出M=0时候的t,和t=0时候的M?我看matlab的HELP,觉得应该可以利用:[T,Y,TE,YE,IE]=... 现在我已经利用matlab求出了dM/dt的解
但是怎么样解出M=0时候的t,和t=0时候的M?
我看matlab的HELP,觉得应该可以利用:
[T,Y,TE,YE,IE] = solver(odefun,tspan,y0,options)
以及
sol = solver(odefun,[t0 tf],y0...)
但是具体用法我不是很懂,希望达人能帮忙
答得好有加分。
展开
yjoli
2011-09-06 · TA获得超过1384个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:195万
展开全部
朋友,要根据初值积分对dM/dt积分求得M,才能求解M(t)=0或t(M)=0。
solver(积分函数,积分时间,初值,设置)也是这样的数学方法。
简单的求解
[时间,解]=solver(积分函数,积分时间,初值);
追问
恩,我按照你说的已经解出M了,再怎么求M(t)=0和t(M)=0?
追答
你是符号求解还是数值求解?符号求解可再用solve();
数值解你应该得到了数组M,和一个时间序列T,如果点不较少,精度不高,所以以序列T,M差值,找到其与0之差绝对值最小的就行。例如

X=linspace(min(T),max(T),N);%N自己幅值,X是新的时间序列
Y=interp1(T,M,X,'cubic');%差值方法自己确定
[a b]=min(abs(Y));%如果Y是单调的话
T0=T(b);%T0为M(t)=0的解
当然,这里把问题直接简单化了,但方法可行,针对你的具体问题相应调整就行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式