Программа 52. Задача 70.
| > | restart; |
Процедура дифференцирования по t любого порядка
| > | Dif:=proc(x,i) if i=0 then x else diff(x,t$i) fi end: |
| > | with(LinearAlgebra): |
| > | with(PDEtools,declare): declare(x(t)): |
Максимальный порядок
| > | Nmax:=3: N:=Nmax-2: A:=Matrix(N+1): |
Исcледуемое уравнение
| > | eq:=16*diff(x(t),t$2)*sqrt(diff(x(t),t))+b*diff(x(t),t)+x(t)^4; |
Производные уравнения по времени порядка от 0 до N
| > | for k from 0 to N do z[k+1]:=Dif(eq,k);od: |
Задаем порядок особой точки и скорость
| > | Порядок:={0,3}; v0:=1: |
Порядок искомых производных (для уравнения 2 порядка)
| > | SET:={seq(j,j=0..Nmax)} minus Порядок; |
Заполнение матрицы
| > | for i to N+1 do |
| > | for j to N+1 do |
| > | A[i,j]:=subs(xx=Dif(x(t),SET[j]), |
| > | diff(subs(Dif(x(t),SET[j])=xx,z[i]),xx)); |
| > | od: |
| > | od: |
| > | A; |
Условие нестабильности
| > | Dtr:=Determinant(A); |
Выражение 2-й производной функции из уравнения (необходимо, если в Dtr входит 2-я производная)
| > | xtt:=solve(eq,diff(x(t),t$2)); |
| > | xttt:=diff(xtt,t); |
Подстановка 2-й и 3-й производной функции в условие нестабильности
| > | Dtr1:=simplify(subs(diff(x(t),t$3)=xttt,Dtr)); |
| > | Dtr2:=collect(simplify(subs(diff(x(t),t$2)=xtt,Dtr1)),x(t)); |
| > | subs(diff(x(t),t)=v0,Dtr2); |
| > |
| > | _MaxSols:=4; |
| > | evalf(solve(subs(diff(x(t),t)=v0,Dtr2),x(t))); |