Sunteți pe pagina 1din 47

II.

Probleme cu valori pe frontier (continuare)


II.4. Metoda diferenelor finite
Fie problema cu valori pe frontier

d~
y
= f ( x, ~
y ), f :[a, b] R d R d , d 2
dx

completat n capetele intervalului

[a, b]

(II.1)

cu condiii de forma:

g(~
y (a ), ~
y (b )) = 0

(II.2)

n rezolvarea problemelor cu valori pe frontier folosind metoda


diferenelor finite sunt necesari urmtorii pai:
- alegerea unei reele (grile)
g : a = x1 < x2 < x3 < ... < x  < x  +1 = b
hi = xi +1 xi , i = 1, 2,..., 

(II.38)

- aproximarea derivatelor i a condiiilor pe frontier folosind


diferene finite i formarea unui sistem de ecuaii algebrice
- rezolvarea

sistemului

obinerea

valorilor

numerice

yi ~
y ( xi ), i = 1, 2,...,  + 1

II.4.1. O schem pentru probleme bilocale linire de ordinul II


Fie problema bilocal liniar
~
y ' ' ( x ) p ( x )~
y ' ( x ) r ( x )~
y ( x ) = q( x ),
~
y (0 ) = , ~
y (1) =

x [0,1]

(II.39)

Pentru a rezolva numeric problema (II.39) introducem o gril


uniform definit astfel:
1

xi = (i 1)h, i = i = 1, 2,...,  + 1

h=

(II.40)

apoi vom evalua derivatele de ordinul doi i nti din ecuaia


(II.39) folosind dezvoltri n serie Taylor. Astfel avem:
h2
h3
y ( xi +1 ) = y ( xi + h ) = y ( xi ) + hy ' ( xi ) +
y ' ' ( xi ) + y ' ' ' ( xi ) + O (h 4 )
2
6
h2
h3
y ( xi 1 ) = y ( xi h ) = y ( xi ) hy ' ( xi ) +
y ' ' ( xi ) y ' ' ' ( xi ) + O (h 4 )
2
6

Scznd i adunnd relaiile (II.41) obinem:


3

(II.41)

y ( xi +1 ) y ( xi 1 )
+ O (h 2 )
2h
y ( xi +1 ) 2 y ( xi ) + y ( xi 1 )
2
(
)
y ' ' ( xi ) =
+
O
h
2
h
y ' ( xi ) =

(II.42)

Folosind notaia yi = y ( xi ) putem discretiza ecuaia (II.39) astfel:


y1 =

y i +1 2 y i + y i 1
y i +1 yi 1
(
)

p
x
r ( xi ) y i = q( xi ), i = 2, 3,..., 
i
2
2h
h
y  +1 =

(II.43)

SAU

y1 =

h
h

yi 1 1 p( xi ) + yi 2 + r ( xi )h 2 + yi +1 1 + p( xi ) = q( xi )h 2 , i = 2, 3,..., 
2
2

y  +1 =

(II.43)
4

Se observ c ecuaiile (II.43) formeaz un sistem tridiagonal de


forma
a1
b
2

c1
a2

c2

b3

a3

c3

O O
b

O
a
b +1

y1 d1
y d
2 2
y3 d 3
M = M



c y d 



a  +1 y  +1 d  +1

(II.44)

unde
a1 = a  +1 = 1, c1 = 0, b +1 = 0, d1 = , d  +1 =
h
h
bi = 1 p( xi ), ai = 2 + r ( xi )h 2 , ci = 1 + p( xi ), d i = q( xi )h 2
2
2
i = 2, 3,..., 

(II.45)

Sistemul tridiagonal (II.44) se poate rezolva prin metode eficiente,


de exemplu algoritmul lui Thomas. Facem observaia c n general
metodele cu diferene finite conduc la sisteme algebrice cu o
structur de tip band pentru care exist metode numerice
eficiente. Conform teoriei rezolvrii numerice a sistemelor de
ecuaii avem teorema (vezi Faires i Burden, 2002):
Teorema 13: Dac p, q, r C[0,1] i r ( x ) 0 pe [0,1] atunci sistemul
tridiagonal (II.44) are soluie unic obinut pentru h <
unde L = max p( x ) .
0 x 1

