3857

Методи розв’язування диференційних рівнянь у частинних похідних

Лабораторная работа

Информатика, кибернетика и программирование

Методи розв’язування диференційних рівнянь у частинних похідних Мета роботи: Засвоїти теоретичний матеріал і методи розв’язування диференційних рівнянь у частинних похідних, набути практичні навики знаходження їхніх наближених значень...

Украинкский

2012-11-09

130.5 KB

15 чел.

Методи розв’язування диференційних рівнянь у частинних похідних

Мета роботи: Засвоїти теоретичний матеріал і методи розв’язування диференційних рівнянь у частинних похідних, набути практичні навики знаходження їхніх наближених значень.

Короткі теоретичні відомості

Із розв’язуванням диференційних рівнянь у частинних похідних інженерам і дослідникам доводиться зустрічатися в багатьох областях науки і техніки, в аеро- і гідродинаміці, ядерній фізиці, радіозв’язку тощо.

Розрізняють три типи диференційних рівнянь другого порядку:

– еліптичні, при 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 = ( fi+1, j + fi−1, j ) + 2(1 ) 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);

}

//---------------------------------------------------------------------------------

Результат виконання програми:

Висновок: На цій лабораторній роботі я засвоїв теоретичний матеріал і методи розв’язування диференційних рівнянь у частинних похідних, набув практичні навики знаходження їхніх наближених значень. 


 

А также другие работы, которые могут Вас заинтересовать

59434. Cценарій. Барвиста писанка 45.5 KB
  Матеріали: Таблиці та кольорові фотографії писанок Таблиці символіки Кольорові фотографії писанок регіонів України Натуральні писанки Мотивація навчальної діяльності. Діти повинні знати звичаї та обряди українського народу...
59435. Рекомендації щодо проведення свята до Дня Матері 30.5 KB
  З першої миті життя схиляються над нами обличчя матерів. Матері Все життя дивляться вони нам услід бажають добра і щастя. Тож друже мій схилімо голови перед величчю матері перед її світлим образом.
59436. Cценарій: В осінні шати-барви вдяглися ліси й поля 45 KB
  Мета. Поглибити знання учнів про рідну природу, вчити бачити і розкривати красу навколишнього світу; заохочувати дітей до творчості; розвивати мовлення, мислення дітей; формувати вміння визначати настрій твору...
59437. Сценарій. Тарас Шевченко - провісник долі України 78 KB
  Як досяг чим завоював цю славу найбезправніший солдат Російської імперії найбільшої і найжахливішої вязниці народів яку тільки знала історія СЛОВОМ II ведучий.
59438. Шкільний захід, присвячений О.С. Пушкіну і Н.М. Гончаровій: А душу Твою люблю я ще більше твого лиця... 75.5 KB
  В багатьох художніх творах і літературних працях Наталія Миколаївна зображалась безсердечною пустою легковажною красунею любителькою балів і інших світських розваг. Плакав вітер безсило кидаючись у вікна петербурзької квартири...
59439. Сценарій: Відкрите серце для добра 33.5 KB
  У нас можна допомагати один одному гратись сміятись казати правду фантазувати і творити казати тільки добрі слова дружити. Сьогодні я пропоную пограти в гру Чарівні слова€.
59440. Сценарій свята: Наша мова солов’їна 96 KB
  Поетична грань живе у слові, і слово немислиме без неї, як немислима річка без води. “Рідна мова дорога людині як саме життя” – говорить народна мудрість. Адже без мови не може існувати народ та його культура. Рідне слово порівнюють з хлібом, мову називають солов’їною, дивом калиновим.
59441. Сценарій свята: Україно! Це твої символи 30 KB
  Ознайомити учнів з історією України її символами виховувати в них національну свідомість розуміння своєї причетності до долі України. Карта України Акт проголошення незалежності на плакатах зображення герба України прапора на столі хліб на вишитому рушнику...
59442. Сценарій: Урок математики з інсценуванням та елементами гри 58.5 KB
  І знову дзвоник запрошує в клас, У царство логіки, краси і сили. Багато тут цікавого для нас У зоряні хвилин ми відкрили.