Реферат

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

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 25.11.2024


ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ……………………………………………………………….…………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
ВВЕДЕНИЕ

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

Актуальность темы курсовой работы состоит в том, что ОДУ имеют аналитически сложное решение и составление программы, реализируещей численное решение облегчило бы эту задачу.

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

Выбор метода решения системы дифференциальных уравнений объясняется тем, что метод Кутта-Мерсона сочетает хорошую точность и высокую скорость.

Цель работы: составить программу для решения задачи Коши для системы дифференциальных уравнений методом Рунге-Кутта-Мерсона на примере, проверить полученное решение в MathCad и проанализировать результаты.
ГЛАВА I. РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ СИСТЕМ ДИФФЕРНЕЦИАЛЬНЫХ УРАВНЕНИЙ МЕТОДОМ РУНГЕ-КУТТА-МЕРСОНА

1.1. Постановка задачи Коши для систем обыкновенных дифференциальных уравнений

Задача Коши заключается в решении систем обыкновенных дифференциальных уравнений первого порядка, представляемых в виде:
(1)
Где j=1N-номер каждой зависимой переменной 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. Алгоритм решения задачи Коши для систем обыкновенных дифференциальных уравнений методом Рунге-Кутта-Мерсона

  1. Задание начального шаг - h, начальных значений xо,y10,…,yN0 и точности вычисления - ε.

  2. В подпрограмме-процедуре задаём вид системы дифференциальных уравнений

  3. В подпрограмме-функции задаём вид правой части уравнений

  4. С помощью пяти циклов с управляющей переменной J=1,N вычисляем коэффициенты по формулам (3)-(7).

  5. В последнем цикле находим решение системы дифференциальных уравнений по формуле (8) и погрешность по формуле (9).

  6. Проверка выполнение условий (10) и (11). Если первое условие не выполняется то h:=h/2 и переходим к п.3

  7. Если выполняются оба условия, то значение xi+1=xi+h и Yj(i+1) выводим на экран.

  8. Если второе условие не выполняется, то h:=h+h и переходим к п.3

  9. Вывести результаты вычислений в новом окне.

ГЛАВА II. ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРЕМЕНТ

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

Ставится задача составить программу решения системы дифференциальных уравнений на примере:

(12)

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

y(1)=2; y(2)=1. (13)

Требуется найти решение системы дифференциальных уравнений (12) с начальными условиями (13) методом Рунге-Кутта-Мерсона.


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

Система обыкновенных дифференциальных уравнений была решена методом Рунге-Кутта-Мерсона (см. Приложение 1).

Для проверки результата выполнения программы данная система была решена в MathCad(см. Приложение 2).

Для анализа результатов построим графики данных систем:


Сравнение результатов показывает, что они обеспечивают примерно одинаковое решение.

В большинстве случаев метод Рунге-Кутта-Мерсона даёт более точный результат (погрешность ). Кроме того, хотя он громоздок в реализации, но быстрая сходимость метода компенсирует увеличение числа вспомогательных операций и, резко уменьшает вероятность числовой неустойчивости.
ЗАКЛЮЧЕНИЕ

В данной курсовой работе реализована средствами языка программирования Delphi программа, позволяющая решить систему обыкновенных дифференциальных уравнений методом Рунге-Кутта-Мерсона.

Также было проверенно решение данной системы в MathCad и проанализированы результаты.

Из анализа результатов вычисления можно сделать вывод о большей точности вычисления по методу Рунге-Кутта-Мерсона.

СПИСОК ЛИТЕРАТУРЫ

  1. Н. Бахвалов, Н. Жидков, Г. Кобельков. Численные методы. М., 2002, 632 с.

  2. Н. Калиткин. Численные методы. М., 1972,

  3. А. Самарский. Введение в численные методы. М., , 270с.

  4. Ю. Тарасевич. Численные методы на Mathcad’е. Астрахань, 2000, 70с.

  5. М. Лапчик, М. Рагулина, Е. Хеннер. Численные методы.М., 2004, 384с.


ПРИЛОЖЕНИЕ

Приложение 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;
procedure TForm1.Button1Click(Sender: TObject);

begin

h:=strtofloat(edit1.Text);

e1:=strtofloat(edit2.Text);

x:=strtofloat(edit5.Text);

w[1]:=strtofloat(edit3.Text);

w[2]:=strtofloat(edit4.Text);

k2:=0;

e3:=0;

ur;

d2:=0;

for j:=1 to n do

begin

a[j]:=f[j]*H;

y[j]:=W[j]+a[j]/3;

end;

x:=x+h/3;

ur;

for j:=1 to n do

begin

y[j]:=W[j]+(a[j]+f[j]*H)/6;

end;

ur;

for j:=1 to n do

begin

c[j]:=f[j]*H;

y[j]:=W[j]+a[j]/8+0.375*c[j];

end;

x:=x+h/6;

ur;

for j:=1 to n do

begin

d[j]:=f[j]*H;

y[j]:=W[j]+a[j]/2-1.5*c[j]+2*d[j];

end;

x:=x+h/2;

ur;

for j:=1 to n do

begin

e[j]:=f[j]*H;

y[j]:=W[j]+(a[j]+4*d[j]+e[j])/6;

e2:=abs(-2*a[j]+9*c[j]-8*d[j]+e[j])/30;

if e2<=e1 then

if e2
e3:=0;

end;

if e3<>0 then begin

x:=x-h;

for j:=1 to n do begin

y[j]:=W[j];

end;

H:=H/2;

end

else k2:=1;

if d2=n then H:=H+H;

form2.Show;

form2.edit1.text:=floattostr(y[1]);

form2.edit2.text:=floattostr(y[2]);

end;

end.
Приложение 2
















1. Реферат Население Иркутской области
2. Курсовая Вплив стилю педагогічного спілкування вчителя на процес формування пізнавальної активності старш
3. Реферат на тему Me Essay Research Paper 05 July 2000Partial
4. Реферат ЗАКОН УКРАЇНИ Про загальний військовий обовязок і військову службу
5. Реферат на тему Декабристський рух та його поширення на Україні
6. Биография на тему Боровик Генрих Авиэзерович
7. Диплом на тему Использование баз данных математических задач в процессе подготовки учащихся 11-х классов к ЕГЭ по
8. Реферат на тему Advertising
9. Реферат на тему Квантовая механика наука XX века
10. Реферат Рокош