- •Тема 7. Проекционные методы решения краевых задач
- •Теоретические основы проекционных методов
- •Например
- •Сведение решения ДУ к минимизации функционала
- •Функционал, минимум которого достигается на решении ДУ, имеет вид
- •Метод Ритца
- •Примеры базисных функций обладающих полнотой
- •Минимизация квадратичного функционала с
- •Системы проекционных уравнений
- •Проекционные методы
- •Решение одномерной краевой задачи
- •Решение одномерной краевой задачи (продолжение1)
- •Задача Дирихле
- •Программная реализация задачи Дирихле
- •Задача со свободным левым концом
- •Задача со свободным левым концом (продолжение)
- •Программная реализация задачи со свободным левым концом
- •Задача со свободным правым концом
- •Задача со свободным правым концом (продолжение)
- •Программная реализация задачи со свободным правым концом
- •Двумерная краевая задача Дирихле
- •Двумерная краевая задача Дирихле (продолжение)
- •Сведение трехмерной задачи для ДУ в частных производных к решению задачи для системы
- •• Метод Канторовича (продолжение)
- •Конец темы 7
Решение одномерной краевой задачи
• Найти решение |
|
|
|
|
|
|
u |
|
|
|
|
|
|
|
|||
|
|
|
|
g |
|
f ; |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
||
|
|
|
x |
|
|
|
|
|
|
|
|||||||
|
0 u |
0 |
|
|
|
|
|
|
0 |
|
1 u |
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
q |
x |
|
u |
|
|
x 0 |
|
|
; |
q x |
u |
|
x 1 |
|
. |
||
|
|
|
|
|
|
|
|
|
|
|
•Ищем решение в виде
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
uN (x) 0 (x) ak k (x) |
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
k 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
1 |
|
|
|
|
|
uN |
|
|
|
1 |
|
|
|
|
|||
• |
Проекционное уравнение |
|
|
|
|
g |
|
|
|
dx |
|
f |
dx; |
i 1... N. |
|||||||
|
|
|
|
|
|
||||||||||||||||
|
x |
|
|
x |
i |
|
|
i |
|
|
|||||||||||
|
|
|
|
0 |
|
|
|
|
|
0 |
|
|
|
|
|||||||
|
|
g |
uN |
i |
|
1 |
|
1 |
|
g |
uN |
|
i dx |
1 |
f idx |
|
|||||
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
||||||||||||||||
• |
преобразуем |
x |
|
|
|
|
x |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
||||||||
|
|
|
|
|
|
0 |
|
0 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
06/25/19 |
11 |
Решение одномерной краевой задачи (продолжение1)
• Подставляем uN
|
uN |
|
|
1 |
|
1 |
|
0 ak k i |
|
1 |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|||||
g |
|
i |
|
|
|
|
g |
|
|
dx |
|
f idx |
x |
|
|
x |
x |
||||||||
|
|
|
|
0 |
|
0 |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
•Преобразуем и получаем
•систему основных проекционных уравнений
n |
1 |
k |
|
|
|
||
ak g |
|
||
x |
|||
k 1 |
|
||
|
|
|
|
|
0 |
|
ix
|
1 |
|
|
|
|
|
|
dx |
|
f |
i |
|
|
|
|
|
0 |
|
|
|
0 |
|
i |
|
uN |
|
1 |
|
|
|||||||
|
|
|
||||||
g |
|
|
dx g |
|
i |
; i 1..N |
||
x |
|
x |
||||||
|
x |
|
|
0 |
||||
|
|
|
|
|
|
|
•В зависимости от постановки граничных условий выбираем соответствующую систему базисных функций
06/25/19 |
12 |
Задача Дирихле |
|
|
|
u |
|
x 0 |
0 |
; u |
|
x 1 |
1. |
||||
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
• Выбираем систему базисных функций вида: |
|
|
|
|
|||||||||||
|
0 0 |
1 0 |
x, k |
sin k x |
|
|
|
||||||||
• |
В силу того, что |
g u |
N |
|
|
|
1 |
0; i 1..N |
|
|
|
|
|
||
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||
|
|
i |
|
|
|
|
|
|
|
||||||
|
|
x |
|
|
0 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
•Получаем проекционное уравнение вида
|
n |
|
1 |
|
k i |
|
|
|
|
|
|
||
|
a |
k |
g |
|
|
|
|
|
x |
x |
|||
|
k 1 |
|
0 |
|
|
1 |
f |
dx |
|
|
|
i |
|
|
||
|
0 |
|
g |
|
0 |
|
i |
|
|
|
dx; i 1..N |
|||
|
x |
x |
|
||
|
|
•Или для выбранных функций
|
n |
|
1 |
|
|
1 |
|
|
|
|
|
|
a |
k |
g(x)ki 2 cos(k x) cos(i x)dx |
|
|
f sin(i x) g( 1 |
0 )i cos(i x) |
dx; |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
k 1 |
|
0 |
|
|
0 |
|
|
|
|
i 1..N |
|
|
|
|
|
|
|
|||
|
|
|
|
06/25/19 |
|
|
|
|
13 |
Программная реализация задачи Дирихле
•function V2_1;
•Be0=1; be1=0; N=4; M=10;
•for i=1:N
•F1 = @(x)f(x).*sin(i*pi*x)-g(x).*(be1-be0).i*pi*cos(i*pi*x);
•d(i) = quad(F1,0,1);
•for k=1:N
•F2 = @(x)g(x).*cos(i*pi*x).*cos(k*pi*x)*i*k*pi^2;
•G(i,k)=quad(F2,0,1);
•end; end
•a=d/G;
•a
• for i=1:M+1 %выдача графика
•xt(i)=(i-1)/M;
•y(i)=be0+(be1-be0)*xt(i);
•for k=1:N
•y(i)=y(i)+a(k)*sin(k*pi*xt(i));
• |
end; end; |
|
• |
plot(xt,y); |
|
• |
return |
|
|
06/25/19 |
14 |
Задача со свободным левым концом
|
u 0u |
|
0 ; u |
|
x 1 |
1. |
|
|
|
||||
|
|
|
||||
• Выбираем базис вида |
x |
|
x 0 |
|
|
|
|
|
|
||||
|
|
|
|
|||
|
|
|
|
|||
|
|
|
|
|
|
|
0 1x, k sin 0.5k (1 x |
k (0) sin(0.5k ), |
|
k (1) 0 |
•Первый член проекционного уравнения используя гр. условие:
g |
uN |
i |
|
1 |
g( 0 0uN ) i |
|
g(0)( 0 |
0 0 (0)) i (0) ak 0 g(0) k (0) i (0) |
|
|
|||||||
|
|
|
||||||
|
|
|
||||||
|
x |
|
|
0 |
|
|
0 |
k |
|
|
|
|
|
||||
|
|
|
|
|
|
|
•Проекционное уравнение
n |
|
|
|
|
1 |
|
|
|
1 |
|
|
|
|||
|
a |
0 g(0) |
|
(0) (0) |
|
g |
k |
i dx |
|
|
|
f g |
0 |
i |
dx |
|
|
|
|
|
|
||||||||||
|
|
k |
i |
|
|
|
|
|
i |
|
|
|
|||
|
k |
|
x x |
|
x x |
||||||||||
k 1 |
|
|
|
|
0 |
|
|
0 |
|
|
|
||||
|
|
|
|
g(0)( 0 |
0 0 (0)) i (0); i 1..N |
|
|
|
|||||||
|
|
06/25/19 |
|
|
|
|
|
|
|
|
|
|
|
|
15 |
Задача со свободным левым концом (продолжение)
•Проекционное ур-е
n |
|
|
|
1 |
|
|
1 |
|
|
|
|||
|
a 0 g(0) |
|
(0) (0) |
g |
k |
i dx |
|
|
|
f g |
0 |
i |
dx |
|
|
|
|
|
|||||||||
|
k |
i |
|
|
|
|
i |
|
|
|
|||
k |
x x |
|
x x |
||||||||||
k 1 |
|
|
|
0 |
|
0 |
|
|
|
g(0)( 0 0 0 (0)) i (0); i 1..N
•После подстановки функций базиса:
|
|
|
0 |
g(0)sin(0.5 k)sin(0.5 i) |
|
|
|||
|
|
|
|
|
|
||||
n |
a |
|
|
|
|
|
|
|
|
|
k |
1 |
|
|
2 |
|
|
|
|
|
|
g( x)ki |
|
cos(0.5k (1 x)) cos(0.5i (1 |
x))dx |
|
|||
|
|
|
4 |
|
|||||
k 1 |
|
|
|
|
|
||||
|
|
|
0 |
|
|
|
|
|
|
1 |
f sin(0.5i (1 x)) g 10.5i cos(0.5i (1 x)) dx |
|
|||||||
|
|
||||||||
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g(0) 0 sin(0.5i ); |
i 1..N |
06/25/19 |
16 |
Программная реализация задачи со свободным левым концом
•function V2_2(al0,be0,be1,N,M);
•for i=1:N
•F1 = @(x)f(x).*sin(0.5*i*pi*(1-x))-
• |
g(x).*be1.*0.5*i*pi*cos(0.5*i*pi*(1-x)); |
•d(i) = quad(F1,0,1)+g(0)*be0*sin(0.5*i*pi);
•for k=1:N
•F2 = @(x)g(x).*cos(0.5*i*pi*(1-x)).*cos(0.5*k*pi*(1-x))
•*i*k*pi^2*0.25;
•G(i,k)=al0*g(0)*sin(0.5*k*pi)*sin(0.5*i*pi)-quad(F2,0,1);
•end; end
•a=d/G;
•a
•for i=1:M+1
•xt(i)=(i-1)/M;
•y(i)=be1*xt(i);
•for k=1:N
•y(i)=y(i)+a(k)*sin(0.5*k*pi*(1-xt(i)));
•end; end;
•plot(xt,y,'b');
•return
06/25/19 |
17 |
Задача со свободным правым концом
|
|
|
|
|
0 |
; |
u |
1 |
|
|
1 |
. |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|||||||
|
|
u |
|
x 0 |
|
x |
u |
|
|
|||
• |
Выбираем базис вида |
|
|
|
|
|
x 1 |
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
|
0 0 (1 x), k sin 0.5k x |
k (0) 0, |
k (1) sin(0.5k ) |
•Первый член проекционного ур-я
g |
uN |
i |
|
1 |
g( 1 1uN ) i |
|
1 g(1)( 1 1 0 (1)) i (1) ak 1g(1) k (1) i |
|
|
||||||
|
|
|
|||||
|
|
|
|||||
|
x |
|
|
0 |
|
|
k |
|
|
|
|
|
|||
|
|
|
|
|
|
•Проекционное уравнение
n |
|
|
1 |
|
|
|
|
1 |
|
k |
|
|
|
|
(1) |
|
|
g |
|||
k |
|
k |
i |
|
||||||
|
a |
g(1) |
|
(1) |
|
x |
||||
k 1 |
|
|
|
|
|
|
|
0 |
|
ix
|
1 |
f |
dx |
|
|
|
i |
|
|
||
|
0 |
|
g(1)( 1 1 0 (1)) i (1); i 1..N
g 0 i dx
x x
06/25/19 |
18 |
Задача со свободным правым концом (продолжение)
Проекционное уравнение
n |
|
|
1 |
|
|
|
|
1 |
|
k |
|
a |
|
|
(1) |
|
|
g |
|||
k |
|
k |
i |
|
||||||
|
g(1) |
|
(1) |
|
x |
|||||
k 1 |
|
|
|
|
|
|
|
0 |
|
ix
|
1 |
f |
dx |
|
|
|
i |
|
|
||
|
0 |
|
g(1)( 1 1 0 (1)) i (1); i 1..N
g 0 i dx
x x
После подстановки функций базиса
n |
|
|
1 |
|
|
2 |
|
|
|
|
|
k |
|
|
4 |
|
|
|
|
|
a |
1g(1)sin(0.5 k)sin(0.5 i) |
|
g(x)ki |
|
|
cos(0.5k x) cos(0.5i x)dx |
|
|
|
|
|
|
|
|
|
|
|
|
k 1 |
|
|
0 |
|
|
|
|
|
|
1 |
f sin(0.5i x) g 0 0.5i cos(0.5i x) dx g(1) 1 sin(0.5 i); |
|
|
||||||
|
i 1..N |
|
|||||||
0 |
|
|
|
|
|
|
|
|
|
06/25/19 |
19 |
Программная реализация задачи со свободным правым концом
•function V2_3(al1,be0,be1,N,M);
•for i=1:N
•F1 = @(x)f(x).*sin(0.5*i*pi*x)-
• |
g(x).*be0.*0.5*i*pi*cos(0.5*i*pi*x); |
•d(i) = quad(F1,0,1)-g(1).*be1*sin(0.5*i*pi);
•for k=1:N
•F2 = @(x)g(x).*cos(0.5*i*pi*x).*cos(0.5*k*pi*x)*i*k*pi^2*0.25;
•G(i,k)=-al1*g(1).*sin(0.5*k*pi)*sin(0.5*i*pi)-quad(F2,0,1);
•end; end
•a=d/G;
•a
•for i=1:M+1
•xt(i) =(i-1)/M;
•y(i)=be0*(1- xt(i) );
•for k=1:N
•y(i)=y(i)+a(k)*sin(0.5*k*pi*xt(i));
•end; end;
•plot(xt,y,'b');
•return
06/25/19 |
20 |