Розв'язок диференційного рівняння першого порядку методом Ейлера-Коші в середовищі програмування Borland Delphi 7

Загальні відомості та геометричний зміст розв'язання задачі Коші. Використання методу Ейлера для розв'язання звичайних диференціальних рівнянь першого порядку. Розробка блок-схеми та реалізація алгоритму в середовищі програмування Borland Delphi 7.0.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 14.10.2012
Размер файла 398,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Анотація

В даній роботі розглянуто задачу розв'язку звичайного диференційного рівняння першого порядку методом Ейлера-Коші, розроблено математичну модель та складено програму в середовищі програмування Borland Delphi 7.0.

Зміст

Вступ

Постановка задачі

1. Математична модель

1.1 Визначення. Загальні відомості про задачу Коші для звичайного диференційного рівняння

1.2 Розв'язання задачі Коші для звичайних диференціальних рівнянь першого порядку методом Ейлера

2. Розробка алгоритму. Блок-схема

3. Реалізація алгоритму в середовищі програмування Borland Delphi 7.0

Висновок

Список використаної літератури

Вступ

На даний час диференційні рівняння широко використовуються практично у всіх галузях науки і техніки. Вони знайшли своє застосування у фізиці - методом диференціального числення характеризують складні фізичні процеси і явища; їх використовують в теорії автоматизації управління для характеризації і перевірки стійкості систем, розробки і перевірки деталей. Також диференційні рівняння мають широке застосування в математичному аналізі, економіці, механіці і т.д. Математично розв'язати диференційне рівняння часом буває доволі складно, крім того, це займає багато часу, тому є доцільним створити програму, яка рахуватиме такі рівняння. Це дасть змогу значно спростити роботу і зберегти час.

Постановка задачі

Розв'язок диференційного рівняння за допомогою чисельного методу полягає в тому, що для заданої послідовності аргументів і числа , не визначаючи функцію , знайти такі значення , що (при ) і

Таким чином, чисельні методи дають змогу без знаходження функції отримати таблицю значень цієї функції для заданої послідовності аргументів. Величина називається кроком інтегрування.

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

1. Математична модель

1.1 Визначення. Загальні відомості про задачу Коші для звичайного диференційного рівняння

Диференційним рівнянням є рівняння, що пов'язує між собою незалежну змінну , функцію, яка залежить від , та похідні цієї функції. Розв'язком диференційного рівняння є довільна функція, яка залежить від сталої інтегрування, і при підстановці перетворює рівняння у тотожну рівність. З геометричної точки зору частинним розв'язком диференційного рівняння, який задовольняє даним умовам, є одна з інтегральних кривих, що проходить через задану точку.

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

(1.1)

де незалежна змінна.

Зазначимо, що звичайне диференційне рівняння -го порядку:

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

……………..

Відомо, що система (1.1) має множину розв'язків, яка залежить від n параметрів і може бути записана у вигляді Для визначення значень цих параметрів, тобто для відокремлення єдиного потрібного розв'язку, необхідно накласти додаткових умов на функції

1.2 Розв'язання задачі Коші для звичайних диференціальних рівнянь першого порядку методом Ейлера

Задача Коші (задача з початковими умовами) полягає у відшуканні частинного розв'язку системи (1.1) , який задовольняє початкові умови . Ці умови можна розглядати як задання координат початкової точки інтегральної кривої в (n+1)- вимірному просторі.

Розв'язок треба шукати на заданому відрізку , а точку можна вважати початковою точкою цього відрізка. Геометричний зміст розв'язування задачі Коші полягає в знаходженні інтегральної кривої , що проходить через задану точку .

Отже, для системи (1.1) можна записати початкові умови:

диференційний коші програмування delphi

Задача Коші має єдиний розв'язок, який нерозривно залежить від початкових умов, якщо праві частини системи (1.1) є неперервними функціями.

Метод Ейлера(ламаних) для звичайного диференційного рівняння.

Розглянемо задачу Коші для диференційного рівняння першого порядку:

(1.2)

Розкладаємо розв'язок в околі точки в ряд Тейлора:

Якщо || менше, ніж радіус збіжності, то можна наближено записати:

(1.3)

У загальному випадку, коли відомі значення у точці а ці значення можна обчислити, послідовно диференціюючи рівняння (1.2), а саме і так далі, тоді рівняння (1.3) дасть наближене значення у точці , тобто:

(1.4)

Формула (1.4) дає спосіб обчислення на підставі інформації про попередню точку. Якщо у формулі Ейлера обмежитись випадком , то отримаємо формулу методу Ейлера:

(1.5)

Геометрична інтерпретація цієї формули полягає в наступному: перехід від точки з координатами до точки відбувається не вздовж інтегральної кривої, а вздовж дотичної до неї в точці .

Модифікований метод Ейлера.

(1.6)

Геометрична інтерпретація: виконують приріст з кроком і визначають нахил інтегральної кривої в точці . За цим нахилом визначають приріст функції на цілому кроці

