Численные методы решения обыкновенных дифференциальных уравнений и систем

Дипломная работа - Математика и статистика

Другие дипломы по предмету Математика и статистика

0, числом отрезков разбиения n=15. Параметр c=0.2.

 

2.2 Математическая модель задачи (метод Рунге-Кутта).

 

Приводим уравнение к виду .

По условию выполнено соотношение: .

Расчетные формулы для конкретного примера записываются, исходя из общих формул:

 

 

где i = 0,1,…, n-1.

 

2.3 Исходные данные.

 

Отрезок изменения аргумента: [0,1.5].

Начальное условие y(a): y(0)=1.

Число отрезков разбиения: 15. Тогда шаг h=0.1.

 

2.4 Численное решение уравнения методом Рунге-Кутта в Excel

 

Заполняем таблицу Excel в следующем порядке:

1. Первая строка заполнена именами переменных.

. Ячейка H21 отводится под значения константы h, ячейка G21 - под ее имя.

. Первый столбец заполняется значениями x.

. В ячейку B22 вводим значение y0.

. В ячейки С22, D22, E22, F22 вводим соответственно формулы:

=$H$21*(A22^2-B22^2)

=$H$21*((A22+$H$21/2)^2-(B22+C22/2)^2)

=$H$21*((A22+$H$21/2)^2-(B22+D22/2)^2)

=$H$21*((A22+$H$21)^2-(B22+E22)^2)

. В ячейку B23 вводим формулу:

=B22+(C22+2*D22+2*E22+F22)/6

. В ячейки B24:B37 копируем формулу из ячейки B23.

. В ячейки C22:F36 копируем формулы из ячеек C22:F22.

 

Рис. 2.1. Фрагмент рабочего листа с решением примера по методу Рунге-Кутта

 

.5 Блок-схема алгоритма

 

Рис. 2.2. Блок-схема алгоритма Рунге-Кутта для дифференциального уравнения 1-го порядка

Рис. 2.3. Функция f(x,y:real):real

 

2.6.Программа на языке Turbo Pascal

 

Текст программы:

program rungekutt1_v3;

var,xn,y0,h,x,y,k1,k2,k3,k4:real;,i:integer;,ou:text;f(x,y:real):real;:=exp(x+c*y)+1;(inp,'inp1.txt');(inp);(inp,x0,xn,n,y0);(inp);:=(xn-x0)/n;:=x0;:=y0;(ou,'ou1.txt');(ou);(ou,' x',' ','y');(ou,x:2:1,' ',y:7:6);i:=0 to n-1 do:=h*f(x,y);:=h*f(x+h/2,y+k1/2);:=h*f(x+h/2,y+k2/2);:=h*f(x+h,y+k3);:=y+(k1+2*k2+2*k3+k4)/6;:=x+h;(ou,x:2:1,' ',y:7:6);

close(ou)

end.

 

2.7 Выполнение расчетов

 

Исходные значения должны находиться в файле inp1.txt в следующем порядке: левая граница промежутка, правая граница промежутка, число отрезков разбиения, начальное значение функции, параметр.

 

2.8 Результаты расчетов

 

Результаты расчетов пишутся в файл ou1.txt.y

.0 0.000000

.1 0.207392

.2 0.431310

.3 0.674812

.4 0.941709

.5 1.236818

.6 1.566340

.7 1.938427

.8 2.364085

.9 2.858650

.0 3.444396

.1 4.155418

.2 5.047809

.3 6.223828

.4 7.902422

.5 10.714022

 

2.9 Представление результатов в виде графиков

 

Построим графики численного решения данного уравнения в Excel методами Эйлера и Рунге-Кутта.

 

Рис. 2.4. График зависимости у(х).

 

2.10 Анализ результатов

 

На графике видно, что численные решения задачи различными способами незначительно различаются.

Результаты, полученные при расчете с использованием Turbo Pascal 7.0 совпадают с расчетами (методами Эйлера и Рунге-Кутта) в Excel, что является косвенным признаком правильности решения задачи.

 

