Автор: Пользователь скрыл имя, 28 Марта 2011 в 19:13, курсовая работа
Цель работы: составить программу для решения задачи Коши для системы дифференциальных уравнений методом Рунге-Кутта-Мерсона на примере, проверить полученное решение в MathCad и проанализировать результаты.
ВВЕДЕНИЕ……………………………………………………………….…………3
ГЛАВА I. РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ СИСТЕМ ДИФФЕРНЕЦИАЛЬНЫХ УРАВНЕНИЙ МЕТОДОМ РУНГЕ-КУТТА-МЕРСОНА…………………………………………………………………..………4
1. Постановка задачи Коши для систем обыкновенных дифференциальных уравнений………….……………..................…...4
2. Метод Рунге-Кутта-Мерсона………………………………………….5
1.3. Алгоритм решения задачи Коши для систем обыкновенных дифференциальных уравнений методом Рунге-Кутта-Мерсона……………….........................................................………..….7
ГЛАВА II. ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРЕМЕНТ………….………...…....8
2.1. Постановка задачи……………………………………………………..8
2.2. Анализ результатов……………………………………………….....…9
ЗАКЛЮЧЕНИЕ………………………………………………………………..….10СПИСОК ЛИТЕРАТУРЫ………...……………........................................ ..........11
ПРИЛОЖЕНИЕ.......................................................................................................12
Приложение 1........................................................................................12
Приложение 2........................................................................................16
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ…………………………………………………………
ГЛАВА
I. РЕШЕНИЕ ЗАДАЧИ КОШИ
ДЛЯ СИСТЕМ ДИФФЕРНЕЦИАЛЬНЫХ
УРАВНЕНИЙ МЕТОДОМ РУНГЕ-КУТТА-МЕРСОНА……………………………
1.3.
Алгоритм решения задачи Коши для систем
обыкновенных дифференциальных уравнений
методом Рунге-Кутта-Мерсона……………….....
ГЛАВА II. ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРЕМЕНТ………….………...…....8
2.1. Постановка задачи……………………………………………………..8
2.2.
Анализ результатов……………………………………………….
ЗАКЛЮЧЕНИЕ……………………………………………………
ПРИЛОЖЕНИЕ....................
Приложение 1.............................
Приложение 2.............................
ВВЕДЕНИЕ
Обыкновенные дифференциальные уравнения широко используются для математического моделирования процессов и явлений в различных областях науки и техники. Множество переходных процессов в радиотехнике, кинетика химических реакций, динамика биологических популяций, движение космических объектов, модели экономического развития исследуются с помощью обыкновенных дифференциальных уравнений.
Актуальность темы курсовой работы состоит в том, что ОДУ имеют аналитически сложное решение и составление программы, реализируещей численное решение облегчило бы эту задачу.
В курсовой работе решается задача разработки программы поиска решения системы дифференциальных уравнений методам Рунге-Кутта-Мерсона.
Выбор метода решения системы дифференциальных уравнений объясняется тем, что метод Кутта-Мерсона сочетает хорошую точность и высокую скорость.
Цель
работы: составить программу для решения
задачи Коши для системы дифференциальных
уравнений методом Рунге-Кутта-Мерсона
на примере, проверить полученное решение
в MathCad и проанализировать результаты.
ГЛАВА I. РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ СИСТЕМ ДИФФЕРНЕЦИАЛЬНЫХ УРАВНЕНИЙ МЕТОДОМ РУНГЕ-КУТТА-МЕРСОНА
1.1. Постановка задачи Коши для систем обыкновенных дифференциальных уравнений
Задача
Коши заключается в решении систем
обыкновенных дифференциальных уравнений
первого порядка, представляемых в виде:
(1)
Где j=1 N-номер каждой зависимой переменной yj, x-независимая переменная .
Решение
системы (1) при заданных начальных
условиях
x=x0,
y1(x0)=y10,…, (2)
y2(x0)=y20,
yN(x0)=yN0
сводиться
к нахождению зависимостей (интегральных
кривых) y1(x),…,y2(x),
yN(x), проходящих через
точки (x0,y10),
(x0,y20),…, (x0,yN0).
Задача Коши сводиться к интегрированию
дифференциальных уравнений. Порядок
метода численного интегрирования при
этом определяется и порядок метода решения.
1.2. Метод Рунге-Кутта-Мерсона
Автоматическое
изменение шага в ходе решения систем
дифференциальных уравнений необходимо,
если решение требуется получить с заданной
точностью. При высокой точности (погрешность
) и решении в виде кривых с сильно различающейся
крутизной автоматическое изменение шага
обеспечивает уменьшение общего числа
шагов в несколько раз, резко уменьшается
вероятность числовой неустойчивости,
даёт более равномерное расположение
точек графика кривых (решений) при их
выводе на печать. Данный метод обеспечивает
приближённую оценку погрешностей на
каждом шаге интегрирования. Погрешность
интегрирования имеет порядок
h5. Этот метод реализуется
следующим алгоритмом: Задаём число уравнений
N, погрешность ε=E, начальный шаг интегрирования
h=H и начальное значение y10,…,yN0.
С помощью пяти циклов с управляющей переменной
J=1,2,..,N вычисляем коэффициенты:
(3)
(4)
(5)
(6)
(7)
Находим
(в последнем цикле) значение (8):
(8)
И
погрешность
(9)
Проверяем
выполнения условий
(10)
(11)
Если
условие (10) не выполняется, то делим шаг
h на 2 и повторяем вычисления. Если это
условие выполняется и выполняется условие
(11), значение xi+1=xi+h
и Yj(i+1),
то считаем, что решение системы дифференциальных
уравнений найдено с заданной точностью.
Если условие (11) не выполняется , шаг
h увеличивается вдвое и вычисления
повторяются.
1.3. Алгоритм решения задачи Коши для систем обыкновенных дифференциальных уравнений методом Рунге-Кутта-Мерсона
ГЛАВА II. ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРЕМЕНТ
2.1. Постановка задачи
Ставится задача составить программу решения системы дифференциальных уравнений на примере:
(12)
Начальные условия:
y(1)=2; y(2)=1. (13)
Требуется
найти решение системы дифференциальных
уравнений (12) с начальными условиями (13)
методом Рунге-Кутта-Мерсона.
2.2. Анализ результатов
Система обыкновенных дифференциальных уравнений была решена методом Рунге-Кутта-Мерсона (см. Приложение 1).
Для проверки результата выполнения программы данная система была решена в MathCad(см. Приложение 2).
Для анализа результатов построим графики данных систем:
Сравнение результатов показывает, что они обеспечивают примерно одинаковое решение.
В
большинстве случаев метод
ЗАКЛЮЧЕНИЕ
В данной курсовой работе реализована средствами языка программирования Delphi программа, позволяющая решить систему обыкновенных дифференциальных уравнений методом Рунге-Кутта-Мерсона.
Также было проверенно решение данной системы в MathCad и проанализированы результаты.
Из
анализа результатов вычисления
можно сделать вывод о большей точности
вычисления по методу Рунге-Кутта-Мерсона.
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ
Приложение 1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Image1: TImage;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
Label6: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Label2: TLabel;
Edit5: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const n=2;
Type
mas=Array[1..4] of String[60];
var
Form1: TForm1; i,s,p:integer;
h,v,x,e1,e2,e3 : real;
y,w,k,f,e,a,c,d:array[1..10] of real;
j,d2:integer;
k2:byte;
implementation
uses Unit2;
{$R
*.dfm}
function f1 (x1,y1,y2:real):real;
begin
f1:=y1+y2-x1*x1+x1-2;
end;
function f2(x1,y1,y2:real):real;
begin
f2:=-2*y1+4*y2+2*x1*x1-4*x1-7;
end;
procedure ur;
begin
f[1]:=f1(x,y[1],y[2]);
f[2]:=f2(x,y[1],y[2]);
end;