microbik.ru
  1 ... 3 4 5 6 7 8 9



2.4. Численное решение обыкновенных дифференциальных

уравнений

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

Среди множества численных методов решения дифференциальных уравнений наиболее простые – это явные одношаговые методы. К ним относятся различные модификации метода Рунге-Кутта.

Постановка задачи:

Требуется найти функцию у = у(х), удовлетворяющую уравнению

(2.3)

и принимающую при х = х0 заданное значение у0:

. (2.4)

При этом решение необходимо получить в интервале х0ххк. Из теории дифференциальных уравнений известно, что решение у(х) задачи Коши (2.3), (2.4) существует, единственно и является гладкой функцией, если правая часть F(x, y) удовлетворяет некоторым условиям гладкости. Численное решение задачи Коши методом Рунге-Кутта 4-го порядка заключается в следующем. На заданном интервале [х0, хк] выбираются узловые точки. Значение решения в нулевой точке известно у(х0) = у0. В следующей точке у(х1) определяется по формуле

, (2.5)

здесь

(2.6)

т. е. данный вариант метода Рунге-Кутта требует на каждом шаге четырехкратного вычисления правой части уравнения (2.3). Этот алгоритм реализован в программе ode45. Кроме этой программы MATLAB располагает обширным набором аналогичных программ, позволяющих успешно решать обыкновенные дифференциальные уравнения.
Пример 5. Решить задачу Коши

. (2.7)

Точное решение имеет вид

.

Выполним решение данной задачи с помощью программы ode45. Вначале в М-файл записываем правую часть уравнения (2.7), сам М-файл оформляется как файл – функция, даем ему имя F:

function dydx = F(x, y)

dydx = zeros(1,1);

dydx(1) = 2*(x^2+y(1));

Для численного решения задачи Коши в окне команд набираются следующие операторы.

Протокол программы.

>>[X Y] = ode45 ( @ F , [0 1] , [1] ) ;

% Дескриптор @ обеспечивает связь с файлом – функцией правой части

% [0 1] – интервал на котором необходимо получить решение

% [1] – начальное значение решения

>> рlot (X,Y) ;

>> % Построение графика численного решения задачи Коши (2.7)

>> hold on; gtext (  y(x) )

% Команда позволяет с помощью мышки нанести на график надпись у(х)

>> [X Y]

>> % Последняя команда выводит таблицу численного решения задачи.
Результаты решения. График решения задачи Коши (2.7) показан на рис. 2.3. Численное решение представлено в таблице 2.4, где приведены только отдельные узловые точки. В программе ode45 по умолчанию интервал разбивается на 40 точек с шагом h = 1/40 = 0.025.




Рис. 2.3

Таблица 2.4

хi

Метод Рунге-Кутта

Точное решение

0.0

1.0

1.0

0.1

1.2221

1.2221

0.2

1.4977

1.4977

0.3

1.8432

1.8432

0.4

2.2783

2.2783

0.5

2.8274

2.8274

0.6

3.5202

3.5202

0.7

4.3928

4.3928

0.8

5.4895

5.4895

0.9

6.8645

6.8645

1.0

8.5836

8.5836


Как следует из таблицы 2.4 численное решение программой ode45 является точным.
Варианты заданий. Построить график и вывести в виде таблицы решение задачи Коши на интервале [0; 1] методом Рунге-Кутта 4-го порядка. Данные взять из таблицы 2.5.

Таблица 2.5

№ п/п

f(x,y)

y0





0.0





0.1





2.0





0.3





0.4





0.0





0.1





0.2





0.3





0.4





0.5





0.0





0.5





0.4





0.3





0.2





0.1





0.0





0.1





0.2





0.3





0.4





0.5





0.6





0.7





0.0





0.1





0.2





0.3





0.4


2.5. Приближенное вычисление определенных интегралов

К вычислениям определенных интегралов сводятся многие практические задачи физики, химии, экологии, механики и других естественных наук. На практике формулой Ньютона-Лейбница не всегда удается воспользоваться. В этом случае используются методы численного интегрирования. Они основаны на следующих соображениях: с геометрической точки зрения определенный интеграл представляет собой площадь криволинейной трапеции. Идея методов численного интегрирования сводится к разбиению интервала [a; b] на множество меньших интервалов и нахождению искомой площади как совокупности элементарных площадей, полученных на каждом частичном промежутке разбиения. В зависимости от использованной аппроксимации получаются различные формулы численного интегрирования, имеющие различную точность. Рассмотрим методы трапеций и Симпсона (парабол).

Метод трапеций.

Здесь используется линейная аппроксимация, т. е. график функции y = f(x) представляется в виде ломаной, соединяющей точки yi. Формула трапеций при постоянном шаге , где п – число участков, имеет вид

. (2.8)

В MATLAB данную формулу реализует программа trapz (x,y).
Метод Симпсона

Если подынтегральную функцию заменить параболой, то формула Симпсона с постоянным шагом интегрирования предстанет в виде

. (2.9)

В MATLAB формула Симпсона реализуется программой quad. Подынтегральная функция может задаваться с помощью дескриптора @, тогда она программируется в файле – функции, или с помощью апострофов, тогда она записывается в самой программе quad. Точность вычисления интегралов по умолчанию принята равной 110-6.
Пример 6. Вычислить и вывести на печать по методам трапеций и Симпсона значения интеграла



Протокол программы метода трапеций

>> x = 0 : 0.0001 : 1.0 ;

>> y = 1./ (1+x.^2) ;


<< предыдущая страница   следующая страница >>