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

}

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

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

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


 

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

70753. Изучение зависимости момента инерции точечных тел от их расстояния до оси вращения с помощью крестообразного маятника Обербека 147.5 KB
  Цель работы: Изучить основной закон динамики вращательного движения тел определить момент инерции ненагруженного маховика и проверить зависимость момент инерции нагруженного маховика от распределения его массы в пространстве относительно оси.
70754. Изучение гармонических колебаний 170 KB
  Цель работы: Изучить гармоническое колебательное движение на примерах колебаний математического физического и оборотного маятников. Свойства гармонических колебаний: Частота колебаний не зависит от амплитуды.
70756. Изучение прецессии гироскопа 495.5 KB
  Момент инерции тела относительно оси не проходящей через центр масс равен моменту инерции для параллельной оси проходящей через центр масс плюс произведение массы тела на квадрат расстояния между параллельными осями...
70759. Определение отношений воздуха методом Клемана–Дезорма 59 KB
  Цель работы: изучить адиабатический процесс в газах; определить отношение теплоемкостей газа методом адиабатического расширения. Приборы и принадлежности: стеклянный баллон, манометр, насос.
70760. Изучение статистических закономерностей на механических моделях 258.5 KB
  Движение каждой молекулы определяется законами классической механики поэтому в принципе можно написать уравнение движения каждой молекулы. Однако поскольку число молекул огромно то не только решить но даже написать такое громадное число дифференциальных уравнений практически невозможно.
70761. Определение скорости звука в воздухе методом стоячих волн 97 KB
  Эту величину называют длинной стоячей волны: Уравнение плоской синусоидальной волны имеет вид: где фаза плоской волны. Уравнение сферической синусоидальной волны имеет вид: где амплитуда волн. физическая величина численно равная амплитуде волны на единичном расстоянии.