用Sagemath绘制微分方程的解

时间:2018-11-24 23:55:59

标签: plot differential-equations sage

我需要求解一个微分方程。解决方案将取决于t和q,我需要根据t分段定义q。

var('k,Tmax,Tmin,w,T0,q'); T=function('T')(t); Te=function('Te')(t);

assume(k>0); assume(Tmax>Tmin); Te(t)=(Tmax+Tmin)/2+(Tmax-Tmin)/2*sin(w*t);

现在这是微分方程解决方案:

sol=desolve(diff(T(t),t)-q+k*(T(t)-Te(t)),[T,t],[0,T0]);

例如q = 0的解决方案就是

sol.subs(Tmax=21.6,Tmin=15.2,k=0.024,q=0,T0=15.6,w=pi/12);

但是我需要q成为加热器的模型,该加热器从8 AM到22 PM,从22 PM到8 AM。所以我需要定义一个q函数,如果t mod 24在8和22之间,则其值为0,否则为0.054。

我一直在尝试分段功能,但它没有绘制任何东西,我总是收到错误消息。

感谢您的时间。

0 个答案:

没有答案