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);

}

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

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

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


 

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

13076. Первое апреля – День смеха. План – конспект классного часа 46 KB
  План – конспект классного часа в 1а классе 1 апреля – День смеха. Цели: 1 способствовать развитию эмоционально-чувственной сферы детей умение осознанно выражать свои эмоции и чувства навыки эмоционального самоконтроля; знакомство с историей праздника способство...
13077. Классный час «Правила поведения в столовой» 29 KB
  Классный час Правила поведения в столовой Цель: объяснить детям правила поведения в столовой. Учитель: Ребята мы сейчас отправимся в самое вкусное место в школе. Куда же это Ученики: В школьную столовую. Проводится игра. Давайте покажем как идем в столовую В
13078. Классный час «Радуга профессий» 55 KB
  Методическая разработка классного часа в 10м классе на тему Радуга профессий Тема: определение школьниками их склонностей к той или иной профессии. Цель: знакомство учащихся с различными профессиями развитие живого интереса к многообразному миру профессий с испо
13079. Классный час «Что такое настоящая дружба?» 35 KB
  Классный час на тему: Что такое настоящая дружба Форма проведения – деловая игра. Цель – воспитание добрых качеств детей умение дружить и бережно относиться друг к другу. В результате занятия участники смогут: сформулировать понятие дружба прак...
13080. Классный час «Бессмертный Сталинград» 70.53 KB
  Тема: Бессмертный Сталинград Цель: расширить представление учащихся о Сталинградской битве. Задачи: 1 Образовательная: пополнить знания об истории нашей Родины. 2 Развивающая: развивать чувство патриотизма любви к Родине чувство гордости за свою страну на прим
13081. Классный час «День народного единства» 72.5 KB
  День народного единства Цели: познакомить учащихся с историей праздника; воспитывать любовь к родине на примере подвига и самоотверженности великих граждан России – Минина и Пожарского. Оформление: эпиграф на доске: Добрый памятник поставлен
13082. Классный час «Английские стихотворения к 8 марта» 24.87 KB
  Цели: совершенствование навыков выразительного рассказывания стихотворений; тренировка монологической речи; стимулирование интереса к изучению иностранного языка; воспитание добрых качеств детей умение дружить бережное отношение и уважение друг к др...
13083. Классный час «9 декабря – День Героев Отечества» 96.5 KB
  Классный час на тему: 9 декабря – День Героев Отечества. Цель: Расширение знаний учеников о героических страницах истории нашего Отечества. Воспитание патриотизма гражданственности чувства гордости и уважения к историческому прошлому Родины. Аудитория: учащие...
13084. Классный час «Судьба семьи в судьбе страны» 24.5 KB
  Классный час посвященный Дню защитника Отечества 23 февраля. Судьба семьи в судьбе страны Цели классного часа. воспитание чувства патриотизма любви к Родине. формировать преемственность поколений;3. способствовать развитию нравственных качеств: честность правдивос...