Дифференциальные уравнения
Решение дифференциальных уравнений в символьном виде
Дифференциальными принято называть уравнения, в состав которых входят производные функции у(х), представляющей решение уравнения. Дифференциальные уравнения могут быть представлены в различной форме, например в общеизвестной форме Коши:
у'(х) = eqn=f(x,y).Несколько дифференциальных уравнений образуют систему дифференциальных уравнений. Решение таких систем также возможно средствами Mathematica и подробно описано в ряде книг по использованию системы [65-71]. Дифференциальные уравнения и системы дифференциальных уравнений могут быть линейными и нелинейными. Для линейных уравнений обычно существуют решения в аналитическом виде. Нелинейные дифференциальные уравнения в общем случае аналитических решений не имеют, но могут решаться приближенными численными методами. Дифференциальные уравнения широко используются в практике математических вычислений. Они являются основой при решении задач моделирования — особенно в динамике. Немногие математические системы имеют реализации численных методов решения систем дифференциальных уравнений. Но система Mathematica имеет средства как для символьного, так и для численного решения дифференциальных уравнений и их систем. Для решения дифференциальных уравнений в символьном виде используются следующие средства:
- DSolve[eqn, y[x], х] — решает дифференциальное уравнение относительно функций у [ х ] с независимой переменной х;
- DSolve[{eqnl, eqn2,...}, {yl [xl,...],...}, {xl,...}]-решает систему дифференциальных уравнений.
- DSolveConstants — опция к DSolve, определяющая постоянные интегрирования, которые будут использованы в результате;
- StartingStepSize — опция к NDSolve, определяющая величину начального шага.
Приведем примеры решения дифференциальных уравнений:
DSolve [Derivative [1] [у] [х] ==2*а*х^3, у[х], х] {{у[х]->aх4/2+С[1]}} DSolve[{yl' [х] == 2 х2, у2' [х] == 3 х}, {yl[х], у2[х]}, х] {{yl[x] ->-2х3/3+C[1], у2[х] ->3х2/2+C[2]}} DSo2ve{y'[x] +у[х] ==х, у[х], х} {{у[х] -*-1+х + е-хС[1]}} DSolve [у" [х] - у' [х] - 6 у [х] == 0, у [х] , х] {{У[х] ->| е-4хС[1] + С[2] -Cos[2x] -|sin[2x]}} DSolve [у" [х] + 4 у'[х] == 10 Sin [2 х] , у [х] , х] {{У[х] ->| е-4хС[1] + С[2] -Cos[2x] -|sin[2x]}} DSolve[y'[x] == Sin[Ex] , y[x] , x] {{y[x] ->C[1] +Sinlntegral[ex]}} DSolvefz2 w"[z] +zw'[z] - (z2 + l)w[z] ==0, w[z], z] {{w[z] ->BesselI[l, z] C[l] +BesselK[l, z] C[2] }}Как нетрудно заметить, аналитические решения дифференциальных уравнений могут содержать не только элементарные, но и специальные математические функции, что заметно расширяет возможности применения системы Mathematica в решении задач динамического моделирования.
Решение дифференциальных уравнений в численном виде
Многие дифференциальные уравнения не имеют аналитических решений — например, нелинейные. Однако они могут с приемлемой точностью решаться численными методами. Для численного решения систем дифференциальных уравнений используется функция NDSolve:- NDSolve [eqns, у, {x, xmin, xmax }]— ищет численное решение дифференциальных уравнений .eqns относительно функции у независимой переменной х в интервале от xmin до xmax;
- NDSolve [eqns, {yl, y2,...}, {x, xmin, xmax }]— ищет численные решения относительно функций yi.
Рис. 4.25. Решение системы дифференциальных уравнений с выводом решения в виде графиков временных зависимостей
Рис. 4.26. Решение системы дифференциальных уравнений с выводом решения в форме кривых на фазовых плоскостях
|