Sunteți pe pagina 1din 6

Informatica, Curs 6

Ecuaii difereniale ordinare (EDO) cu condiii iniiale


| | ( ) 25 . 0 0 i ni ti al a condi ti a si 5 ; 0 cu , 2 fi e
2
= e = y x x y
dx
dy
( ) ( ) ( ) dat i ni ti al a condi ti a si cu , ,
0 0
y x y x y y y x f
dx
dy
y = = = =
'
Funcia lsode n GNU Octave:
sintaxa: [y,istate,msg]= lsode('nume_functie', y0, x)
se editeaz n linia de comand funcia denumita edo, care descrie
membrul drept f(x,y), astfel:
function dydx = edo(y,x)
dydx = 2*y-x.^2;
endfunction
se integreaz EDO: x = 0:0.1:5, y = lsode('edo', 0.25, x)
se reprezint grafic: plot(x, y, 'b'), grid on
se salveaz graficul: print('edo.png','-dpng')
Ecuaii difereniale ordinare (EDO) cu condiii iniiale
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
2
4
6
8
10
12
14
16
| | ( ) 25 . 0 0 i ni ti al a condi ti a si 5 ; 0 cu , 2 fi e
2
= e = y x x y
dx
dy
Funciile ode23, ode45, ode113, ode15s, ... n MATLAB:
sintaxa: [x,y]= ode45('nume_functie', [x0 xfinal], y0)
se editeaz n linia de comand funcia denumita edom, care descrie
membrul drept al EDO, astfel:
function dydx = edom(x,y)
dydx = 2*y-x.^2;
endfunction
se integreaz EDO: [x,y] = ode45('edom', [0 5], 0.25)
se reprezint grafic: plot(x, y, 'b'), grid on
se salveaz graficul: print dmeta edom.emf
O ecuaie diferenial ordinar (EDO) de ordinul n se transform ntr-un
sistemde n ecuaii difereniale ordinare de ordinul 1, cu condiii iniiale
Fie ecuaia lui Van der Pol:
cu i condiiile iniiale:
Notnd y = w
1
i y = w
2
ecuaia lui Van der Pol devine:
cu condiiile iniiale:
Calculul n GNU Octave, cu lsode:
Ecuaii difereniale ordinare de ordin superior
( ) 0 1
2
= +
'
+
' '
y y y y
( ) x y y = ( ) ( ) 0 0 ; 25 . 0 0 =
'
= y y
( )

=
'
=
'
1 2
2
1 2
2 1
1 w w w w
w w
( )
( )

=
=
0 0
25 . 0 0
2
1
w
w
function dwdx=vdpol(w,x)
dwdx = [w(2); (1-w(1).^2).*w(2)-w(1)];
endfunction
x=0:0.1:20;
w=lsode(vdpol, [0.25; 0], x)
plot(x,w(:,1),b;y = y(x);)
grid on
hold on
plot(x,w(:,2),r;dy(x)/dx;)
Sisteme de ecuaii difereniale ordinare de ordinul 1,
cu condiii iniiale
Fie atractorul lui Lorentz:
cu
unde a = 10, b = 28 i c = 8/3
Condiiile iniiale sunt:
Variabila x este definit pe intervalul:
Calculul n GNU Octave, cu lsode:
function dwdx=lorentz(w,x)
a=10;, b=28;, c=8/3;
dwdx = [a*(w(2)-w(1)); w(1).*(b-w(3))-w(2); w(1).*w(2)-c*w(3)];
endfunction
x=0:0.01:50;
w=lsode(lorentz, [1; 1; 1], x);
plot3( w(:,1), w(:,2), w(:,3))
( ) { } 3 ; 2 ; 1 ; e = k x w w
k k
( )
( )

=
=
=


3 2 1
3
2 3 1
2
1 2
1
w c w w
dx
dw
w w b w
dx
dw
w w a
dx
dw
( ) ( ) ( ) 1 0 0 0
3 2 1
= = = w w w
| | 50 ; 0 e x
Atractorul lui Lorentz (animaie din MATLAB/ Demos)

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