Построение решения дифференциального уравнения с помощью Sagemath - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужно решить дифференциальное уравнение.Решение будет зависеть от t и q, и мне нужно определить это q кусочно в зависимости от t.

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:00 до 22:00 и включен с 22:00 до 8:00.Поэтому мне нужно определить функцию aq, что если t mod 24 находится между 8 и 22, то его значение равно 0, а в противном случае - 0.054.

Я пробовал использовать кусочную функцию, но она ничего не отображает, я всегда получаюсообщения об ошибках.

Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...