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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” ІКТА, кафедра «Захисту інформації» Звіт З КУРСУ “ КОМП’ЮТЕРНІ МЕТОДИ ДОСЛІДЖЕННЯ ІНФОРМАЦІЙНИХ ПРОЦЕСІВ ТА СИСТЕМ ” НА ТЕМУ: “ МЕТОДИ ЧИСЕЛЬНОГО РОЗВ`ЯЗУВАННЯ ДИФЕРЕНЦІАЛЬНИХ РІВНЯНЬ“ Варіант 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 Висновок: Виконавши дану лабораторну роботу я ознайомилась з методами чисельного інтегрування диференційних рівнянь.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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