С последней публикации в этом разделе прошло без десяти дней десять лет. Что ж, можно возобновить.
(%i1) |
sys:[ ‘diff(x,t)=y+2·exp(t), ‘diff(y,t)=x+t^2 ]; |
(sys)[ddtx=y+2%et,ddty=x+t2]
Система объявлена, можем начинать решать. Сначала выделим однородную систему
(%i2) |
sys,x=0,y=0; |
[0=2%et,0=t2]
(%i3) |
sys−%; |
[ddtx=y,ddty=x]
(%i4) |
%,x=x0,y=y0; |
[ddtx0=y0,ddty0=x0]
(%i5) |
osys:%$ |
Выделим правые части
(%i6) |
map(rhs,osys); |
[y0,x0]
составим матрицу коэффициентов
(%i7) |
coefmatrix(%,[x0,y0]); |
(0110)
и найдём её собственные значения и векторы
(%i8) |
eigenvectors(%); |
[[[−1,1],[1,1]],[[[1,−1]],[[1,1]]]]
Тут первый элемент состоит из списка собственных чисел и их списка кратностей, а второй — это список наборов независимых собственных векторов, принадлежащих каждому из собственных значений. Соорудим из полученного решения однородной системы:
(%i9) |
C[1]·%[2][1][1]·exp(%[1][1][1]·t)+ C[2]·%[2][2][1]·exp(%[1][1][2]·t) ; |
[C2%et+C1%e−t,C2%et−C1%e−t]
(%i10) |
[x0=%[1],y0=%[2]]; |
[x0=C2%et+C1%e−t,y0=C2%et−C1%e−t]
(%i11) |
ois:%$ |
Теперь выделим первую из неоднородных систем — с экспонентой:
(%i12) |
sys,t^2=0; |
[ddtx=y+2%et,ddty=x]
(%i13) |
%,x=x1,y=y1; |
[ddtx1=y1+2%et,ddty1=x1]
(%i14) |
nsys:%$ |
Так как γ — корень кратности 1, общий вид решения запишем так:
(%i15) |
nis11:[ x1=(a·t+b)·exp(t), y1=(c·t+d)·exp(t) ]; |
(nis11)[x1=(at+b)%et,y1=(ct+d)%et]
Подставим решение в таком виде в соответствующую систему
(%i16) |
nsys,nis11; |
[ddt((at+b)%et)=(ct+d)%et+2%et,ddt((ct+d)%et)=(at+b)%et]
произведём дифференцирование, сократим на экспоненту и раскроем скобки
(%i17) |
%,diff; |
[(at+b)%et+a%et=(ct+d)%et+2%et,(ct+d)%et+c%et=(at+b)%et]
(%i18) |
%/exp(t); |
[%e−t((at+b)%et+a%et)=%e−t((ct+d)%et+2%et),%e−t((ct+d)%et+c%et)=at+b]
(%i19) |
expand(%); |
[at+b+a=ct+d+2,ct+d+c=at+b]
Эти уравнения должны соблюдаться тождественно, в том числе при t=1 и t=0. Подставим эти значения, полученные системы объединим в одну и решим, найдя коэффициенты:
(%i20) |
[ev(%,t=0),ev(%,t=1)]; |
[[b+a=d+2,d+c=b],[b+2a=d+c+2,d+2c=b+a]]
(%i21) |
flatten(%); |
[b+a=d+2,d+c=b,b+2a=d+c+2,d+2c=b+a]
(%i22) |
solve(%,[a,b,c,d]); |
solve: dependent equations eliminated: (4)
[[a=1,b=%r1+1,c=1,d=%r1]]
Подставим эти коэффициенты в решение, зададим значение произвольных параметров и сохраним полученное на будущее:
(%i23) |
nis11,%; |
[x1=(t+%r1+1)%et,y1=(t+%r1)%et]
(%i24) |
%,%r1=0; |
[x1=(t+1)%et,y1=t%et]
(%i25) |
nis1:%$ |
Теперь решим вторую неоднородную систему, с квадратом:
(%i26) |
sys,exp(t)=0; |
[ddtx=y,ddty=x+t2]
(%i27) |
%,x=x2,y=y2; |
[ddtx2=y2,ddty2=x2+t2]
(%i28) |
nsys2:%$ |
Решение будем искать в виде полиномов второй степени:
(%i29) |
nis21:[ x2=a·t^2+b·t+c, y2=d·t^2+e·t+f ]; |
(nis21)[x2=at2+bt+c,y2=dt2+et+f]
Процесс нахождения коэффициентов аналогичен таковому для первой неоднородной системы.
(%i30) |
nsys2,nis21; |
[ddt(at2+bt+c)=dt2+et+f,ddt(dt2+et+f)=at2+t2+bt+c]
(%i31) |
%,diff; |
[2at+b=dt2+et+f,2dt+e=at2+t2+bt+c]
(%i32) |
[ev(%,t=0),ev(%,t=1)]; |
[[b=f,e=c],[b+2a=f+e+d,e+2d=c+b+a+1]]
(%i33) |
flatten(%); |
[b=f,e=c,b+2a=f+e+d,e+2d=c+b+a+1]
(%i34) |
solve(%,[a,b,c,d,e,f]); |
[[a=%r2,b=%r3,c=−%r3+3%r2−12,d=%r3+%r2+12,e=−%r3+3%r2−12,f=%r3]]
(%i35) |
nis21,%; |
[x2=%r2t2+%r3t+−%r3+3%r2−12,y2=(%r3+%r2+1)t22+(−%r3+3%r2−1)t2+%r3]
(%i36) |
%,%r2=0,%r3=0; |
[x2=−12,y2=t22−t2]
(%i37) |
nis2:%$ |
Наконец, сложим общее решение однородной системы и два частных решения неоднородных, и получим ответ:
(%i38) |
[ x=x0+x1+x2, y=y0+y1+y2 ]; |
[x=x2+x1+x0,y=y2+y1+y0]
(%i39) |
%,ois,nis1,nis2; |
[x=(t+1)%et+C2%et+C1%e−t−12,y=t%et+C2%et−C1%e−t+t22−t2]