L
2

Exemplu 1: Fie problema bilocal


y ' ' ( x ) y ( x ) = e x , y (0 ) = 1 / 2, y(1) = e
1
2

Soluia analitic y ( x ) = e x (1 + x ) se poate obine cu Mathematica.


In[25]:= DSolve@8y''@xD  y@xD + Exp@xD, y@0D  1 2,
y@1D  Exp@1D<, y@xD, xD
Out[25]= 99y@xD

Discretizm

1
2

x H1 + xL==

n continuare problema folosind diferene finite

pentru o gril echidistant cu  noduri:

y1 = 1 / 2
yi 1 2 y i + y i +1
xi

y
=
e
, i = 2, 3,...,  1
i
2
h
y = e

care se scrie sub form de sistem astfel:


1
1 2 + h 2

1
O
O
1 2 + h2

y1 1 / 2
y h2eh
2

M
M =

1 y  1 h 2 e (  2 )h

e
1 y 

Dm n continuare programul Matlab care rezolv problema:


%Problema liniara cu valori pe frontiera PLVF
a=0;b=1;N=6;
h=(b-a)/(N-1);

A=zeros(N,N);y=zeros(N,1);r=zeros(N,1);
%valoarea pe frontiera in punctul a
A(1,1)=1;r(1)=0.5;
%pentru i=2,N-1
for i=2:N-1
A(i,i-1)=-1;A(i,i)=2+h*h;A(i,i+1)=-1;
r(i)=-h*h*exp((i-1)*h);
end
%valoarea pe frontiera in punctul b
A(N,N)=1;r(N)=exp(1);
y=A\r;
x=a:h:b;
plot(x,y,'.r');%solutia numerica
hold on
x=a:0.1*h:b;
plot(x,0.5*(1+x).*exp(x),'b'); %solutia exacta

Figura 17. Comparaie ntre soluia analitic i cea numeric.


10

y exact

y y exact

0.0
0.2
0.4
0.6
0.8
1.0

0.500000
0.733839
1.045889
1.459447
2.004268
2.718281

0.500000
0.732841
1.044277
1.457695
2.002986
2.718281

0.000000
0.000998
0.001612
0.001752
0.001281
0.000000

Tabelul 8.Comparaie ntre valorile numerice i exacte

11

II.4.2. O schem pentru probleme bilocale nelinire de ordinul II


