Приведем пример аналитического решения ДУ третьего порядка с контролем уровня вывода решения (файл deil):

> myDE:= x^2 * diff(y(х),х,х,х) - 2*(n+1)*x*diff(y(х), х, х) + (а*х^2+6*n)*diff(y(х),х)-2*а*х- y(х) = 0;

> infolevel[dsolve] := all: dsolve(myDE);

> infolevel[dsolve] := 1:dsolve(myDE);

<- No Liouvillian solutions exists

> infolevel[dsolve] := 3:dsolve(myDE); Methods for third order ODEs:

-- Trying classification methods --

trying a quadrature

checking if the LODE has constant coefficients

checking if the LODE is of Euler type

trying high order exact linear fully integrable

trying to convert to a linear ODE with constant coefficients

Equation is the LCLM of -2*x/(2*(2*n-1)/а+х^2)*y(x)+diff(y(x), x), a*y(x)-@KOD = 2*n/x*diff(y (x),x)+diff(diff(y(x),x),x)

checking if the LODE is of Euler type

-> Attemtping a differential factorization

  trying exponential solutions

  checking if the LODE is of Euler type 1, exponential solutions found

  exponential solutions successful

<- differential factorization successful

-> Tackling the linear ODE 'as given':

  trying a quadrature

  checking if the LODE has constant coefficients

  checking if the LODE is of Euler type

  trying a symmetry of the form [xi=0, eta=F(x)]

  checking if the LODE is missing 'y'

  -> Trying a Liouvillian solution using Kovacic's algorithm

  <- No Liouvillian solutions exists

  -> Trying a solution in terms of special functions:

    -> Bessel

    <- Bessel successful

  <- special function solution successful

<- successful solving of the linear ODE 'as given'

<- solving the LCLM ode successful

В данном случае повышение уровня вывода до 4 или 5 бесполезно, поскольку вся информация о решении сообщается уже при уровне 2 (или 3).

7.6.4. Приближенное полиномиальное решение дифференциальных уравнений

Во многих случаях аналитические решения даже простых ДУ оказываются весьма сложными, например, содержат специальные математические функции. При этом нередко полезна подмена такого решения другим, тоже аналитическим, но приближенным решением. Наиболее распространенным приближенным решением в этом случае может быть полиномиальное решение, то есть замена реального решения полиномом той или иной степени. При этом порядок полинома задается значением системной переменной Order, а для получения такого решения функция dsolve должна иметь параметр series.

На рис. 7.21 представлено решение ДУ третьего порядка различными методами: точное аналитическое и приближенное в виде полинома с максимальным заданным порядком 10 и 60. График дает сравнение этих решений для зависимости у(t).

Рис. 7.21. Примеры решения ДУ третьего порядка

Дадим небольшой комментарий. Нетрудно заметить, что точное аналитическое решение весьма сложно и содержит специальные функции Бесселя и гамма-функции. При порядке полинома 8 (он несколько меньше заданного максимального) решение практически совпадает с точным до значений t<2, а при максимальном заданном порядке 60 область совпадения расширяется до значений t<5,5. Затем приближенное решение резко отходит от точного.

Этот пример с одной стороны иллюстрирует хорошо известный факт — быстрое нарастание погрешности полиномиального приближения за пределами области хорошего совпадений решений. С другой стороны он показывает, что степень полинома более 60 (и даже выше) вовсе не так уж бесполезна, как это утверждается во многих статьях и книгах по полиномиальному приближению. Точность полиномиальных вычислений Maple достаточно высока, чтобы обеспечить получение приближенных полиномиальных выражений со степенью порядка десятков и иногда даже сотен. Другое дело, что столь «длинный» полином не всегда удобен для аналитических расчетов, даже несмотря на его структурную простоту.

7.7. Решение дифференциальных уравнений специального вида

7.7.1. Определение жестких систем дифференциальных уравнений

В последнее время особое внимание уделяется решению важного класса систем дифференциальных уравнений — жестких. Если представить систему дифференциальных уравнений в матричном виде у = Ах, то такая система относится к жесткой при выполнении следующих двух условий:

• действительные части всех собственных значений матрицы А отрицательны, т. е. Re (λk)<0 (А = 0, 1, …, n-1);

• величина s=max|Re(λk) |/min|Re (λk) (k=0, 1, …, n-1), именуемая жесткостью системы, должна быть велика.

Жесткие системы впервые появились при решении систем дифференциальных уравнений химической кинетики. Решение таких систем представляется фрагментами с сильно отличающейся крутизной зависимостей. Нередко это случается и при анализе электрических цепей с резко отличными постоянными времени.

Если шаг решения h сравним или больше наименьшей постоянной времени решения, то применение стандартных методов (например, Рунге-Кутта) с неизменным шагом приводит к большим погрешностям вычислений и даже к к расхождению вычислительного процесса, в ходе которого решение грубо отлично от

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату