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
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Чисельні методи в інформатиці

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра автоматизованих систем управління Звіт до лабораторної роботи № 7 з курсу «Чисельні методи в інформатиці» на тему «Методи розв’язування диференційних рівнянь у частинних похідних» Львів – 2011 Мета роботи: Засвоїти теоретичний матеріал і методи розв’язування диференційних рівнянь у частинних похідних, набути практичні навики знаходження їхніх наближених значень. Короткі теоретичні відомості Із розв’язуванням диференційних рівнянь у частинних похідних інженерам і дослідникам доводиться зустрічатися в багатьох областях науки і техніки, в аеро- і гідродинаміці, ядерній фізиці, радіозв’язку тощо. Розрізняють три типи диференційних рівнянь другого порядку: – еліптичні, при B2 − 4AC < 0 ; – параболічні, при B2 − 4AC = 0; – гіперболічні, при B2 − 4AC > 0. Рівняння можуть переходити з одного вигляду до іншого в залежності від значень коефіцієнтів. Існують два методи розв’язування диференційних рівнянь у частинних похідних: різницевий метод (метод скінченних різниць) і метод скінченних елементів. У сучасній прикладній математиці обидва методи розглядаються як інтерпретації використання загальної теорії різницевих схем до розв’язування диференційних рівнянь у частинних похідних . В основі методу cкінченних елементів лежить варіаційне числення. Диференційне рівняння, яке описує задачу, та відповідні граничні умови використовують для формулювання варіаційної задачі. В методі скінченних елементів фізична задача замінюється її кусково-гладкою моделлю. Цей метод, незважаючи на те, що він вимагає складної постановки задачі, високої кваліфікації та досвіду користувача, є неуніверсальним (кожний розв’язок застосовується лише для конкретної задачі). Метод скінченних елементів знайшов широке використання для розв’язування спеціальних задач в теоретичній механіці, гідродинаміці, теорії поля, однак, він складний, вимагає серйозної підготовки і знань в конкретній області використання. Тому при розв’язуванні задач автоматики та систем керування частіше використовується різницевий метод. 1. Різницевий метод. Для числового розв’язування диференційних рівнянь другого порядку в частинних похідних найчастіше використовується двовимірна прямокутна сітка. Центрально-різницеві шаблони, які застосовують на двовимірній квадратній сітці з кроком h , зображеній на рисунку 1 (індекс j надається незалежній змінній y , а i відноситься до x ), можуть бути отримані аналогічно як і в одновимірному випадку.  Рис. 1. Квадратна сітка. 2. Розв’язування різних типів диференційних рівнянь у частинних похідних. Практичні методи і алгоритми розв’язування різних типів диференційних рівнянь в частинних похідних мають свої особливості і вимагають окремого розгляду на прикладі найбільш розповсюджених задач. 2.1. Еліптичні рівняння. До еліптичних рівнянь зводиться багато різних фізичних задач: розрахунок напружень, які виникають при пружному скруті довгого циліндричного стрижня; розподіл електричних напруг на площині, що проводить струм; задача про стаціонарні течії тепла в двовимірному тілі. Розглянемо класичну задачу Діріхле для рівняння Лапласа в прямокутній області, що формулюється таким чином: знайти неперервну функцію f(x,y), яка в прямокутній області Ω = {(x, y) | 0 ≤ x ≤ a, 0 ≤ y ≤ b} задовольняє рівняння Лапласа:  і приймає на границі області задані значення: x=0; f (0,y) = f1 (y), x=a; f (a,y) = f2 (y), y=0; f (x,0) = f3 (x), y=b; f (x,b) = f4 (x). Введемо в області розв’язання двовимірну сітку з кроком h по осі x і l по осі y. Тоді, користуючись прийнятими в попередніх розділах позначеннями і апроксимуючи рівняння Лапласа різницевим рівнянням, отримаємо таку систему лінійних рівнянь (приймемо для спрощення l=h): (2) при i=1,2,…,n-1; j=1,…,m-1. Ця система рівнянь має велику кількість нульових елементів і задовольняє умови збіжності при використанні ітераційних методів. Найбільше використання для розв’язання таких систем знайшов метод Гаусса-Зейделя, який, коли застосовується до еліптичних різницевих рівнянь, називається методом Лібмана або методом послідовних зміщень. Порядок ітерацій можна простежити, переписавши систему (2) у вигляді: де верхніми індексами позначено порядковий номер ітерації: m – попередня, m+1 – наступна. Зазвичай вважають  для всіх i, j. Система рівнянь легко розв’язується на ПЕОМ. Взагалі кажучи, будь-які еліптичні рівняння, які не містять , зводяться до систем різницевих рівнянь, які можна розв’язувати як методом Лібмана, так і іншими ітераційними методами (Якобі, послідовної верхньої релаксації та ін.), оскільки для них виконуються умови збіжності. Для еліптичних рівнянь, які містять , в загальному вигляді, питання про збіжність ітераційних методів не має теоретичного розв’язку і необхідно розглядати отриману систему рівнянь в кожному конкретному випадку.  2.2. Гіперболічні рівняння. В інженерній практиці найчастіше зустрічається гіперболічне рівняння в частинних похідних – хвильове рівняння, яке описує різні види коливань: коливання струни або мембрани, розповсюдження звукових хвиль у різних середовищах тощо. В загальному вигляді задача формулюється таким чином: знайти функ-цію f (x, t), яка задовольняє всередині області Ω={(x, t) , 0 ≤ x ≤ a, 0 ≤t ≤ T } рівняння , початкові  і граничні умови  Оскільки заміна змінних t =c·t приводить рівняння до вигляду:  то надалі приймаємо с=1. Переходячи до різницевого рівняння на сітці з кроком h по x й τ по t з центральними різницями, отримаємо Якщо ввести  , то вираз для fi, j +1 прийме вигляд: fi, j+1 = r² ( fi+1, j + fi−1, j ) + 2(1 − r² ) fi, j − fi, j− 1. (3) Текст програми: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "RiznUn.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" const n=4,m=4; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { float x[n]={0}, y[m]={0}, u[n+1][m+1]={0}; int i,j,m1,n1; float a,b,hx,hy,s,t,w,r,e; a=StrToFloat(LabeledEdit1->Text); b=StrToFloat(LabeledEdit2->Text); e=StrToFloat(LabeledEdit3->Text); hx=a/n; hy=b/m; t=(hx/hy)*(hx/hy); for (j=0; j<=m; j++) { y[j]=j*hy; u[0][j]=0; u[n][j]=y[j]; } for (i=0; i<=n; i++) { x[i]=i*hx; u[i][0]=0; u[i][m]=x[i]; } for (i=1; i<=n; i++) for (j=1; j<=m; j++) u[i][j]=1; do { w=0; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { s=(u[i-1][j]+u[i+1][j]+t*(u[i][j-1]+u[i][j+1]))/(2*(1+t)); r=abs(s-u[i][j]); if (r>w) w=r; u[i][j]=s; } } while (w>=e); StringGrid1->RowCount=n+2; StringGrid1->ColCount=m+2; StringGrid1->Cells[0][0]="x\\y"; for (i=0; i<=n; i++) { for (j=0; j<=m; j++) StringGrid1->Cells[j+1][i+1]=FloatToStrF(u[i][j],ffFixed,6,3); StringGrid1->Cells[0][i+1]=FloatToStrF(x[i],ffFixed,6,3); } for (j=0; j<=m; j++) StringGrid1->Cells[j+1][0]=FloatToStrF(y[j],ffFixed,6,3); } //--------------------------------------------------------------------------------- Результат виконання програми:  Висновок: На цій лабораторній роботі я засвоїв теоретичний матеріал і методи розв’язування диференційних рівнянь у частинних похідних, набув практичні навики знаходження їхніх наближених значень.
Антиботан аватар за замовчуванням

20.02.2013 20:49

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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