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

МЕТОДИ ЧИСЕЛЬНОГО РОЗВ`ЯЗУВАННЯ ДИФЕРЕНЦІАЛЬНИХ РІВНЯНЬ

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

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

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

Рік:
2015
Тип роботи:
Звіт
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем
Група:
МЕ

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” ІКТА, кафедра «Захисту інформації» Звіт З КУРСУ “ КОМП’ЮТЕРНІ МЕТОДИ ДОСЛІДЖЕННЯ ІНФОРМАЦІЙНИХ ПРОЦЕСІВ ТА СИСТЕМ ” НА ТЕМУ: “ МЕТОДИ ЧИСЕЛЬНОГО РОЗВ`ЯЗУВАННЯ ДИФЕРЕНЦІАЛЬНИХ РІВНЯНЬ“ Варіант 2 Мета роботи – ознайомлення з методами чисельного інтегрування диференційних рівнянь. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Диференціальним називається рівняння, в яке входять похідні невідомої функції. Приклад:   (1)  (2) Диференціальне рівняння (ДР), що містить лише одну незалежну змінну і похідні за нею, називають звичайними (ДР). Це, наприклад, рівняння (1). ДР, що містить декілька незалежних змінних і похідні за ними, називають рівняння в частинних похідних Порядком ДР називається найвищий порядок похідної (або диференціалу), який входить в рівняння. Звичайне ДР (ЗДР) -го порядку в загальному випадку має незалежну змінну, невідому функцію та її похідні (або диференціал) до -го порядку включно:  (3)  - незалежна змінна; - невідома функція (залежна змінна); - похідні цієї функції. Диференціальне рівняння -го порядку, розв’язане відносно старшої похідної, може бути записано у вигляді:  (4) Щоб розв’язати ЗДР, необхідно мати значення залежної змінної та (або) її похідних при деяких значення незалежної змінної. Якщо ці значення задані при одному значенні незалежної змінної - така задача називається задачею з початковими умовами або задачею Коші. Якщо ці значення задаються при  або більше значеннях незалежної змінної - задача називається крайовою. Значення залежної змінної та її похідних називаються ще додатковими умовами, котрі в задачі Коші називаються початковими, а в крайовій задачі - граничними. Метод Рунге-Кутта-Мерсона з автоматичною зміною кроку Метод дозволяє оцінити похибку на кожному кроці інтегрування. Похибка інтегрування має порядок . При цьому не потрібно зберігати в пам’яті обчислення значень функцій на кроці  і  для оцінки похибки - перевага порівняно з методом Рунге-Кутта з автоматичною зміною кроку. Алгоритм методу 1. Задаємо число рівнянь , похибку , початковий крок інтегрування , початкові умови . 2. За допомогою п’яти циклів з керуючою змінною  обчислюємо коефіцієнти   3. Знаходимо значення   та похибку  4. Перевіряємо виконання умов  Можливі випадки: а) Якщо перша умова не виконується, тобто , то ділимо крок  на 2 та повторюємо обчислення з п.2, встановивши початкові значення . б) Якщо виконується перша та друга умови, значення  та  виводяться на друк. Якщо друга умова не виконується, крок  збільшується вдвічі і тоді обчислення знову повторюється з п.2 (нема потреби обчислювати при малому кроці). Треба відмітити, що похибка  на кожному кроці методу Рунге-Кутта-Мерсона оцінюється приблизно. При розв’язуванні нелінійних ДР істинна похибка може відрізнятися в декілька разів від заданої . , де .  - крок поділити на 2 і повернутися на початок. для всіх рівнянь: виводимо на друк , а крок збільшуємо удвічі. 2.ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’язати чисельним методом звичайне диференційне рівняння.     СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ:                                                                   Текст програми на мові Паскаль: program runge_kut_merson; uses crt; const n=1;a=0;b=1;e=0.001; type vec=array[1..n] of real; var i,m,p :integer; x,h,k :real; y1,y,f,r,z :vec; Function dy(var k:integer;x,s:real):real; begin for i:=1 to n do z[i]:=y[i]+s; dy:=sin(sqrt(x*x+k*k)); end; Procedure Merson(var y1,r:vec; m:integer); var k0,k1,k2,k3,k4,s:real; begin m:=0; for i:=1 to n do begin k0:=h*dy(i,x,0); k1:=h*dy(i,x+h/3,k0/3); k2:=h*dy(i,x+h/3,k0/6+k1/6); k3:=h*dy(i,x+h/2,k0/8+3*k2/8); k4:=h*dy(i,x+h,k0/2-3*k2/2+2*k3); y1[i]:=h*(k0+4*k3+k4)/6; r[i]:=(-2*k0+9*k2-8*k3+k4)/30; if abs(r[i])>e then m:=m+1; end; end; BEGIN clrscr; for i:=1 to n do begin writeln ('Поч.­ знач.'); read(y[i]); end; x:=a; h:=0.1; repeat p:=0; repeat for i:=1 to n do begin Merson(y1,r,m); p:=p+1; h:=h/2; end; until m<>n; h:=2*h; if p=1 then h:=2*h; for i:=1 to n do y[i]:=y[i]+y1[i]; writeln ('x=', x:2:3); for i:=1 to n do writeln( 'y[',i,']=', y[i]:1:9, ' r[',i,']=',r[i]:1:9); x:=x+h; until x>b; repeat until keypressed; END. Результат роботи програми: y[1]=0.008423679 r[1]=-0.000000035 x=0.200 y[1]=0.043025754 r[1]=-0.000002985 x=0.600 y[1]=0.196087164 r[1]=-0.000053898 Висновок: Виконавши дану лабораторну роботу я ознайомилась з методами чисельного інтегрування диференційних рівнянь.
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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