Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 05.doc
Скачиваний:
8
Добавлен:
19.09.2019
Размер:
258.05 Кб
Скачать

5) Решение дифференциальных уравнений с помощью степенных рядов

Пусть требуется решить дифференциальное уравнение y' =cosx+ey с начальным условием y(0)=1.

>> dsolve('Dy=cos(x)+exp(y)','y(0)=1','x')

ans =

[ empty sym ]

Функция dsolve не нашла аналитического решения в MATLAB.

Известно, что решения этого дифференциального уравнения в аналитическом виде не существует. Найти разложение решения в степенной ряд (до 6-й степени по умолчанию) можно с помощью функции dsolve системы Maple.

>> maple('dsolve({diff(y(x),x)=cos(x)+exp(y(x)),y(0)=1},y(x),series)')

ans =

y(x) = series(1+(1+exp(1))*x+(1/2*exp(1)*(1+exp(1)))*x^2+(-1/6+1/3*exp(1)*(3/2*exp(1)+exp(1)^2+1/2))*x^3+(1/2*exp(1)^3+1/4*exp(1)^4+7/24*exp(1)^2)*x^4+(1/2*exp(1)^4+1/5*exp(1)^5+5/12*exp(1)^3+1/120-1/40*exp(1)+1/12*exp(1)^2)*x^5+O(x^6),x,6)

Имеется возможность управлять порядком разложения. Найдем разложение решения в степенной ряд до 3-й степени:

>> maple('Order:=3;dsolve({diff(y(x),x)=cos(x)+exp(y(x)),y(0)=1},y(x),series)')

ans =

Order := 3y(x) = series(1+(1+exp(1))*x+(1/2*exp(1)*(1+exp(1)))*x^2+O(x^3),x,3)

6) Решение тригонометрических уравнений

Пусть требуется решить уравнение cos2x+ sinx=1.

>> syms x

>> solve('cos(2*x)+sin(x)=1',x)

ans =

[ 0]

[ pi]

[ 1/6*pi]

[ 5/6*pi]

Отметим, что непосредственно в MATLAB функция solve возвращает только значения корней, которые находятся в интервале [–;]. Для получения всех решений тригонометрических уравнений следует использовать следующие команды системы Maple:

>> maple('_EnvAllSolutions:=true');

>> maple('solve(cos(2*x)+sin(x)=1,x)')

ans =

2*pi*_Z, pi+2*pi*_Z, 1/6*pi+2*pi*_Z, 5/6*pi+2*pi*_Z

Здесь _Z переменная целого типа.

36

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]