用matlab求解二阶微分方程数值解,程序出现错误,求大神指点
1个回答
展开全部
1、把
G=1/3*((5*Pp-2*P1)/(P1-2*Pp)-P1*c1^2/Pp*cp^2);改成
G=1/3*((5*Pp-2*P1)/(P1+2*Pp)-P1*c1^2/(Pp*cp^2));表达式的错误导致出现高频振荡,积分步长非常小(大约在10^-8量级),所以很长时间算不出。
2、从结果看,仿真时间取50秒就足够了(已进入稳态)。
3、在出现busy的情况下,可以考虑让
ode*
函数不返回参数,此种情况下,会自动绘制响应曲线,而且可以随时通过GUI停止运行,便于观察求解过程的具体情况。
G=1/3*((5*Pp-2*P1)/(P1-2*Pp)-P1*c1^2/Pp*cp^2);改成
G=1/3*((5*Pp-2*P1)/(P1+2*Pp)-P1*c1^2/(Pp*cp^2));表达式的错误导致出现高频振荡,积分步长非常小(大约在10^-8量级),所以很长时间算不出。
2、从结果看,仿真时间取50秒就足够了(已进入稳态)。
3、在出现busy的情况下,可以考虑让
ode*
函数不返回参数,此种情况下,会自动绘制响应曲线,而且可以随时通过GUI停止运行,便于观察求解过程的具体情况。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询