Розв'язок диференційного рівняння першого порядку методом Ейлера-Коші в середовищі програмування 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
Подобные документы
Визначення і розв’язання задачі Коші для звичайних диференціальних рівнянь першого порядку методом Ейлера, алгоритм розв’язання, похибка при вирішенні. Складання блок-схеми. Реалізація алгоритму у середовищі Borland Pascal. Результат роботи програми.
курсовая работа [264,0 K], добавлен 20.08.2010Стандартний спосіб розв’язання задачі Коші для звичайного диференціального рівняння першого порядку чисельними однокроковими методами. Геометричний зміст методу Ейлера. Побудова графіку інтегральної кривої. Особливість оцінки похибки за методом Рунге.
курсовая работа [112,9 K], добавлен 30.11.2009Огляд та аналіз методів розв’язання системи диференціальних рівнянь та вибір методів рішення. Алгоритми методів Ейлера. Вибір методу рішення задачі Коші. Рішення диференціальних рівнянь. Отримання практичних навиків програмування на мові Паскаль.
курсовая работа [174,3 K], добавлен 06.03.2010Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.
курсовая работа [132,0 K], добавлен 03.12.2009Розвиток виробництва і широке використання промислових роботів. Алгоритми методів, блок-схеми алгоритмів розв'язку даного диференційного рівняння. Аналіз результатів моделювання, прямий метод Ейлера, розв’язок диференціального рівняння в Mathcad.
контрольная работа [59,1 K], добавлен 30.11.2009Розв’язання нелінійних алгебраїчних рівнянь методом дихотомії. Вирішення задачі знаходження коренів рівняння. Розробка алгоритму розв’язання задачі і тестового прикладу. Блок-схеми алгоритмів основних функцій. Інструкція користувача програмою мовою С++.
курсовая работа [2,0 M], добавлен 24.09.2010Технологія візуального проектування. Аналітичне розв’язання задачі в загальному вигляді. Програмування в консольному режимі. Сценарій розв’язання задачі в Delphi та блок-схема алгоритму. Програмний код додатку та опис інтерфейсу з екранними копіями.
курсовая работа [2,4 M], добавлен 22.06.2009Розгляд та аналіз основних способів розв’язання звичайних диференціальних рівнянь за методом Рунге-Кутта з автоматичним вибором кроку. Способи оцінки погрішності і збіжності методу Рунге-кутти четвертого порядку з автоматичним вибором довжини кроку.
контрольная работа [31,0 K], добавлен 18.01.2013Логарифмічна спіраль у координатній площині та її властивості. Математичне розв’язання задачі на основі теоретичного матеріалу з аналітичної геометрії. Створення Windows-додатка в середовищі візуального програмування Delphi. Розробка алгоритмів процедур.
курсовая работа [1,4 M], добавлен 30.10.2009Задача лінійного програмування. Розв’язання задачі геометричним методом. Приведення системи рівнянь до канонічного вигляду. Розв’язання симплекс-методом. Розв’язок двоїстої задачі. Задача цілочислового програмування і дробово-лінійного програм.
контрольная работа [385,2 K], добавлен 04.06.2009