doar rabdarea & perseverenta in invatare (acres
=o chime = Dioctea Informatica
Matlab
Index » educatie » » informatica » Matlab
» Rezolvarea ecuatilor diferentiale
ro
Rezolvarea ecuatiilor diferentiale
Rezolvarea ecuatilor diferentiale
‘Aceasta lucrare descrie modul de rezolvare numerica in MATLAB a ecuatillor diferentiale. MATLAB-ul are urmatoarele functi
pentru rezolvarea ecuatilor dferentiale:
Functia Tipul problemei de rezolvat Metoda de integrare
ode45 cua ciferentiala cu o scara de timp Runge-Kutta
ode23 cual iferentiala cu o scara de timp Runge-Kutta
odet13 _Ecuatie diferentiala cu doua scari de timp ‘Adams
odetSs —_Euatia diferentala cu doua scar de timp FON
040238 Ecuatlediferentiala cu doua scari de timp Rosenbrock
ode23t —_—cuateaiferentiala cu doua scar de timp Metoda trapezelor
ode23t _Ecuate alflerentiala cu doua scar de timp TR-BDF2
unde FDN sunt formule de diferentiere numerica far TR-BDF2 aplica mal intai o metoda Runge-Kutta iar in faza a doua o metoda de
iferentiore inapoi de ordinul doi
Sintaxa acestor funeti este urmatoarea
[T,¥) = solver (Panctic, tapan, y0)
(7, ¥] = solver (Functie, tspan, y0,optiuni)
Lunde so1-ve= este una din functile MATLAB odo45, 04623, ode113, ode15s, ode25s, od623t, sau ode23tb
Argumentul Functie este o functie MATLAB ce descrie membrul drept al ecuatiei diferentiale: f(t,y). Toate aceste functii pot
rezolva ecuati de forma: y’=£ (t,y) sau sistome de ecuati ferential de forma: M(t.) y’ =f (t,y) , unde Mity) este 0 matrce.
Functia ode23s poate rezolva numai sisteme cu matrici M constant, iar functile ode15s si ode23t pot rezolva sisteme pentru care
matricea M este singulara.
Parametrul tspan este un vector ce specifica intervalul de integrare, [t0 t]. Pentru a obtine solutile in anumite momente de
timp se ullizeaza forma
tspan = (t0,tt,,tf)
Parametrul y0 este un vector ce contine conditileintiale.
Pentru utllizarea unor argumente optionale de integrare (cum ar fi precizia de integrare) se ullizeaza functia odeset.
Exemplul 1: Un exemplu de sistem cu 0 singura scara de timp este urmatorul, in care este descrisamiscarea unui rigid fara
aciiunea fortelor externe.yst="0.Slyiy2 v3 (0)=:
Pentru a simula acest sistem se creeaza o functie sistem ce contine ecuatil:
function dy = sisten(t,y)
ay = xer08(3,1);¥ aloca
ava) =v) #3)
aya) = ya) tye)
av(2) = -0.51 # ya) * ¥@)
Precizia cu care sunt efectuate calculele poate fi modificata utlizand functia odeset. Integrarea se face pe intervalul [0 12] cu
cconaitie initiate [0 1 1},
option = odeset(‘RelTol! 1-4, Abstol',(1e-4 1e-4 19-51);
odes (@siaten, [0 22], [0 1 1],optivni) ;
PROE CT C2) FFAG De PC DD
In cazul unei ecuati diferentiale de ordin superior, aceasta trebuie transformata intr-un sistem de ecuatit diferentiale de
‘ordinul Ide forma urmatoare:
yi=e(tsy)
Orice ecuatie de forma y= (t,¥,y' ry!) poate f transformata in urmatorul sistem de ecuati dferentiale de ordinul I, cu
ajutorul urmatoarelor substitutl: y.-y, yo-y", .-. yarv™?. Se obtine urmatorul sistem de ecuatl diferentiale de ordinul |
nieve
wavs
Pentru rezolvarea ecuatilor diferentiale cu condi pe frontiera se utilzeaza functia bvpde. Aceasta functie rezolva o ecuatie
de forma y= (t,y) pe intervalul [a, b] care respecta conditile pe frontiera ei(y(a),y(b))=0. Functia bvpdc are sintaxa urmatoare:
sol = byp4e (Funct Le, Conditittaitiale, solinit)
‘Argumentul Funetie este o functie MATLAB ce descrie membrul drept al ecuatillor diferentiale f(x)
Argumentul Conditilinitiale este o functie MATLAB ce descrie conditile pe frontiera. Ea poate avea una din formele urmatoare:
res = Conditiitnitiale (ya, yb)
res = Conditlirnitiale (ya, yb,p1,p2/)
res = Conditiitnitiale (ya, yb, parameters)
res = Conditiitnitiate (ya, ybyp:
unde ya si yb sunt vectori coloana corespunzatori lui y(a) si y(b). Argumentul parameters este vectorul parametrilor necunoscut
iar p4, Pe, -- Sunt parametri cunoscuti.lesirea res este un vector coloana.
Argumentul solinit este o structura cu urmatoarele campuri:
+x nodurile retelei de puncte in care se calculeaza solutile. Conditile la frontiera sunt impuse astfel
olinit-x(1) si b = solinit.x(end).
-y aproximarileintiale ale solutie astfel ca solinity(,)) este 0 aproximare a solutiel in nodul solinit-x()
Se poate forma solinit cu ajutorul functiel bypinit ce determina o aproximare initiala pentru functia bvp4e, asa cum este
prezentat in exemplul urmator.
Exemplul 2: Sa se rezolve ecuatia y’
y(0}=0
yay
y|=0, unde «= (04), cu conditile pe frontieraUnde s-au facut notatile: ys=y si ye
Functia MATLAB ce descrie sistemul de ecuatii diferentiale este urmatoarea:
function dydx = sistem(x,y)
dydx = [ y(2)
webs (y(1))15
Functia MATLAB ce descrie concitilorintiale pe frontiera este urmatoarea:
function res = ci (ya,yb)
res = [ ya(1)
yb(1) + 23;
Apoximarea initiala @ solutie in cinci puncte uniform distribuite in intervalul [0,4] si cu aproximarile Initiale y4(x)=1 si ya(x)=0 este
data de functia
solinit = bypinit (Linspace (0,4,5),[1 01)
Problema este rezolvata cu comanda
sol = byptc (sistem, ci, solinit) ;
Solutia numerica este evaluata in 100 de puncte uniform distribulte si este plotata cu comenzile:
y = daval (sol, Linspace (0,4);
x= Linspace (0,4);
plot (x,y (1
ds
O alta solutie @ acestei probleme poate fi obtinuta schimband conditile initiale
solinit = bypinit (Liaspace (0,4
TEME:
4. Sa se determine solutile ecuatieidiferentiale urmatoare:
ysyyPry=0
pe intrvalu [2,10] in conti intial: y(0)0, 0}#0 6. Sa se repezinte grates evoltia in plnul fazer
2. Sa se determine solutile ecuail dterenate urmatoare:
yeuly!iyry-0
pe intervalul (0, 20] in conditie initiate: ¥(0)=0, y(
Paramotrul are valoarea 1
3. Aceeasi problema pentru /=1000
4, Sa se determine solutile ecuatiel diferentiale urmatoare:
yray'+ysin(y)}+y+1=0
pe intervalul (0, 10] in conditile initiate: y“(0)=0.2, y'(0)=0, y(0)=0.3. Sa se imparta ecranul in patru cadrane utlizand functia
‘subplot, si sa se vizualzeze simultan dependentele (yy), (Y.y'), (y'y") precum si o reprezentare tridimensionala a matricel y
folosind functia mesh,
5. Aceeasi problema de la punctul 4 pentru ecuatia
yreTy'#8y +3y+1=0
in conditle initiate y"(0)=0.4, y(0)=0, y(0)=0.2, pe intervalul (0, 5)
6. Sase determine solutile ecuatie diferentiale urmatoare:pe intervalul [0,10], cu conditile pe frontiera y(0)=0; y(10)
PRR ERR RRR RRR RR ERR RRR ERE
yayty=0
Aceat secret
‘letras au
‘ie!
ECoNoMM de
panala 76
Acoess
‘Adobe photoshop
cost secret
letrcint au
‘cums an de
ie!
EConown do
pina la 75%)
Acestsecret — Euplitese Dela custecia
Slecvicion su patra pentnlenes
Secuneanice Glecrictate —_laeet.
dist apreape de garaniat 8 kg
ECONoMM de dav ermal e'saptamana
pandla 3) BURNIE novoie
fone
w)
San creneca