Professional Documents
Culture Documents
Лаб№8
Лаб№8
ЗВІТ
з лабораторної роботи № 8
з дисципліни “Числові методи”
на тему: ”Числовий розв’язок диференціальних рівнянь в частинних похідних”
Роботу виконав
студент групи 2А Окуневич Б. О.
Звіт прийняв
кандидат технічних наук, доцент Сарафаннікова Н. В.
Херсон (2022)
Теоретичні відомості
Диференціальні рівняння, що містять приватні похідні, називаються диференціальними
рівняннями у приватних похідних (УЧП).
На відміну від звичайних диференціальних рівнянь, у яких невідома функція
залежить від однієї змінної, в рівняннях у приватних похідних невідома функція залежить
від кількох змінних.
Методи класифікації УПП.
1. По порядку рівняння (порядком УПП називають найвищий порядок приватних
похідних, що входять до рівняння).
2. За кількістю змінних (числом змінних називають число незалежних змінних).
3. За критерієм лінійне / нелінійне.
4. За критерієм однорідне/неоднорідне (рівняння називається однорідним, якщо права
його частина тотожно дорівнює нулю для всіх змінних)
5. По виду коефіцієнтів (поділяються на рівняння з постійними та змінними
коефіцієнтами).
Розглянемо рішення деяких УПП чисельними методами в Mathcad .
Розв'язання задачі Діріхле для рівняння Лапласа методом сіток.
Використовуючи метод сіток, скласти функцію, що реалізує розв'язання задачі Діріхле для
рівняння Лапласа (або рівняння еліптичного типу), що задовольняє на еліпсі Р заданому
2 2
x y
+ =1 u ( x , y )|Г =0 .5 (|x|+|y|) з кроком
рівнянням 16 9 умові h=1 . Уточнення
рішення проводити до сотих часток за допомогою процесу Лібмана.
Алгоритм рішення.
1. Використовуючи симетрію заданих початкових умов, шукатимемо значення
1
u ( x , y )= ⋅( u ( x −h , y )+u ( x +h , y ) +u ( x , y−h )+ u ( x , y+ h ) ) (8.1)
4
1
u1 ( 0,2 )= ⋅( u( A )+u4 +2 u2 )
4 (8.2)
( 2 u2− в силу симметричности условий )
1 1
u1 = ⋅( u ( 0,3)+u 4 + 2u2 )= ( 1. 5+u4 +2 u2 )
Отже 4 4 , тобто. рівняння в
1
u1 = ( 1. 5+u 4 + 2u2 )
кінцевих різницях у внутрішній точці u1 виглядає так: 4
Given
1
u1
4
u0 0 2u2 u4
1
u2
4
u0 1 u3 u1 u5
1
u3
4
u0 2 u1 3 u2 u6
1
u4 ( u8 u1 2u5)
4
1
u5 ( u2 u6 u9 u4)
4
1
u6 ( u3 u5 u7 u10)
4
1
u7
4
u1 3 u2 4 u11 u6
1
u8 ( 4u5)
4
1
u9 ( u8 u10 2u5)
4
1
u10 ( u9 u11 2u6)
4
1
u11
4
u3 4 2u7 u10
t Find( u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11)
h 1
u0 0 1.5
Для точки А
y ( 1) 3
0.095
u1 1 u0 1 Для точки B
u0 1 u0 1
h
y ( 2) 3
0.402
u1 2 u0 2
u0 2 u0 2
h
y ( 3) 2 Для точки C
0.016
u2 3 u1 3
u1 3 u1 3
h
3.771 4 Для точки D
0.229
u2 3 u2 4
u2 4 u2 4
h
y ( 4) 0 Для точки E
0
Для точки F
h 0.1 1
6
2 3
k h k 1.667 10
0.6 0.01
n 1 m 1
h k
n7 m7
i 1 7 j 1 7
x0 0 t0 0
xi i h t j j k
i 0 6 j 0 6
3. Тепер заповнимо її, використовуючи крайові умови.
1 ( t) 2 ( t 0.06) 2 ( t) 0.84
tab j 0 1 t j tab j 6 2 t j
Мал. 8.1
Використовуючи метод сіток, скласти рішення змішаної задачі для рівняння коливання
2 2
d u du
2
= 2
струни (рівняння гіперболічного типу) dt dx за заданих початкових умов:
u ( x , 0 )=f ( x ) , ut ( x , 0 )=Ф ( x ) , x∈ [ 0;1 ] та граничних умов u ( 0 ,t )=ϕ ( t ) ,
u ( 1, t )=ψ ( t ) . Рішення знайти при h=0 .1 , визначаючи значення функції u ( x, t ) з
чотирма десятковими знаками, причому 0≤t ≤0 .5 , f ( x )=2 x ( 1−x 2 ) ,
2
Ф ( x )=( 0 . 4+ x ) cos ( x+ 0 .3 ) , ϕ ( t )=0 .5 t , ψ ( t )=0 .
Алгоритм рішення.
Скористаємося співвідношенням:
1
ui , 1 = ( f + f ) +hФi
2 i−1 i +1 (8.4)
причому
1−0
x i=0+ih ( i=0 , 1 , . . ., n ) , n= =10 ,
h
t j =0+ jh ( j=0 , 1 , . .. , 5 ) ,
(8.5)
u0 , j =ϕ ( t j ) ,
un , j =ψ ( t j ) .
1. Обчислюємо значення
x i=0 . 1⋅i і заповнюємо ними перший рядок (для
значення
t 0=0 ), з початкових умов.
i 1 10 j 1 5
x0 0 t0 0
xi i h t j j h
i 0 10 j 0 5
( x) 2x 1 x
2 tabl0 i xi
2
2. Обчислюємо значення
u0 , j =ϕ ( t j )=0 . 5 t j і t j =0.1 заповнюємо ними
перший стовпець таблиці (він відповідає значенню
x 0=0 ). Останній
u10 , j =ψ ( t j ) =0
стовпець заповнюємо значеннями .
2 2 ( t) 0
1 ( t) 0.5t
tabl j 0 1 t j tabl j 10 2 t j
1
ui , 1 = ( f + f ) +hФi
2 i−1 i +1 f i−1 , f i+1
3. Обчислюємо значення , де
Фi =( 0 . 4+ xi ) cos ( x i +0 . 3 )
беруться з першого рядка таблиці, а ;
x i=0 . 1⋅i ( i=0, 1, ...,9 ) , h=0 .1 . Результати записуємо до другого
рядка таблиці.
4. Обчислюємо значення
ui, j у наступних рядках за формулою
ui, j+1 =ui+1, j +ui−1 , j −ui , j−1де значення
ui+1, j , ui−1 , j , ui, j−1
беруться із двох попередніх рядків таблиці.
i 1 9
j 1 9
Рис.8.2
Варіант №4
Хід роботи
1. Використовуючи метод сіток, скласти рішення задачі Діріхле для рівняння Лапласа
2 2
∂u ∂u
+ =0
еліптичного виду ∂ x2 ∂ y2 із заданими початковими умовами та з кроком h
= 1. Уточнення рішення проводити до сотих часток за допомогою процесу Лібмана
(хід роботи, програма, графічна ілюстрація).
2. Використовуючи метод сіток, скласти рішення змішаної задачі для
2
∂u ∂ u
=
диференціального рівняння параболічного типу: ∂t ∂2 x
(Рівняння
теплопровідності) при заданих початкових умовах: u ( x , 0 ) = f ( x ) , u ( 0, t ) = j( t )
; u ( 0,6; t ) = y( t ) , де x Î[ 0; 0,6 ]. Рішення виконати при h = 0,1 для t Î[ 0; 0,01 ] з
трьома десятковими знаками, вважаючи d= 1/6 .
3. Використовуючи метод сіток, скласти рішення змішаної задачі для рівняння
2 2
∂u ∂u
=
коливання струни ∂t 2 ∂ x 2 з початковими умовами u ( x , 0 ) = f ( x ) , u t ( x , 0 )
= Ф ( x ) ( 0 £x £1 ) і крайовими умовами u ( 0, t ) = j( t ) , u ( 1, t ) = y( x ) . Рішення
виконати з кроком h = 0,1, визначаючи значення функції u ( x , t ) з чотирма
десятковими знаками, причому 0 £t £0,5.
Розв'язання задачі Діріхле для рівняння Лапласа методом сіток
Використовуючи метод сіток, скласти функцію, що реалізує розв'язання задачі Діріхле для
рівняння Лапласа (або рівняння еліптичного типу), що задовольняє на еліпсі Р заданому
x2 y 2
рівнянням + =1 умові u(x , y)∨¿Г =2|x|+| y|¿ з кроком h=1. Уточнення рішення
9 16
проводити до сотих часток за допомогою процесу Лібмана.
Алгоритм рішення.
1. Використовуючи симетрію заданих початкових умов, шукатимемо значення
функції лише першої чверті.
Збудуємо частину цього еліпса у першій чверті.
2
x
y( x) 4 1
9
y ( x) 2
0 1 2 3
x
Щоб побудувати область G , обмежену контуром Г, складемо таблицю значень y(x)
0 4
1 3.771
2 2.981
x y ( x)
2.6 1.996
2.906 0.993
3 0
2. Будуємо сітку з кроком h=1 . Крапки на осі у : 1, 2, і осі х : 0, 1, 2, 3, будуть
внутрішніми (позначені білими кружками) т.к. всі вони лежать усередині контуру Г (не
забудемо, що ми збудували лише чверть еліпса). Граничні точки першого роду на
малюнку позначені чорними кружечками та літерами Ah , Bh , Ch , Dh , Eh , Fh .
3
y ( x)
2
a
1
0
0 1 2 3
xb
Uã( xy) 2 x y
u Uã( 0y( 0) ) u 4
0 0 0 0
u Uã( 1y( 1) ) u 5.771
0 1 0 1
u Uã( 2y( 2) ) u 6.981
1 2 1 2
u Uã( 2.6y( 2.6) ) u 7.196
2 3 2 3
u Uã( 2.906y( 2.906) ) u 6.805
3 3 3 3
u Uã( 3y( 3) ) u 6
4 3 4 3
4 5.771 0 0
0 0 6.981 0
u 0 0 0 7.196
0 0 0 6.805
0 0 0 6
4. Тепер визначимо початкові значення функції u(x, y) у внутрішніх точках. Для цього
замінимо рівняння Лапласа в кожній такій точці звичайно різницевими рівняннями;
заміну проведемо згідно з формулою
u1 0 u2 0 u3 0 u4 0 u5 0 u6 0
u7 0 u8 0 u9 0 u10 0
h 1
u 4 Для точки А
0 0
y( 1) 4
0.229
u 5.64 Для точки В
u1 1 u
0 1
0 1
u u
0 1 0 1
h
y( 2) 3
0.019
u 6.985 Для точки С
u2 2 u
1 2
1 2
u u
1 2 1 2
h
1.996 2
0.004
u 7.197 Для точки D
u2 2 u
2 3
2 3
u u
2 3 2 3
h
0.993 1
0.007
u3 2 u
3 3 u 6.807
u u 3 3 Для точки E
3 3 3 3
h
y( 3) 0
0
u4 2 u4 3 u 6
u u 4 3 Для точки F
4 3 4 3
h
1
h 0.1
6
2 3
k h k 1.667 10
0.6 0.01
n 1 m 1
h k
n 7 m7
i 1 7 j 1 7
x 0 t 0
0 0
x ih t j k
i j
i 0 6 j 0 6
( x) sin( 2 x)
tab x
0 i i
3. Тепер заповнимо її, використовуючи крайові умови.
1( t) 2 t 2( t) 0.932
tab 1 t
j 0 j tab 2 t
j 6 j
4. Отримуємо початкову матрицю.
5. Заповнюємо частину таблиці, що залишилася.
tab 4 tab tab
j 1 i 1 j 1 i j 1 i 1
j 1 6 i 1 5 tab
j i 6
0 0.199 0.389 0.565 0.717 0.841 0.932
3.333 10 3 0.197 0.387 0.561 0.713 0.836 0.932
6.667 10 3 0.197 0.384 0.557 0.708 0.831 0.932
tab
0.01 0.196 0.382 0.553 0.703 0.828 0.932
0.013 0.196 0.379 0.55 0.699 0.824 0.932
0.017 0.196 0.377 0.546 0.695 0.821 0.932
0.02 0.196 0.375 0.543 0.691 0.819 0.932
Використовуючи метод сіток, скласти рішення змішаної задачі для рівняння коливання
2 2
d u du
2
= 2
струни (рівняння гіперболічного типу) dt dx за заданих початкових умов:
u ( x , 0 )=f ( x ) , ut ( x , 0 )=Ф ( x ) , x∈ [ 0;1 ] та граничних умов u ( 0 ,t )=ϕ ( t ) ,
u ( 1, t )=ψ ( t ) . Рішення знайти при h=0 .1 , визначаючи значення функції u ( x,t ) з
чотирма десятковими знаками, причому 0<t <0.5 , f ( x)=(x +0,5)(x−1), Φ ( x)=sin ( x +0,2 ) ,
φ ( t )=t−0,5 , Ψ (x )=3 t .
Алгоритм рішення.
Скористаємося співвідношенням:
ui, j+1 =ui+1, j +ui−1 , j −ui , j−1 (8.3)
1
ui , 1 = ( f + f ) +hФi
2 i−1 i +1 (8.4)
причому
1−0
x i=0+ih ( i=0 , 1 , . . ., n ) , n= =10 ,
h
t j =0+ jh ( j=0 , 1 , . .. , 5 ) ,
(8.5)
u0 , j =ϕ ( t j ) ,
un , j =ψ ( t j ) .
1. Обчислюємо значення
x i=0 . 1⋅i і заповнюємо ними перший рядок (для значення
t 0=0 ), з початкових умов.
h 0.1 i 1 10
j 1 5 x 0
0
t 0 x ih
0 i
t j h i 0 10
j
j 0 5
( x) ( x 0.5) ( x 1)
tabl
0 i i
x
1
( f + f ) +hФi
2 i−1 i+1
ui, 1 =
f , f
3. Обчислюємо значення , де i−1 i+1 беруться з першого
x =0 . 1⋅i ( i=0, 1, ...,9 ) , h=0 .1 . Результати записуємо до
рядка таблиці, а Φ i=sin( x i +0,2); i
другого рядка таблиці.
1. Обчислюємо значення
ui, j у наступних рядках за формулою
ui, j+1=ui+1, j +ui−1 , j −ui , j−1 де значення ui+1, j , ui−1 , j , ui, j−1 беруться із двох попередніх рядків
таблиці.
i 1 9
( x) sin( x 0.5)
tabl
tabl
0 i 1
tabl
0 i 1
2 h x
i
1 i 2
i 2 5
j 1 9
tabl tabl tabl tabl
i j i 1 j 1 i 1 j 1 i 2 j
0 1 2 3 4 5 6 7 8 9 10
0 -0.5 -0.54 -0.56 -0.56 -0.54 -0.5 -0.44 -0.36 -0.26 -0.14 0
1 -0.4 -0.474 -0.486 -0.478 -0.452 -0.406 -0.341 -0.257 -0.154 -0.031 0.3
tabl 2 -0.3 -0.346 -0.392 -0.377 -0.344 -0.293 -0.223 -0.135 -0.028 0.286 0.6
3 -0.2 -0.218 -0.237 -0.258 -0.218 -0.161 -0.0865.896·10 -3 0.305 0.603 0.9
4 -0.1 -0.092 -0.084 -0.078 -0.074 -0.012 0.068 0.354 0.637 0.919 1.2
5 0 0.034 0.067 0.099 0.128 0.154 0.428 0.699 0.967 1.234 1.5