Удосконалений метод Ейлера.

(1.7)

Геометрична інтерпретація: виконуємо грубе наближення з кроком і визначаємо нахил інтегральної кривої в точці . Далі обчислюємо середній нахил на кроці і за цим нахилом визначаємо приріст функції на цілому кроці .

2. Розробка алгоритму. Блок-схема

Нижче поданий алгоритм чисельно інтегрує звичайне диференційне рівняння першого порядку за допомогою модифікованого методу Ейлера для задачі Коші (задача з початковою умовою .)

Спочатку ми задаємо межі інтегрування та кількість розбиттів. Потім визначаємо коефіцієнт при х і коефіцієнти а0, а1, необхідні для розв'язання диференційного рівняння першого порядку. Перевіряємо, чи коефіцієнти а0 і а1 не дорівнюють нулю, бо в такому випадку виникає ситуація ділення на нуль. Визначаємо крок інтегрування за формулою: , де і відповідно кінець і початок інтервалу інтегрування, а - кількість розбиттів. Визначаємо локальну похибку, так як модифікований метод Ейлера є доволі грубим, і з кожним кроком інтегрування похибка зростає і нагромаджується. Отже, локальну похибку визначаємо за формулою , де - коефіцієнт при . Потім за формулою Ейлера обчислюємо значення функції для всіх з області інтегрування, і отримуємо таблицю значень, що і є розв'язком даного диференційного рівняння.

3. Реалізація алгоритму в середовищі програмування Borland Delphi 7.0

function func(x,y,q,a0,a1:real):real;

begin

Result:=(q*x-a0*y)/a1;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

n, i:integer;

a,b,h,q,a0,a1:real;

x,yx,p:array of real;

begin

a:=strtofloat(Edit1.Text); //межі

b:=strtofloat(Edit2.Text);

n:=strtoint(Edit3.Text); //кількість розбиттів

h:=(abs(b-a))/n; //крок

q:=strtofloat(Edit4.Text); //коефіцієнт при х

a0:=strtofloat(Edit5.Text); //коефіцієнти a0, a1

a1:=strtofloat(Edit6.Text);

if((strtofloat(Edit5.Text)=0) or (strtofloat(Edit6.Text)=0))then

begin

Application.Messagebox('Ділення на нуль','Помилка', mb_iconerror or mb_ok);

exit;

end;

setlength(x,n+1); //встановлення розміру масивів

setlength(yx,n+1);

setlength(p,n+1);

x[0]:=a;

yx[0]:=strtofloat(Edit7.Text);

p[0]:=(q*x[0]-a0*yx[0])/a1;

for i:=1 to n do

begin

x[i]:=x[i-1]+h;

yx[i]:=yx[i-1]+(h)*p[i-1];

p[i]:=func(x[i-1]+h/2,yx[i-1]+(h/2)*(p[i-1]),q,a0,a1);

end;

stringgrid1.RowCount:=n+2;

stringgrid1.Cells[0,0]:='x';

stringgrid1.Cells[1,0]:='y';

for i:=0 to n do

begin

stringgrid1.Cells[0,i+1]:=floattostr(roundto(x[i],-2));

stringgrid1.Cells[1,i+1]:=floattostr(RoundTo(yx[i],-2));

chart1.Series[0].AddXY(x[i],yx[i]);

end;

end;

end.

Розробка тестового прикладу

Щоб перевірити правильність математичного апарату, розробленого алгоритму та реалізації алгоритму у вигляді програмного коду, розв'яжемо звичайне диференційне рівняння першого порядку аналітичним способом.

Для прикладу візьмемо рівняння виду . Це рівняння є рівнянням з відокремлюваними змінними, тобто це добуток двох функцій. Використаємо метод відокремлення змінних

\\Переписуємо\\

Побудуємо графік для отриманого рівняння на відрізку від 1 <_x<_ 6. Графік має форму інтегральної кривої. Вона схожа на криву, яку ми отримали в результаті роботи розробленої програми, тому можна зробити висновки, що програма працює коректно.

Висновок

Дана програма знаходить наближені розв'язки диференційного рівняння першого порядку за допомогою модифікованого методу Ейлера-Коші. Програма працює коректно, що було перевірено аналітично. Похибка, яку допускає програма при обчисленнях, знаходиться в межах норми (модифікований метод Ейлера-Коші має перший порядок точності). Результати відповідають вимогам задачі.

Список використаних джерел

1. Грипинська Н.В., Ярмолюк Р.С. Чисельні методи/ Н.В Грипинська. - Хмельницький: ХНУ, 2011. - 59 с.

2. Пестриков В.М., Маслобоев А.Н. Delphi на примерах. - БХВ-Петербург, 2005. -495с. - Рос. мовою.

3. Фленов М.Е. Библия Delphi. - БХВ-Петербург, 2011. - 688 с. - Рос. мовою.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.