利用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...)
但是具体用法我不是很懂,希望达人能帮忙
答得好有加分。 展开
但是怎么样解出M=0时候的t,和t=0时候的M?
我看matlab的HELP,觉得应该可以利用:
[T,Y,TE,YE,IE] = solver(odefun,tspan,y0,options)
以及
sol = solver(odefun,[t0 tf],y0...)
但是具体用法我不是很懂,希望达人能帮忙
答得好有加分。 展开
1个回答
展开全部
朋友,要根据初值积分对dM/dt积分求得M,才能求解M(t)=0或t(M)=0。
solver(积分函数,积分时间,初值,设置)也是这样的数学方法。
简单的求解
[时间,解]=solver(积分函数,积分时间,初值);
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的解
当然,这里把问题直接简单化了,但方法可行,针对你的具体问题相应调整就行。
富港检测技术(东莞)有限公司_
2024-04-02 广告
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询