ВУЗ:
Составители:
2.5. Решение модельной задачи. 61
2.5. Решение модельной задачи.
Применим функцию assembpde для решения модельной задачи.
Рассмотрим краевую задачу
− div(c(x) ∇u) + b(x) · ∇u + a(x)u = f(x), x = (x
1
, x
2
) ∈ Ω,
u(x) = u
D
(x), x ∈ Γ
0
, c(x) ∇u · ν(x) + σ(x)u = µ(x), x ∈ Γ
1
,
в единичном круге Ω с центром в начале координат. Геометрия Ω за-
дается функцией circleg, которая находится в pde toolbox . На рис. 3
(слева) указано разбиение границы этой области на 4 сегмента и ну-
мерация этих сегментов; будем считать, что сегменты 1 и 3 образуют
Γ
0
, а сегменты 2 и 4 — Γ
1
.
Пусть коэффициенты уравнения имеют следующий вид:
c = 2 + x
1
+ x
2
, a = x
1
+ x
2
, b
1
= x
1
, b
2
= x
2
,
f = −8 − 6(x
1
+ x
2
) + (2 + x
1
+ x
2
)(x
2
1
+ x
2
2
).
Функции определяющие краевые заданы следующим образом:
u
D
= x
2
1
+ x
2
2
, σ =
{
0, на 2 сег.,
2, на 4 сег.,
µ =
{
2(2 + x
1
+ x
2
)u
D
, на 2 сег.,
2((2 + x
1
+ x
2
) + 1)u
D
, на 4 сег..
Непосредственной подстановкой в уравнения нетрудно убедиться,
что функция u = x
2
1
+ x
2
2
является решением задачи.
Решим эту задачу используя функцию assembpde на последова-
тельности из 4-х сеток с h = [0.5 0.1 0.05 0.02]. Поскольку точное
решение известно, вычислим погрешность решения
err = max
x∈ω
h
|u(x) − u
h
(x)|
и выведем относительную погрешность errh2 = err/h
2
; Также по-
строим график погрешности решения при h = 0.1 и замерим времена
выполнения функций assemba, assembe и assembpde. Эти задачи ре-
шает функция
f u nc ti o n maintestPDE
c l e a r a l l ; c l o s e a l l ; c l c
g=' c i r c l e g ' ; np = [ ] ; nt = [ ] ; errh2 = [ ] ; e r r = [ ] ;
tassemba = [ ] ; tbc = [ ] ; t s o l = [ ] ;
2.5. Решение модельной задачи. 61 2.5. Решение модельной задачи. Применим функцию assembpde для решения модельной задачи. Рассмотрим краевую задачу − div(c(x) ∇u) + b(x) · ∇u + a(x)u = f (x), x = (x1 , x2 ) ∈ Ω, u(x) = uD (x), x ∈ Γ0 , c(x) ∇u · ν(x) + σ(x)u = µ(x), x ∈ Γ1 , в единичном круге Ω с центром в начале координат. Геометрия Ω за- дается функцией circleg, которая находится в pde toolbox . На рис. 3 (слева) указано разбиение границы этой области на 4 сегмента и ну- мерация этих сегментов; будем считать, что сегменты 1 и 3 образуют Γ0 , а сегменты 2 и 4 — Γ1 . Пусть коэффициенты уравнения имеют следующий вид: c = 2 + x 1 + x2 , a = x1 + x2 , b 1 = x1 , b 2 = x2 , f = −8 − 6(x1 + x2 ) + (2 + x1 + x2 )(x21 + x22 ). Функции определяющие краевые заданы следующим образом: { { 0, на 2 сег., 2(2 + x1 + x2 )uD , на 2 сег., uD = x21 + x22 , σ= µ= 2, на 4 сег., 2((2 + x1 + x2 ) + 1)uD , на 4 сег.. Непосредственной подстановкой в уравнения нетрудно убедиться, что функция u = x21 + x22 является решением задачи. Решим эту задачу используя функцию assembpde на последова- тельности из 4-х сеток с h = [0.5 0.1 0.05 0.02]. Поскольку точное решение известно, вычислим погрешность решения err = max |u(x) − uh (x)| x∈ωh и выведем относительную погрешность errh2 = err/h2 ; Также по- строим график погрешности решения при h = 0.1 и замерим времена выполнения функций assemba, assembe и assembpde. Эти задачи ре- шает функция f u n c t i o n maintestPDE clear all ; close all ; clc g=' c i r c l e g ' ; np = [ ] ; nt = [ ] ; e r r h 2 = [ ] ; e r r = [ ] ; tassemba = [ ] ; t b c = [ ] ; t s o l = [ ] ;
Страницы
- « первая
- ‹ предыдущая
- …
- 59
- 60
- 61
- 62
- 63
- …
- следующая ›
- последняя »