Sunteți pe pagina 1din 4

Utilizarea MATLAB pentru rezolvarea numerica a ecuatiilor diferentiale si pentru trasarea portretului de faza

Din pacate modelele analitice pentru analiza ecuatiilor diferentiale neliniare, pe care le vom dezvolta in curs sunt departe de a oferii o intelegere completa a problemelor. Dar, vestea buna este ca putem folosii calculatorele pentru a obtine solutii numerice care aproximeaza solutiile ecuatiilor (liniare sau neliniare ). Noi vom folosii ca si la cursul TCS (Teoria si Controlul Sistemelor ) programul MATLAB. Exemplul 1. consideram ecuatia: ( Van der Pol )
( spatiul starilor) x = y ; y = (1 x 2 ) y x

(1) (1 , )

Sau scrisa altfel :


(1 x 2 ) x + x = 0 x

Vom scrie o fila m-file : (care defineste ecuatia) Function xdot=vdp1(t, x) xdot=zeros(2, 1); xdot(1)=x(2) ; xdot(2)=( 1-x(1)^2)*x(2)-x(1); si o salvam ca vdp1.m (vom crea mai intai un director, ex . ASDN si apoi un folder cu numele si in el Lab.1) ( D:/ ASDN/ Nume_prenume / lab.1) Comentariu: --prima linie defineste functia vdp1, o functie de timp t si de vectorul de stare x, care returneaza valorile numerice din membrul drept al sistemului (1). Obs. Sistemul fiind autonom timpul nu apare explicit. --linia a doua (din function) initializeaza functia sa fie o matreice cu 2 linii si 1 coloana !! Daca linia se incheie cu semnul ; inseamna ca prevenim afisarea calculelor in workspace !! Rezolvarea numerica - scriem : Comanda: >> [t,x]=ode45(@vdp1, [0 20], [1 0]);

Aceasta comanda apeleaza subrutina ode45 care rezolva cu metoda RongeKutta ecuatia diferentiala definita cu fila vdp1. Semnul @ - spune prog. Matlab ca vdp1. este o functie Ecuatia este rezolvata pe intervalul de timp t [0 20] cu conditia initiala (x(1), x(2)=(1,0) Rezultatele numerice sunt memorate intr-un vector coloana t si solutiile intr-o matrice cu 2 coloane x(1) si x(2). Pentru a afla numarul pasilor, scriem comanda size(x). Mai multe informatii obtineti cu >>help ode 45

Grafic variabile
Pentru a desena variabilele x(1) si x(2) ca functie de timp folosim comanda: >> plot (t, x(:,1), r, t, x(:, 2), b-.) Mai multe : >>help plot Pentru a obtine portretul de faza : >>plot(x(:,1), x(:, 2)) Pentru diferite versiuni (variabile) ale ecuatiei Van der Pol:
(1 x 2 ) x + x = 0 x

= parametru

Sau scrisa in spatial starilor :


x =y y = (1 x ) y x
2

sau

x1 = x 2 x 2 = (1 x12 ) x1 x1

Vom definii mai intai functia vdppar.m (ca parametru) Function xdot=vdppar (t, x, mn) xdot=zeros (2,1) xdot(1)=x(2) xdot(2)=mn*(1-x(1)^2)*x(2)-x(1) si o sa salvam vdppar.m Pentru a obtine solutia, de exemplu ptr =1 introducem comanda: >>[t, x]=ode45(@vdppar, [0, 20], [1, 0], [], 1) Tema : Solutia sistemului:

x=y y = 1 y sin x 5

+ x

1 x + sin x = 0 5

R: Function xdot=tema1(t, x) xdot=zeros(2, 1); xdot(1)=x(2); xdot(2)=- (1/5)*x(2)-sin(x(1)); >> [t, x]=ode45(@tema1, [0 40], [0 3]; >>plot (t, x(:,1), r, t x (:, 2), b-.) >>plot (x(:, 1), x(:, 2))

De observat ce se intampla pentru diferite cond. Initiale ! (pe acelas graphic) Tema : desenati portretul de faza pentru ecuatiile: a) b) c) d) Definitii : SISTEM LINIAR Un sistem fizic care se modeleaza mathematic printr-un operator liniar
x = 0 x + 3 x + x = 0 x + x + x = 0 x + x = 0 x

L[x1 (t ) + x 2 (t )] = L[ x1 (t )] + L[ x 2 (t )](1)
-repeta principiul superpozitiei Obs. Functie liniara f(x+y)=f(x)+f(y) f(x)= f(x) SISTEM NELINIAR ex.: nu satisface cele de mai sus solutia nu se poate scrie ca o combinatie liniara de variabile independente (2)

1. 2.

x^2+x-1=0 (algebra) dy/dx=-x^2 ; d^2z/dt^2+sin z=0

( pendulul)

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