DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Розв’язування диференційних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Чисельні методи в інформатиці

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут ІКНІ Кафедра ПЗ ЗВІТ до лабораторної роботи № 5 На тему: “ Розв’язування диференційних рівнянь ” З дисципліни: “ Чисельні методи в інформатиці ” Мета роботи: навчитись обчислювати розв’язок задачі Коші (нелінійного диференційного рівняння першого порядку) на інтервалі [a,b], застосовуючи метод Ейлера або метод Рунге-Кутта 4-го порядку. Теоретичні відомості Розглянемо диференційне рівняння першого порядку:  (4.6.1) і початкову умову:  , де y0 – надано. Диференційна задача (4.6.1) зветься задачею Коші. Вона часто застосовується для моделювання динаміки різноманітних процесів. У такому разі t – час, y – величина, що описує стан об’єкту, y0 – його початковий стан. Нехай t0,t1,...,tN – моменти часу, для яких треба обчислити стан об’єкту. Величина hk = tk+1-tk зветься кроком інтегрування. Для розв’язування задачі Коши застосовуються алгоритми як з постійним, так і з змінним кроком. Далі будемо вважати, що крок є постійним, тоді, припускаючи, що t0=0, будемо мати:  . Будемо використовувати позначення:  Найбільш простим методом розв’язування задачі Коші є метод Ейлера. Робоча формула методу Ейлера має такий вигляд:  . (4.6.2) Більш точний модифікований метод Ейлера передбачає обчислення yk+1 у два етапи: спочатку обчислюється значення похідної Pk для моменту tk :  , (4.6.3) далі отримується величина yk+1:  . (4.6.4) Метод Рунге-Кутта четвертого порядку має таку схему. Спочатку обчислюються допоміжні величини:  (4.6.5) тоді обчислюється наступне значення шуканої функції:  . (4.6.6) Завдання Застосовуючи метод Ейлера або метод Рунге-Кутта 4-го порядку, знайти розв’язок задача Коші (нелінійного диференційного рівняння першого порядку) на інтервалі [a,b].  a = 0 , b = 2 , x(a) = 1 Текст програми unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Button1: TButton; GroupBox1: TGroupBox; Label2: TLabel; Label3: TLabel; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label4: TLabel; Label5: TLabel; Image1: TImage; Bevel1: TBevel; Label6: TLabel; XPManifest1: TXPManifest; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; k:integer; const a:integer = 0; b:integer = 2; y0:integer = 1; implementation {$R *.dfm} function Func(x,t:real):real; begin result:=sqr(cos(5*t))-4*sqr(x); end; function Poxidna(t:real):real; begin result:=-5*sin(10*t); end; function metodEjlera:real; var i:integer; y,h,t:real; begin y:=y0; h:=(b-a)/k; for i:=0 to k do begin t:=i*h; y:=y+h*Func(y,t); end; result:=y; end; function metodEjlera2:real; var i:integer; y,h,t:real; begin y:=y0; h:=(b-a)/k; for i:=0 to k do begin t:=i*h; y:=y+0.5*h*(Func(y,t)+Func(y+h*Poxidna(t),t+h)); end; result:=y; end; function metodRynge_Kytta:real; var i:integer; y,h,t,t2,t3,p1,p2,p3,p4:real; begin y:=y0; h:=(b-a)/k; for i:=0 to k do begin t:=i*h; t2:=(i+1)*h; t3:=(i+2)*h; p1:=Func(y,t); p2:=Func(y+0.5*h*Poxidna(t),t+0.5*h); p3:=Func(y+0.5*h*Poxidna(t2),t+0.5*h); p4:=Func(y+h*Poxidna(t3),t+h); y:=y+(h/6)*(p1+2*p2+2*p3+p4); end; result:=y; end; procedure TForm1.Button1Click(Sender: TObject); begin k:=Round(1/StrToFloat(Edit1.Text)); Edit2.Text:=FloatToStr(metodEjlera); Edit3.Text:=FloatToStr(metodEjlera2); Edit4.Text:=FloatToStr(metodRynge_Kytta); end; end. Протокол роботи програми  Висновок: під час виконання лабораторної роботи я навчився обчислювати розв’язок задачі Коші (нелінійного диференційного рівняння першого порядку) на інтервалі [a,b], застосовуючи метод Ейлера або метод Рунге-Кутта 4-го порядку.
Антиботан аватар за замовчуванням

31.03.2013 16:40

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!