Documente Academic
Documente Profesional
Documente Cultură
d~
y
= f ( x, ~
y ), f :[a, b] R d R d , d 2
dx
[a, b]
(II.1)
cu condiii de forma:
g(~
y (a ), ~
y (b )) = 0
(II.2)
(II.38)
sistemului
obinerea
valorilor
numerice
yi ~
y ( xi ), i = 1, 2,..., + 1
x [0,1]
(II.39)
h=
(II.40)
(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)
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
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)
L
2
Discretizm
1
2
x H1 + xL==
y1 = 1 / 2
yi 1 2 y i + y i +1
xi
y
=
e
, i = 2, 3,..., 1
i
2
h
y = e
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
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
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
11
(II.46)
12
(II.47)
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)
(II.49)
sau
y (k ) = y ( k 1) + (k 1) ,
J (y ( k 1) ) ( k 1) = F (y ( k 1) )
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
(II.51)
(II.52)
f (x n )
n
f ' (x n )
(II.53)
f (x n )
f ' (x n )
(II.54)
...
f N ( x 1 , x 2 ,..., x N ) = 0
18
(II.55)
(II.56)
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
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)
(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)
(II.60)
cu condiiile la limit:
f(0) = - fw , f (0) = 1, f () = 0
22
(II.61)
(II.62)
a ' b = 0
b'c = 0
c'+ + 1 ac b 2 + e = 0
23
(II.63a)
b(0) 1 = 0
b ( ) = 0
(II.63b)
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)
(II.65)
= 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)
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
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
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)
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)
(II.73)
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)
sau
sol = solver(odefun,[t0 tf],y0...)
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
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
=
0
,
(
0
)
=
0
,
(0) = 0.1
2
L
dt
dt
%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))];
40
41
(II.1)
(II.2)
42
unde
odefun specific funcia din membrul drept a ecuaiei (II.1)
bcfun
dydx = odefun(x,y,p1,p2,...)
dydx = odefun(x,y,p,p1,p2,...)
unde
p1,p2,...parametrii
res = bcfun(ya,yb,p,p1,p2,...)
odefun
i bcfun
solinit
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
bvpinit.
options
creeaz cu
bvpset.
Dup
options
44
bcfun
la
45
46