3. МЕТОД РУНГЕ-КУТТА ДЛЯ ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ ВТОРОГО ПОРЯДКА

 

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

 

1) Решить численно указанную задачу Коши для уравнения второго порядка методом Рунге-Кутта, с помощью программы на языке Turbo Pascal 7.0.

) Построить графики решения и его производной в Excel с помощью мастера диаграмм.

) Провести анализ полученных результатов.

 

3.2 Математическая модель задачи

 

Рассмотрим уравнение второго порядка, разрешенное относительно второй производной:

 

(1.12)

 

на отрезке [a, b] с начальными условиями .

Это уравнение легко свести к системе уравнений первого порядка с помощью замены переменных: . Тогда и уравнение (1.12) сводится к системе первого порядка

 

(1.13)

 

с начальными условиями y(a)=y0, z(a)=z0 , где за z0 обозначено y10.

Данная система может решаться как система двух уравнений первого порядка (1.8)-(1.9), где

 

(1.8)

 

на отрезке [a, b] с начальными условиями

 

, (1.9)

 

Формулы метода Рунге - Кутта для системы двух уравнений имеют вид:

 

(1.10)

 

Где

 

(1.11)

 

Последовательно вычисляются на каждом шаге , а затем , где .

 

3.3 Исходные данные

 

Уравнение: .

Аргумент: [0.5,1.5].

Начальные условия: .

Число отрезков разбиения n: 10.

 

3.4 Расчет контрольного варианта в Excel для тестирования

 

Рис. 3.1. Расчет контрольного варианта в режиме отображения данных.

 

3.5 Блок-схема алгоритма

 

Рис. 3.2. Блок-схема алгоритма Рунге-Кутта для дифференциального уравнения 2-го порядка.

 

Рис. 3.3 Функция f1(z:real):real.

Рис. 3.4. Функция f2(x,y,z:real):real.

 

3.6 Численное решение задачи с использованием Turbo Pascal 7.0

 

Текст программы:

program rungekutt2_v3;

var,xn,y0,z0,h,x,y,z,k1,k2,k3,k4,l1,l2,l3,l4,c:real;,i:integer;,ou:text;f1(z:real):real;:=z;f2(x,y,z:real):real;:=x-x*z-sin(y)+1;(inp,'inp2.txt');(inp);(inp,x0,xn,n,y0,z0);(inp);:=(xn-x0)/n;:=x0;:=y0;:=z0;(ou,'ou2.txt');(ou);(ou,' x',' ','y',' ','z');(ou,x:2:1,' ',y:7:6,' ',z:7:6);i:=0 to n-1 do:=h*f1(z);:=h*f2(x,y,z);:=h*f1(z+l1/2);:=h*f2(x+h/2,y+k1/2,z+l1/2);:=h*f1(z+l2/2);:=h*f2(x+h/2,y+k2/2,z+l2/2);:=h*f1(z+l3);:=h*f2(x+h,y+k3,z+l3);:=y+(k1+2*k2+2*k3+k4)/6;:=z+(l1+2*l2+2*l3+l4)/6;:=x+h;(ou,x:2:1,' ',y:7:6,' ',z:7:6);

close(ou)

end.

 

3.7 Выполнение расчетов

 

Исходные значения должны находиться в файле inp2.txt в следующем порядке:

левая граница промежутка, правая граница промежутка, число отрезков разбиения, начальное значение функции , начальное значение функции .

3.8 Результаты расчетов

 

Результаты расчетов пишутся в файл ou2.txt.

x y z

.5 1.000000 1.000000

.6 1.100693 1.012891

.7 1.202401 1.020476

.8 1.304646 1.023823

.9 1.407064 1.024112

.0 1.509408 1.022562

.1 1.611554 1.020359

.2 1.713494 1.018593

.3 1.815320 1.018223

.4 1.917212 1.020041

.5 2.019422 1.024669

 

.9 Представление результатов в виде графиков

 

Построим графики численного