Скачиваний:
42
Добавлен:
15.06.2014
Размер:
517.99 Кб
Скачать

Решение одномерной краевой задачи

Найти решение

 

 

 

 

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

 

 

 

f ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q 0

u

0 u

 

 

 

0 ;

q 1

u

1u

 

 

1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

x 0

 

 

 

 

 

 

 

 

 

x

 

 

 

x 1

 

 

• Ищем решение в виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u N ( x ) 0 ( x ) a k k ( x )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

u

N

 

 

 

 

1

 

Проекционное уравнение

 

 

 

 

 

i d x

f i d x ;

i 1 ... N .

 

 

g

 

 

 

 

x

 

x

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

u N

 

 

1

1

u N

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

• преобразуем

g

i

 

 

g

 

i

d x

f i d x

x

 

 

x

 

x

 

 

 

 

0

0

 

0

 

05.01.2011

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение одномерной краевой задачи (продолжение1)

• Подставляем uN

 

u N

 

 

1

1

0 a k

k

 

1

 

 

 

 

 

 

 

 

g

i

 

 

g

i

d x f i d x

x

 

 

x

 

 

x

 

 

 

0

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преобразуем и получаем

систему основных проекционных уравнений

 

n

 

1

 

k

 

i

 

1

 

 

 

 

0

 

i

d x g

u

N

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

g

 

d x

 

f

 

g

 

 

 

 

; i 1 .. N

 

 

 

 

 

 

 

 

 

 

 

 

k

 

x

 

x

 

 

i

 

x

 

x

 

x

 

i

 

 

k 1

 

0

 

 

 

0

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В зависимости от постановки граничных условий выбираем соответствующую систему базисных функций

05.01.2011

12

Задача Дирихле

u

 

x 0

0

;

 

 

 

 

 

 

 

 

 

• Выбираем систему базисных функций вида:

 

 

0 0 1 0 x ,

k sin k x

• В силу того, что

 

 

 

u

N

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

 

i

 

0; i 1 ..N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

• Получаем проекционное уравнение вида

 

 

n

 

 

1

 

k

 

i

 

 

 

 

1

 

 

 

 

0

 

i

d x ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

g

 

d x

 

 

f

 

g

 

 

 

 

 

 

 

 

 

 

k

 

x

 

x

 

 

 

 

i

 

x x

 

 

k 1

 

0

 

 

 

 

 

0

 

 

 

 

 

u

 

x 1

1 .

 

 

 

 

i 1 ..N

• Или для выбранных функций

 

n

 

 

1

 

1

f sin ( i x ) g ( 1

0 )i c o s( i x ) d x ;

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

g ( x ) k i 2 c o s( k x ) c o s( i x ) d x

 

 

 

k

 

 

 

 

k 1

 

0

 

0

 

 

i 1 .. N

 

 

 

 

 

05.01.2011

 

 

 

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

05.01.2011

14

Задача со свободным левым концом

u

0 u

0 ; u

 

1 .

 

 

x

x 0

 

x 1

 

 

 

 

 

 

 

Выбираем базис вида

0

1 x ,

k

s in 0 .5 k (1 x

 

k

(0 ) sin (0 .5k ),

 

k

(1) 0

 

 

 

 

 

 

 

 

 

 

Первый член проекционного уравнения используя гр. условие:

 

u N

 

1

 

g ( 0 )( 0 0 0 ( 0 )) i ( 0 ) a k 0 g ( 0 ) k ( 0 ) i ( 0 )

 

 

 

g

i

g ( 0 0 u N ) i

 

 

x

 

 

 

 

0

 

 

 

 

 

 

 

 

0

 

k

 

 

 

 

 

Проекционное уравнение

n

 

 

 

 

 

 

1

 

k

 

i

 

 

 

1

 

 

 

 

0

 

i

d x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

0 g ( 0 )

 

( 0 )

 

( 0 )

 

g

 

d x

 

f

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

k

k

 

i

 

 

x

 

 

x

 

 

 

i

 

x

 

x

 

k 1

 

 

 

 

 

 

0

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

g ( 0 )( 0 0

0

 

( 0 ))

i

( 0 ); i 1 .. N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

05.01.2011

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

Задача со свободным левым концом (продолжение)

Проекционное ур-е

n

 

 

 

 

 

 

1

 

k

 

i

 

 

 

1

 

 

 

 

0

 

i

d x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

0 g ( 0 )

 

( 0 )

 

( 0 )

 

g

 

d x

 

f

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

k

k

 

i

 

 

x

 

 

x

 

 

 

i

 

x

 

x

 

k 1

 

 

 

 

 

 

0

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

g ( 0 )( 0 0

0

 

( 0 ))

i

( 0 ); i 1 .. N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После подстановки функций базиса:

 

0 g ( 0 ) s in ( 0 .5 k ) s in ( 0 .5 i )

 

 

n

 

 

 

 

 

 

a k

 

1

2

 

 

 

 

 

 

 

 

k 1

 

g ( x ) k i

 

c o s ( 0 .5 k (1 x )) c o s ( 0 .5i (1 x )) d x

 

4

 

 

0

 

 

 

 

 

 

 

1

 

 

 

 

 

 

f s in ( 0 .5i (1 x )) g 1 0 .5i c o s ( 0 .5i (1 x )) d x

 

0

 

 

 

 

 

 

 

 

 

 

g ( 0 ) 0 s in ( 0 .5i );

i 1 .. N

05.01.2011

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

05.01.2011

17

Задача со свободным правым концом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 ;

 

u

1u

 

 

1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбираем базис вида

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0 (1 x ), k s in

0 .5 k x

k (0) 0,

k

(1) sin (0.5 k )

• Первый член проекционного ур-я

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u N

 

 

1

 

 

 

 

1 g (1)( 1

 

 

 

 

 

 

a k 1 g (1) k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g ( 1 1u N

 

1 0 (1)) i (1)

 

g

 

 

i

) i

(1) i

 

x

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проекционное уравнение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

1

 

k

 

i

 

 

1

 

 

 

 

 

0

 

i

d x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

1 g (1)

 

(1)

 

(1)

 

 

g

 

d x

 

f

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

k

 

i

 

 

 

x

 

x

 

 

 

i

 

 

x

 

 

x

 

 

k 1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g (1)( 1

1 0

(1)) i (1); i

1 .. N

 

 

 

 

 

 

 

05.01.2011

18

Задача со свободным правым концом (продолжение)

Проекционное уравнение

n

 

 

 

 

 

 

1

 

k

 

i

 

 

1

 

 

 

 

0

 

i

d x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

1 g (1)

 

(1)

 

(1)

 

g

 

d x

 

f

 

g

 

 

 

 

 

 

 

 

 

 

 

 

k

k

 

i

 

 

x

 

x

 

 

i

 

x

 

x

 

k 1

 

 

 

 

 

 

0

 

 

 

0

 

 

 

 

 

 

 

 

 

 

g (1)( 1

1 0

(1)) i

(1); i 1 .. N

 

 

 

 

 

После подстановки функций базиса

n

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

a

1 g (1) s in ( 0 .5 k ) s in ( 0 .5 i )

 

g ( x ) k i

 

c o s ( 0 .5 k x ) c o s ( 0 .5 i x ) d x

 

 

 

k

 

4

 

 

k 1

 

 

0

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

f

s in ( 0 .5i x ) g 0 0 .5i c o s ( 0 .5 i x ) d x g (1) 1 s in ( 0 .5 i);

i 1 .. N

0

 

 

 

 

 

 

 

 

05.01.2011

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

05.01.2011

20