Fie problema neliniar cu valori pe frontier
~
y ' ' = f ( x, ~
y, ~
y ' ), x [a, b], ~
y (a ) = y a , ~
y (b ) = yb

(II.46)

Presupunem c sunt ndeplinite condiiile Teoremei 12 astfel nct


problema (II.46) are soluie unic. Discretizm problema (II.4)
folosind diferene finite pentru o gril echidistant cu pasul h cu
 + 2 noduri:
y0 = y a
yi +1 2 yi + yi 1
yi +1 yi 1
=
f
x
y
(
,
,
), i = 1, 2,..., 
i
i
2
2h
h
y  +1 = yb

12

(II.47)

Sistemul (II.47) poate fi rescris astfel:


y ya

2 y1 y 2 + h 2 f x1 , y1 , 2
ya = 0
2h

y yi 1
yi 1 + 2 yi yi +1 + h 2 f ( xi , yi , i +1
), i = 2,...,  1
2h
y y  1

y  1 + 2 y  + h 2 f x  , y  , b
yb = 0
2h

sau
f1 ( y1 , y 2 ,..., y  ) = 0
...
f  ( y1 , y 2 ,..., y  ) = 0

13

(II.48)

Se observ ca pentru gsirea valorilor yi avem de rezolvat sistemul


neliniar (II.48) i pentru rezolvarea lui vom folosi metoda lui
Newton
y ( k ) = y ( k 1) J (y ( k 1) ) F (y ( k 1) )
1

(II.49)

sau
y (k ) = y ( k 1) + (k 1) ,

J (y ( k 1) ) ( k 1) = F (y ( k 1) )

unde F = ( f1 ,..., f  )T , iar componentele Jacobianului J =


care este o matrice tridiagonal, sunt:

14

( f1 ,..., f n )
,
( y1 ,..., y  )

J ( y1 , y 2 ,..., y  )ij

y i +1 y i 1
h

+
1
f
x
,
y
,
~y ' i
,
i

2
2h

y y i 1

= 2 + h 2 f ~y xi , y i , i +1
,
2h

y i +1 y i 1
h
1
f
x
,
y
,

+
~
,

y' i
i
2
2h

i = j 1, j = 2,..., 
i = j , j = 1,..., 
i = j + 1, j = 1,...,  1

(II.50)

II.4.3.Metoda Keller-Box
Metoda Keller Box este o metoda care utilizeaz diferene finite,
problemele de rezolvat reducndu-se la rezolvarea unor sisteme de
ecuaii algebrice. Metoda a fost introdus de Keller (1970) i
15

aplicat apoi de ali autori n problemele de strat limit laminar i


turbulent. Ea a fost popularizat odat cu apariia crii lui Cebeci
i Bradshaw (1984). Metoda Keller Box este deosebit de
eficient n rezolvarea ecuaiilor difereniale ordinare i a ecuaiilor
cu derivate pariale de tip parabolic. Astfel de ecuaii sau sisteme
de ecuaii apar i n modelarea curgerilor cu strat limit, a
conveciei, a fenomenelor de transport, etc.
Pentru a rezolva ecuaiile difereniale ordinare sau cu derivate
pariale folosind metoda Keller Box se utilizeaz schema
iterativ Newton Raphson de rezolvare a ecuaiilor i sistemelor
16

de ecuaii algebrice neliniare.


Astfel, dac avem o ecuaie algebric neliniar de forma f(x) = 0,
vom considera iteraia necesar aflrii rdcinii
xn+1 = xn + n

(II.51)

unde xn este aproximaia rdcinii la pasul n, iar n este eroarea de


calcul la acelai pas. Apoi, pentru a afla valoarea lui n, dezvoltm
n serie Taylor funcia f(x) n punctul xn+1:
0 = f(xn+1) = f(xn + n) = f(xn) + nf (xn) +

(II.52)

unde f reprezint derivata funciei f i pstrnd doar termenii de


ordin nti n n avem:
17

f (x n )
n
f ' (x n )

(II.53)

ntru ct n este cunoscut, folosind relaia (II.51), putem gsi


iteraia care ne va conduce la aflarea rdcinii:
x n +1 = x n + n = x n

f (x n )
f ' (x n )

(II.54)

Putem generaliza acest raionament i n cazul unui sistem algebric


neliniar de N ecuaii cu N necunoscute:
f 1 ( x 1 , x 2 ,..., x N ) = 0
f ( x , x ,..., x ) = 0
2 1 2
N

...

f N ( x 1 , x 2 ,..., x N ) = 0

18

(II.55)

Considerm acum iteraia (II.51) pentru aflarea rdcinii, scris n


form N dimensional:
(x1, x2, , xN)(n+1) = (x1, x2, , xN)(n) + (1, 2, , N)(n)

(II.56)

i n continuare dezvoltm sistemul (II.56) n serie Taylor:

0 = f j x1

( n +1)

,x2

( n +1)

,..., x N

( n +1)

) = f (x
j

(n)
1

,x2

(n)

,..., x N

(n)

f j
+
i =1 x i
N

(n)

(n)

j = 1, N

unde necunoscutele i(n), i = 1, 2, , N se pot determina rezolvnd


urmtorul sistem:

19

f 1
x
1
f 2
x 1
...

f N
x 1

f 1
x 2
f 2
x 2
f N
x 2

f 1
...
x N

f 2
...
x N

f N
...
x N

(n )

1

2
...

N

(n)

f1
f
= 2
...

f N

(n)

(II.57)

Sistemul (II.57) fiind liniar poate fi rezolvat cu o rutin de tip


Gauss. Totui, nu este uor s gsim toate soluiile sistemului
(II.55) i nu vom obine soluie pentru orice alegere iniial, x1.
Pentru evaluarea derivatelor din matricea sistemului (II.57) putem
folosi diferene finite i, chiar dac nu avem o eficien att de
20

mare, scrierea codului poate fi generalizat pentru funcii foarte


complicate. Astfel, de exemplu, avem:
f j
x i

f j (x 1 ,..., x j1 , x j + , x j+1 ,..., x N ) f j (x 1 ,..., x j1 , x j , x j+1 ,..., x N )

(II.58)
unde este un numr mic ( 10-5) i nu neaprat pozitiv.
n cazuri extreme putem folosi un factor de relaxare, , pentru a
subrelaxa coreciile i pentru a prentmpina o posibil divergen:
(x1, x2, , xN)(n+1) = (x1, x2, , xN)(n) + (1, 2, , N)(n)

21

(II.59)

unde 0 < 1, metoda Newton Raphson corespunznd cazului


n care = 1.
Vom arta n continuare cum se aplic aceast metod pe un caz
concret. Considerm ecuaia conveciei libere pe o plac
permeabil, vertical, cu generare intern de cldur, plasat ntrun mediu poros (vezi Postelnicu i ceilali, 2000):
+1
f ' ' '+
ff ' 'f ' 2 + e = 0
2

(II.60)

cu condiiile la limit:
f(0) = - fw , f (0) = 1, f () = 0
22

(II.61)

unde fw este parametrul fluxului de mas (suciune sau injecie), iar


este o constant.
n aceast metod se reduce ecuaia (II.60) la un sistem de ecuaii
difereniale ordinare de ordinul unu fcnd urmtoarele notaii
a = f, b = f , c = f

(II.62)

nlocuind n (II.60) i (II.61) obinem

a ' b = 0

b'c = 0

c'+ + 1 ac b 2 + e = 0

23

(II.63a)

iar condiiile la limit (II.61) devin:


a (0) + f w = 0

b(0) 1 = 0
b ( ) = 0

(II.63b)

Definim o reea de puncte 1, 2, , N (1 = 0, N = ), paii


putnd fi inegali, adic hi = i+1 - i. Pentru discretizarea
derivatelor de ordinul nti folosim diferene finite centrale i vom
nota ai = a(i). Aproximarea pentru a() n
i +1 + i
2
= i+1/2 =

este
24

a i +1 a i
a 'i +1 / 2
hi
iar pentru a(i+1/2) vom avea

a i +1 + a i
2
.
Dup discretizare, considernd c avem un pas echidistant,
ecuaiile (II.63a) devin
a i +1 / 2

a i +1 a i b i +1 + b i

=0

h
2

b i +1 b i c i +1 + c i

=0

h
2

c i +1 c i + + 1 (a + a )(c + c ) (b + b )2 + e i +1 / 2 = 0
i +1
i
i +1
i
i +1
i
h
8
4

25

(II.64)

pentru i = 1, 2,, N-1, avnd 3N 3 ecuaii pentru 3N


necunoscute. Numrul ecuaiilor se completeaz cu condiiile pe
frontier (II.63b) care, discretizate, se vor scrie:
a1 + fw = 0, b1 1 =0, bN = 0

(II.65)

Pentru a rezolva sistemul (II.64) (II.65) folosim iteraia Newton


Raphson, ai(n+1) = ai(n) + ai(n) i utilizm expresii similare i pentru
b i c. nlocuind aceste expresii n (II.64) i (II.75) i pstrnd doar
termenii de ordinul nti n , rezult:
a i +1 a i b i +1 + b i
a a i b i +1 + b i

= i +1

h
2
2
h

26

(n)

(II.66a)

b i +1 b i c i +1 + c i
b b i c i +1 + c i

= i +1

h
2
2
h

(n)

(II.66b)

c i +1 c i + 1
+
(a i +1 + a i )(c i +1 + c i ) + + 1 (c i+1 + c i )(a i+1 + a i )
h
8
8

c ci + 1
(a i +1 + a i )(c i +1 + c i ) (b i +1 + b i )2 + e i +1 / 2
(b i +1 + b i )(b i +1 + b i ) = i +1
+
2
8
4
h

(n)

(II.66c)
Condiiile la limit (II.65) devin:
a1= -a1(n) + fw , b1 = 1 b1(n), bN = - bN(n)

(II.67)

Putem scrie sistemul (II.66) (II.67) sub forma matricial (II.68),


unde valorile pentru (ri)j sunt date de relaiile:

27

(r1 )i

a a i b i +1 + b i
= i +1

2
h

(r2 )i

b b i c i +1 + c i
= i +1

2
h

(r3 )i

c ci + 1
(a i+1 + a i )(c i +1 + c i ) (b i +1 + b i )2 + e i +1 / 2
= i +1
+
8
4
h

28

1
0
0

0
1
0

1
1

h
2

1
1
0

h
2

+
1

+
1

(c 2 + c1 ) (b 2 + b1 )
(a 2 + a1 ) 1
8
2
8
h

...
...
...

+1
(c N + c N 1 )

a1
b
1
c1
...

. . ..
...

.. .

...
a
N
b N

c N

(n )

a1 + f w
1 b
1

(r1 )1

(r2 )1
(r3 )1

(r )

1 N 1
(r2 )N 1

(r3 )N 1
b N

1
h

1
2
1
h

+1
(c 2 + c1 )
8
...
1

2
1
h

(b 2 + b1 )
2
...
0
1

(b N + b N 1 ) + 1 (a N + a N 1 ) 1
2
8
h

1
2

+1
(a 2 + a1 ) + 1
8
h
...
1
h
0

+1
(c N + c N 1 )
8
0

1
2
1
h

(b N + b N 1 )
2
1

(n )

(II.68)

29

+1
(a N + a N 1 ) + 1
8
h
0

Prin rezolvarea sistemului (II.68) de mai jos, obinem mrimile ai(n),


bi(n), ci(n), i = 1, 2, , N i astfel putem calcula urmtoarele iteraii
ai(n+1) , bi(n+1), ci(n+1), iar acest procedeu se continu pn la obinerea
acurateii dorite. Exist mai multe metode de rezolvare a sistemului
algebric liniar (II.68) i n continuare vom prezenta metoda eliminrii
blocurilor descris n cartea lui Cebeci i Cousteix (1999), deoarece
matricea sistemului are o structur tridiagonal de blocuri.
Pentru a putea aplica metoda eliminrii blocurilor trebuie ca blocurile de
pe diagonala principal s fie nesingulare i n acest scop vom schimba
ntre ele liniile corespunztoare ecuaiilor (II.66a) i (II.66b). Dup ce
facem aceast schimbare introducem urmtoarele notaii:
30


1 0
A 1 = 0 1

1
0

0
0 ,
1

2

h
+1
(c N + c N 1 )
AN =
8
0

B i +1

1
1

h
2
+1
(c i+1 + c i ) (b i +1 + b i ) + 1 (a i+1 + a i ) +
A i +1 =
4
8
8
1
1

h
2
1

+1
1
(a N + a N 1 ) + , 2 i N 2
(b N + b N 1 )
4
8
h
1
0

1
1

h
2
+1

+1
1
(c i+1 + c i ) (b i+1 + b i )
(a i+1 + a i ) , 1 i N 1
=
2
8
h
8
0
0
0

31

1
,
h


0
C i = 0

0
0
1
h

0
0 , 1 i N 1
1

2

(II.69)

a i
i = b i , 1 i N
c i

a 1 + f w
(r1 )i 1
(r1 )N 1

r1 = 1 b1 , rN = (r3 )N 1 , ri = (r3 )i 1 , 2 i N 1
(r2 )1
(r2 )i
b N

Cu notaiile (II.69) sistemul (II.68) se poate scrie acum n forma


matricial:
32

A 1
B
2
...

C1
A2
...

C2
...
Bi

Ai

Ci

...

...

...
B N 1

A N 1
BN

1 r1
r
2 2
... ...

r
i i
... ...

C N 1 N 1 rN 1
A N N rN

(II.70)

n continuare rezolvm sistemul (II.70) folosind metoda eliminrii


blocurilor i pentru nceput vom afla mrimile i i i din formulele
recursive de mai jos:
33

1 = A1
ii-1 = Bi, i = 2,3, N

(II.71)

i = Ai - iCi-1, i = 2,3,N
unde i are aceeai structur ca i blocul Bi, apoi vom calcula wi dup
formula:
w 1 = r1
wi = ri-iwi-1, i=2,3,N

(II.72)

n cele din urm, putem afla valorile i necesare calculrii iteraiilor


pentru pasul urmtor:
NN = wN
ii = wi - Cii+1, j = N-1, N-2, ,1
34

(II.73)

Metoda eliminrii blocurilor este o metod general care poate fi utilizat


pentru rezolvarea oricrui sistem liniar de ecuaii algebrice cu structur
de blocuri tridiagonal. Complexitatea acestui algoritm depinde de
ordinul matricelor Ai, Bi, Ci. Cnd ordinul acestor matrici este mic atunci
sistemul (II.70) se poate rezolva relativ uor fr folosirea unor cantiti
mari de resurse.
II. 5. Rezolvitori Matlab
Probleme Cauchy. Rezolvitorii ODE
Fie problema cu valori iniiale

completat n

d~y
= f ( x, ~y ), f :[a, b] R d R d , d 2
dx
capetele intervalului [a, b] cu condiii de
~
y (a ) = y
a

35

(II.74)
forma:
(II.75)

Clasa de funcii ODE rezolv probleme cu valori iniiale. Au sintaxa


[t,Y] = solver(odefun,tspan,y0,options, p1, p2, ...)

sau
sol = solver(odefun,[t0 tf],y0...)

unde solver poate fi


sau ode23tb.

ode45, ode23, ode113, ode15s, ode23s, ode23t

Parametrii de intrare
odefun specific funcia din membrul drept a ecuaiei (II.1)
tspan intervalul de integrare.
Dac tspan = [a, b] rezolvitorul integreaz de la a la b i returneaz valorile
n paii variabili generai automat.
36

Dac tspan = [a, h1 , h2 ,..., h 1 , b] rezolvitorul integreaz de la a la b i returneaz soluiile n punctele intermediare.
y0

specific valoarea iniial dat de (II.75)

opiunile permit setarea unor parametrii ai rezolvitorului i se


creeaz cu odeset. Dup options pot s apar parametrii variabili, p1,
p2, ... care sunt transmii funciei odefun la fiecare apel.
options

Parametrii de ieire sunt: sol=[t,y]


t vectorul coloan al absciselor;
y tabloul soluiilor: o linie corespunde unei abscise, iar o coloan unei
componente a soluiei.
37

Funcia
Tip
Comentarii
ode45
Nonstiff Metod imbricat Runge-Kutta explicit cu ordinele 4 i
5. Are la baz perechea Dormand-Prince( DORPRI5).
ode23
Nonstiff Metod imbricat Runge-Kutta explicit cu ordinele 2 i
3. Are la baz perechea Bogacki-Shampine,BS(2,3).
ode113 Nonstiff Metod multipas explicit, cu ordin variabil de la 1 la
13. Are la baz metoda Adams-Bashford-Multon .
ode15s Stiff
Metod implicit cu mai muli pai cu ordin variabil de
la 1 la 15. Folosete formule de difereniere numeric
(NDFs) sau optional diferene finite regresive (BDFs).
ode23s Stiff
Metod construit pe o pereche Rosenbrock modificat
(cu un pas) de ordine 2 i 3.
ode23t Stiff
Metoda implicit a trapezului, cu ordinele 2 i 3
ode23tb Stiff
Algoritm Runge-Kutta implicit, ordinele 2 i 3 ce
implic n primul stagiu metoda trapezului, iar n al
doilea o metod cu diferene finite regresive de ordin 2.

38

Folosind funcia odeset pot fi modificai i transmii rezolvitorului o serie


de parametrii. Are sintaxa:
optiuni=odeset(nume1, valoare1, nume2, valoare2,...)

O structur de opiuni poate fi interogat cu comanda:


o=odeget(options,name)

Exemplu 2: Rezolvai ecuaia pendulului folosind metoda ode45:


d 2 g
d
+
sin

=
0
,

(
0
)
=
0
,
(0) = 0.1
2
L
dt
dt

Notm y1 = i rescriem sistemul n forma:


dy1
dy 2
dy
g
= y2 ;
= sin y1 ; y1 (0) = 0; 1 (0 ) = 0.1
dt
dt
L
dt

Programul Matlab este urmtorul:


39

%ecuatia pendulului
a=0;b=pi/2;%capetele intervalului de integrare
g=9.8;%accelaeratia gravitationala
L=0.1;%lungimea pendulului
y0=[0,0.1];%conditiile initiale
options=odeset('RelTol',1e-8);%modificarea optiunilor
[t,y]=ode45('fPendul',[a,b],y0,options,g,L)%apelarea
rezolvitorului
plot(t,y(:,1));
function dy=fPendul(t,y,flag,g,L)
dy=[y(2);-g/L*sin(y(1))];

Pentru integrare au fost necesare 169 de noduri, pasul minim a avut


valoarea 0.008387, iar pasul maxim 0.013269.

40

Figura 18. Soluia numeric a ecuaiei pendulului.

41

Probleme bilocale. Rezolvitorul bv4c


Fie problema bilocal
dy
= f ( x, y ), f :[a, b] R d R d , d 2
dx

(II.1)

completat n capetele intervalului [a, b] cu condiii de forma:


g ( y (a ), y (b ), p ) = 0

(II.2)

unde p este un parametru ce trebuie determinat.


Rezolvitorul bvp4c are sintaxa:
sol = bvp4c(odefun,bcfun,solinit)
sol = bvp4c(odefun,bcfun,solinit,options)
sol = bvp4c(odefun,bcfun,solinit,options,p1,p2...)

42

unde
odefun specific funcia din membrul drept a ecuaiei (II.1)
bcfun

funcia g ( y (a ), y (b ), p ) ce precizeaz condiiile pe fronier (II.2)

dydx = odefun(x,y,p1,p2,...)
dydx = odefun(x,y,p,p1,p2,...)

unde

este parametrul necunoscut din condiia pe frontier (II.2), iar

p1,p2,...parametrii

ce sunt transmii funciilor

res = bcfun(ya,yb,p,p1,p2,...)

unde ya,yb sunt vectorii y (a ) i y (b )


43

odefun

i bcfun

solinit

este o structur de ce conine cmurile:

trebuie s avem
unde

a= solinit.x(1)

solinit.y(:,i)

solinit.x(i).

solinit.x

n care

b = solinit.x(end)i solinit.y

este o aproximaie iniial a soluiei n nodul

solinit se poate iniializa folosind funcia ajuttoare

bvpinit.

options

opiunile permit setarea unor parametrii ai rezolvitorului i se

creeaz cu

bvpset.

Dup

options

pot s apar parametrii necunoscui

i variabilele p1, p2, ... care sunt transmii funciei odefun i


fiecare apel.

44

bcfun

la

Exemplu 2: Rezolvai ecuaiile transferului de cldur generat de reacii


chimice catalice ntr-un canal folosind metoda bvp4c:
' ' + K e = 0
(0) = rT , (1) = rT

unde K este numrul lui Frank-Kamenetskii.


Programul Matlab este urmtorul:
function [X,T,Tp]=ChimChannelBVP
%rezolva ecuatia energiei in prezenta reactiilor chimice
%exoterme -legea lui Arrhenius
%rezolvam ecuatia energiei T''+K*exp(T)=0
%cu conditiile la limita T(0)=rT, T(1)=-rT
%folosind bvp4c
a=0; %limita dreapta a canalului
b=1; %limita stanga a canalului
K=3; %numarul Frank-Kamenetskii

45

rT=1; %valoarea temperaturii in 0


solinit.x=linspace(0,1,101);
solinit.y=[solinit.x*rT;solinit.x*(-rT)];%init. solutiei
options=bvpset('AbsTol', 1e-12);
sol = bvp4c(@chim_ode,@chim_bc,solinit,options,K,rT);
X=sol.x;T=sol.y(1,:);Tp=sol.y(2,:);
plot(X,T)
function dydx = chim_ode(x,y,K,rT)
dydx = [ y(2)
-K*exp(y(1)) ];
function res = chim_bc(ya,yb,K,rT)
res = [ ya(1) - rT
yb(1)+rT];

46

Figura 19. Soluia numeric a ecuaiei cldurii.


47

S-ar putea să vă placă și