1
Laborator 1. Calcule matematice fundamentale in Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
MATLAB 7.0 este un pachet de programe de o performanţă remarcabilă care are o
vastă aplicabilitate atât în domeniul ştiinţei cât al ingineriei.
Pentru lansarea în execuţie a programului se acţionează dublu click pe pictograma
Matlab 7.0 de pe Desktop sau se selectează StartAll Programs Matlab 7.0.
In figura 1 se observa aparitia a trei tipuri de ferestre cu care lucreaza Matlab 7.0.
Fig. 1. Ferestrele din Matlab 7.0.
Ferestrele din Matlab 7.0 sunt:
1. fereastra de comenzi Command Window;
2. fereastra Command History în care sunt stocate comenzile lansate în execuţie în
fereastra de comenzi;
2
3. fererastra Workspace, ce prezintă atât variabilele curente din memorie cu
numele, valoarea şi tipul acestora (dacă alegem subfereastra Workspace) cât şi
directorul current, împreună cu subdirectoarele şi fişierele acestuia (dacă
alegem subfereastra Current Directory).
Dintre funcţiile utilizate pentru controlul general al Matlab-ului 7.0 menţionăm
help nume funcţie furnizează informaţii “on-line” despre funcţia intitulată
nume funcţie;
who listează variabilele curente din memorie.
Pentru a obţine informaţii “on-line” despre toate funcţiile din Matlab 7.0 şi despre
operatorii utilizaţi de acest program vom accesa:
HelpMatlab HelpFunctions In Alphabetical Order.
Matlab 7.0 utilizează următorii operatori aritmetici între doi scalari:
Nume operator Forma algebrică Forma Matlab 7.0
Adunarea yx yx
Scăderea yx yx
Înmulţirea yx yx
Împărţirea la dreapta yx : yx /
Împărţirea la stânga xy : yx \
Ridicarea la putere yx yx^
Ordinea operaţiilor din Matlab 7.0 este aceeaşi cu cea a operaţiilor aritmetice,
cunoscute din matematica elementară, adica se efectuează întâi operaţiile cuprinse în
paranteze, apoi ridicarea la putere, înmulţirea şi împărţirea, adunarea şi scăderea.
Vom prezenta cateva funcţii din Matlab 7.0 utilizate în calcule matematice
fundamentale.
Funcţia Semnificaţie
abs(x) Determină modulul unui număr real sau complex x
acos(x) Calculează xarccos
asin(x) Calculează xarcsin
base2dec('strn',base) Converteşte nr. strn din baza base în baza 10
[th,rho]=cart2pol(x,y) Transformă coordonatele carteziene (x,y) în coordonate polare
3
Matlab 7.0 dispune de funcţia unitsratio, pe care nu o au versiunile precedente de
Matlab. Unitsratio recunoaşte următorii identificatori pentru convertirea unităţilor de
lungime: metrul- „m‟, centimetrul- „cm‟, milimetrul- „mm‟, micronul- „micron‟,
kilometrul- „km‟, mila nautică- „nm‟, piciorul- „ft‟, inch- „in‟, yard- „yd‟, mila
internaţională- „mi‟.
(unghiul th este returnat în radiani)
[x,y]=pol2cart( th,rho) Transformă coordonatele polare (th,rho) în coordonate
carteziene (unghiul th este dat în radiani)
[th,phi,r]=cart2sph(x,y,z) Transformă coordonatele carteziene (x,y,z) în coordonate sferice
(unghiurile th şi phi sunt returnate în radiani)
[x,y,z]=sph2cart(th,phi,r) Transformă coordonatele sferice (th,phi,r) în coordonate
carteziene (unghiurile th şi phi sunt date în radiani)
complex(a,b) Construieşte ibaz
conj(z) Determină conjugatul numărului complex z
cos(x) Calculează xcos
cot(x) Calculează xcot
dec2base(d,base) Converteşte numărul d din baza 10 în baza base
dms2deg(d,m,s) Converteşte în grade un unghi dat în grade(degree), minute(m),
secunde(second)
dms2rad(d,m,s) Converteşte în radiani un unghi dat în grade(degree), minute(m),
secunde(second)
exp(x) Calculează xe
log(x) Calculează xln
log2(x) Calculează x2log
pow2(x) Calculează x2
rats(d) Aproximează d printr-o fracţie raţională
sin(x) Calculează xsin
sqrt(x) Calculează x
tan(x) Calculează xtg
unitsratio(to, from) Converteşte unităţi de măsură pentru lungimi şi unghiuri
4
Unitsratio recunoaşte următorii identificatori pentru convertirea unghiurilor:
gradul- „deg‟, radianul- „rad‟; 1 rad este unghiul pentru care raportul dintre lungimea
arcului şi rază este egal cu 1.
Din punct de vedere al formatului extern de afişare a numerelor pe ecran, Matlab
7.0 pune la dispoziţia utilizatorului funcţia format, a cărei sintaxă este: format(„type‟).
Principalele formate de afişare sunt:
Valoare
a pentru
type
Rezultat Exemplu
long 15 cifre pentru double (numere reprezentate în dublă
precizie) şi 8 cifre pentru single (numere reprezentate
în simplă precizie)
>>format long
>> a=5/6
a=
0.83333333333333
>>single(a)
ans=
0.8333333
long e 15 cifre pentru double şi 8 cifre pentru single+exp >> format(„long‟,‟e‟)
>>b=0.32/8799
b=
3.636776906466644e-005
>>single(b)
b=
3.6367768e-005
short 5 cifre >>format short
>> a=32/89
a=
0.3596
short e
5 cifre+exp >> format(„short‟,‟e‟)
>> a=32/89
a=
3.5955e-001
5
Dintre variabilele speciale şi constantele din Matlab 7.0 menţionăm:
Aplicaţii
1. Determinaţi numărul complex z cunoscând partea sa reală şi partea imaginară:
.5Im
2Re
z
z
2. Să se aproximeze prin fracţii raţionale numerele: 6543 6,5,4,3,2
>> rats([2^(1/2),3^(1/3),4^(1/4),5^(1/5),6^(1/6)]);
3. Să se calculeze cu 14 zecimale valoarea fracţiei 3700
8959.
4. Să se scrie numărul 6562 din baza 7 în baza 10 .
>> base2dec('6562',7)
ans =
2347
5. Determinaţi câţi metri are 1 yard.
>>to=‟m‟;
>>from=‟yd‟;
>>unitsratio(to, from)
ans=
0.9144
6. Câţi inci au 0.254 m?
>>0.254*unitsratio(„in‟,‟m‟)
ans variabilă creată automat atunci când unei expresii nu i-a fost asignat un nume
realmax cea mai mare valoare pozitivă în virgulă mobilă, care poate fi folosită în calcule,
adică 1.7977e+308
realmin cea mai mică valoare pozitivă în virgulă mobilă, care poate fi folosită în calcule,
adică 2.2251e-308
inf variabilă ce semnifică
pi PI 3.1415926535897....
i sau j variabile folosite pentru introducerea numerelor complexe
nan Variabilă care reprezintă un Not-a-Number .
6
ans=
10
7. Determinaţi câte grade are un radian
>>unitsratio(„deg‟,‟rad‟);
8. Transformaţi în grade unghiul de 547157 .
>>dms2deg(57,17,45);
9. Calculaţi 43.113tg .
>> tan(dms2rad(113.43,0,0));
10. Determinaţi coordonatele sferice ale punctului 12,4,3 P .
>> [th,phi,r] = cart2sph(3,-4,-12);
11. Să se calculeze expresiile următoare:
a. 33 25172517
b. 53
74
53
74
c. 37266 e35log
36
7log7log A
d. 33221 xxxM , pentru 4x
e. 32 111 zzzN , pentru iz
f.
33
1
1
1
1
i
i
i
i
g. 2
13
3
2
x
xxF , pentru 1x
h. 53log xB , pentru 7x
i. xxxx cossin
1
)ctgtg2( , pentru 5
x ;
j. xxxxC 7cos5cos3coscos 4444 , pentru 8
x
7
Tema
1. Calculaţi:
a) 324221
b)
4
3loglog
3
1
2
1
c) 777
d) 331 i
e) 39.320coslg
f) 7362ctg .
2. Determinaţi valoarea expresiilor următoare:
a) 1
2arcsin
22
x
xu
, pentru 2.2x
b) xee
xxxxx sin2
cossin
, pentru 6.1x
c) 2
2
1
1
zz
zz
, pentru iz
3. Verificaţi dacă:
a) 3x este soluţie a ecuaţiei xxxx 6543 ;
b) 331 347347 x este soluţie a ecuaţiei 01433 xx ;
c) iu 11 este soluţie a ecuaţiei 03212 ixix ;
d) 8
71
x şi
22
212
x sunt soluţii ale ecuaţiei 0sin
7
3cos xx .
4. Să se efectueze următoarele operaţii:
a) 22 1111110000110000010
b) 66 1442:12201200 .
5. Determinaţi câţi radiani reprezintă unghiul de 547157 .
1
Laborator 2. Definirea tablourilor si a functiilor (in linia de comanda)
in Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
În Matlab 7.0 definirea tablourilor se poate face prin una din următoarele
modalităţi:
1. introducerea listei de elemente componente,
2. generarea lor cu ajutorul unor instrucţiuni şi funcţii,
3. crearea de fişiere cu extensia .m,
4. încărcarea lor din fişiere de date externe.
În cazul primei metode, cea mai utilizată dintre toate, elementele unei linii dintr-un
tablou sunt separate prin spaţii sau virgule iar liniile se separă prin punct-virgulă.
Elementele tabloului sunt cuprinse între paranteze drepte şi pot fi atât numere reale
sau complexe cât şi orice expresie din Matlab 7.0.
Elementele
unui vector x pot fi identificate prin notaţia ix , semnificând componenta a i-a
din vectorul x , ni ,1 , n fiind numărul total de componente ;
unei matrice A pot fi identificate prin notaţia jiA , , semnificând elementul
aflat în A , la intersecţia dintre linia i şi coloana j , mi ,1 , nj ,1 , m fiind
numărul de linii iar n numărul de coloane ale matricei A .
Matlab 7.0 utilizează următorii operatori aritmetici între două matrici:
Nume operator Forma algebrică Forma Matlab 7.0
Adunarea YX YX
Scăderea YX YX
Înmulţirea YX YX
Împărţirea la dreapta 1* YX YX /
2
Împărţirea la stânga YX *1 YX \
Ridicarea la putere pX , p scalar pX ^
Observaţie. Produsul a două matrici este posibil dacă şi numai dacă numărul
coloanelor matricei X este egal cu numărul liniilor matricei Y .
Transpunerea unui tablou se realizează folosind operatorul apostrof.
Dintre funcţiile folosite pentru generarea tablourilor menţionăm:
Observaţie. Transformarea numerelor r distribuite uniform pe intervalul 1,0 în
numerele x distribuite uniform pe intervalul ba, se realizează prin intermediul relaţiei
arabx .
Vom prezenta câteva funcţii din Matlab 7.0 utilizate în calcule cu tablouri.
eye(n) Generează o matrice unitate cu n linii şi n coloane
eye(m,n) Generează o matrice unitate cu m linii şi n coloane
ones(n) Generează o matrice de unu-ri cu n linii şi n coloane
ones(m,n) Generează o matrice de unu-ri cu m linii şi n coloane
rand(m,n) Generează o matrice ale cărei elemente sunt numere aleatoare, cu distribuiţie
uniformă în intervalul 1,0
randn(m,n) Generează o matrice ale cărei elemente sunt numere aleatoare, cu distribuiţie
normală, de medie 0 şi varianţă 1
zeros(n) Generează o matrice nulă cu n linii şi n coloane
zeros(m,n) Generează o matrice nulă cu m linii şi n coloane
Funcţia Semnificaţie
cross(x,y) Calculează produsul vectorial al vectorilor x şi y
dot(x,y) Calculează produsul scalar al vectorilor x şi y
u=find(x==a) Returnează în u indicii elementelor din vectorul x , care au
valoarea egală cu a
[u,v]=find(X==a) Returnează indicele liniei(vectorul u ) şi al coloanei (vectorul v )
matricei argument X , care conţin elemente ce au valoarea egală
cu a
sort(x) Sortează în ordine crescătoare elementele vectorului x
3
Observaţii. Specific pentru Matlab 7.0 este opţiunea descend a funcţiei sort; pentru
versiunile precedente de Matlab, sortarea poate fi realizată numai în ordine crescătoare,
neeexistând această opţiune.
Ca orice mediu de programare, Matlab 7.0 lucrează fie în modul linie de comandă,
fie cu programe conţinute în fişiere.
O funcţie poate fi definită în Matlab 7.0 atât în modul clasic (întâlnit şi în versiunile
precedente), adică într-un fişier function cât şi în linia de comandă, facilitate care nu
este posibilă la variantele precedente lui Matlab 7.0.
Sintaxa de definiţie a unei funcţii în linia de comandă, în Matlab 7.0 este
nume_funcţie=@(var1,…,varn) expresie_funcţie
Aplicaţii
1) Să se sorteze în ordine descrescătoare elementele vectorului
7820176.0 x , cu precizarea indicelui fiecărui element.
>> x=[-0.76 -1 20 8 -7];
>> [y,I]=sort(x,’descend’);
2) Să se determine indicii elementelor din vectorul 186176.0 x , a
căror valoare este egală cu 1 .
>> x=[-0.76 -1 -6 8 -1];
>> u=find(x==-1);
3) Să se formeze matricea
33
22
11
a pe baza vectorilor
3
2
1
u şi
3
2
1
v .
>> u=[1 2 3]';
>> v=[-1 -2 -3]';
>> a=[u v];
[y,I]= sort(x) Returnează în vectorul y elementele sortate în ordine
crescătoare ale vectorului x iar în I indicii elementelor sortate
sort(x,’descend’) Sortează în ordine descrescătoare elementele vectorului x
4
4) Se consideră matricea
34.71278
78547.5
79.007.4
39971
A .
Se cere:
a) Transformaţi matricea A într-un vector coloană b ;
>> A=[1 -7 99 3;4.7 0 0.9 -7;5.7 4 5 78;-78 12 -7.4 3];
>> b=A(:);
b) Să se extragă submatricea D de dimensiune 23x , ce constă din elementele situate
pe ultimele trei linii şi primele două coloane ale matricei A .
>> D=A(2:4,1:2);
5) Să se calculeze produsul scalar şi cosinusul unghiului dintre vectorii
kjia 2 şi ax2
1̀ .
>> a=[2 1 -1];
>> x=a/2;
>> s=dot(a,x);
>> u=s/(norm(a)*norm(x));
Rezultă că axax ,0, sunt coliniari.
6) În spaţiu se dau punctele 1,2,3A , 0,4,4B , 5,5,5C , 1,5,1 D . Să se verifice
dacă DCBA ,,, sunt coplanare.
Pasul 1. Scriem Matlab în vectorii A , B , C , D coordonatele punctelor 1,2,3A ,
0,4,4B , 5,5,5C , 1,5,1 D .
>> A=[3 2 1];
>> B=[4 4 0];
>> C=[5 5 5];
>> D=[-1 5 -1];
Pasul 2. Determinăm expresiile analitice ale vectorilor AB , AC , AD .
>> a=B-A;
>> b=C-A;
5
>> c=D-A;
Pasul 3. Calculăm produsul mixt al vectorilor AB , AC , AD .
>> M=[a;b;c];
>> v=det(M);
Pasul 4. Calculăm volumul tetraedrului ABCD
>> v=abs(v)/6;
Deoarece 0ABCDV rezultă A , B , C , D necoplanare.
7) Calculaţi produsul vectorial al vectorilor kjiu 23 , kjv 4 .
>> u=[3 -2 1];
>> v=[0 -1 4];
>> cross(u,v);
Deci: kjivu 3127 .
8) Definiţi în linia de comandă funcţia xxxf2
3sin22sin şi apoi calculaţi f .
>> f=@(x) sin(2*x)+2*sin(3*x/2)
f =
@(x) sin(2*x)+2*sin(3*x/2)
>> f (pi)
ans =
-2.0000
Tema
1. Să se genereze:
a) o matrice identitate 77x ;
b) o matricea nulă 1010x ;
c) o matrice aleatoare 1110x cu elemente distribuite uniform şi normal.
2. Să se sorteze în ordine crescătoare elementele vectorului
7820176.0 x , cu precizarea indicelui fiecărui element.
6
3. Se consideră matricea
104
320
011
C .
Calculaţi: 323 I142 CCC .
4. Se consideră matricele:
2
0
1
a ,
83
51
90
B ,
111
107
014
C , 720 d .
Verificaţi care dintre următoarele produse au sens şi în acest caz efectuaţi-le: Ba ,
ad , da , dB , Bd ,CB , BC , dC , Cd , aC , Ca , 2C , dBC , dCB , adC , adBC , adCa ,
2a .
5. Să se determine indicii elementelor din matricea
33
31X a căror valoare
este mai mare sau egală cu 3 .
6. Fie matricea
02376.05
32431A . Să se extragă din matricea A
submatricea
2376.0
43B .
7. Calculaţi 5.2,1f cu ajutorul unei funcţii Matlab 7.0, definită în linia de
comandă, pentru 22, yxyxf .
8. Să se calculeze produsul mixt al vectorilor
kjia 2 , kjib 23 , kjc 2 .
1
Laborator 3. Calcul simbolic în Matlab 7.0 cu aplicaţii în Algebră
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor simbolice, ce au aplicaţii în Algebră.
Funcţiile utilizate în vederea efectuării acestor calcule simbolice în Matlab 7.0 sunt:
Funcţia Semnificaţie
det(A) Calculează determinantul simbolic al matricei A
inv(A) Calculează inversa simbolică a matricei A
transpose(A) Determină transpusa simbolică a matricei A
simplify(E) Simplifică simbolic o expresie E
simple(A) Simplifică simbolic o expresie sau o matrice; afişează
rezultatele intermediare ale calculelor, în timp ce funcţia
simplify prezintă rezultatul final
factor(E) Factorizează expresia E
[r,p,k]=residue(B,A) Se obţine descompunerea în fracţii simple pe baza
parametrilor de ieşire: r (vectorul coloană al rezidurilor),
p (vectorul coloană al polilor), k (vectorul linie al
termenilor liberi)
expand(E) Realizează expandarea expresiei E
collect(P,x) Colectează termenii asemenea din polinomul P în raport
cu variabila precizată x
coeffs(P,x) Determină coeficienţii polinomului P în raport cu x
subs(S,new) Înlocuieşte variabila liberă din expresia S cu new
subs(S,old,new) Înlocuieşte variabila simbolică old din expresia S cu
variabila numerică sau simbolică new
solve(eq) Rezolvă ecuaţia 0eq în raport cu variabila din expresia
eq
2
Observaţie. Descompunerea în fracţii simple se obţine astfel:
xknpx
nr
px
r
px
r
xA
xB
2
2
1
1.
Dacă polul jp este de ordinul m , atunci în descompunere vor apare termeni de
forma
xk
jpx
mjr
jpx
jr
jpx
jr
m
11
2 .
Variabilele utilizate în calcule simbolice se declară prin comada “scurtă” syms:
syms var1 var2… este notaţia scurtă pentru
var1 = sym('var1');
var2 = sym('var2'); ...
syms var1 var2 ... real
este notaţia scurtă pentru
var1 = sym('var1,’real');
var2 = sym('var2',’real'); ...
syms var1 var2 ... positive
este notaţia scurtă pentru
var1 = sym('var1,’positive');
var2 = sym('var2',’positive'); ...
Aplicaţii
1) Scrieţi sub o formă simplificată matricea
2ln
222
cossin2
sincos
xexx
xxxxA .
Pasul 1. Declarăm pe x ca variabilă simbolică
>> syms x
Pasul 2. Scriem matricea A
>> A=[cos(x)^2+sin(x)^2 x^2/x; 2*sin(x)*cos(x) exp(log(x^2))];
solve(eq,var) Rezolvă ecuaţia 0eq în raport cu variabila var din
expresia eq
solve(eq1,..,eqn,var1,..,varn) Rezolvă sistemul format din ecuaţiile 0,,01 eqneq
în raport cu variabilele nvar,,1var
3
Pasul 3. Scriem sub formă simplificată matricea A
>>u=simple(A)
u =
[ 1, x]
[ sin(2*x), x^2]
2) Simplificaţi expresia
nnnn
nnnn
E53253
5353
11
12
.
Pasul 1. Declarăm pe n ca variabilă simbolică
>> syms n
Pasul 2. Scriem expresia E
>> E=(3^(n+2)*5^n+3^n*5^(n+1))/(3^(n+1)*5^n+2*3^(n+1)*5^n);
Pasul 3. Simplificăm expresia E
>> simplify(E)
ans =
14/9
3) Calculaţi determinantul, transpusa şi inversa simbolică pentru următoarea matrice:
xx
xxA
cossin
sincos.
Pasul 1. Declarăm pe x ca variabilă simbolică
>> syms x
Pasul 2. Scriem matricea A
>> A=[cos(x) -sin(x);sin(x) cos(x)];
Pasul 3. Calculăm determinantul simbolic al matricei A
>> det(A)
ans =
cos(x)^2+sin(x)^2
Pentru simplificarea rezultatului vom folosi
>> simplify(det(A))
ans =
1
4
Pasul 4. Determinăm transpusa simbolică a matricei A
>> transpose(A)
ans =
[ cos(x), sin(x)]
[ -sin(x), cos(x)]
Pasul 5. Determinăm inversa simbolică a matricei A
>> inv(A)
ans =
[ cos(x)/(cos(x)^2+sin(x)^2), sin(x)/(cos(x)^2+sin(x)^2)]
[ -sin(x)/(cos(x)^2+sin(x)^2), cos(x)/(cos(x)^2+sin(x)^2)]
4) Să se factorizeze expresia
322223 333232 yxyxyyxyxxE .
>> syms x y
>> E=x^3+y*x^2-2*sqrt(3)*x^2*y-2*sqrt(3)*x*y^2+3*y^2*x+3*y^3;
>> factor(E)
ans =
(x+y)*(x-3^(1/2)*y)^2
5) Calculaţi suma
nS
nn ,2
11
4
5
2
32
1 .
>> syms k n
>> S=simplify(symsum(1+1/(2^(k-1)),k,1,n))
S =
n+2-2^(1-n)
6) Să se dezvolte determinantul
cbacbca
cabacba
cbcbaba
iar rezultatul să fie pus sub formă de produs.
>> syms a b c
5
>> A=[a+b -a+b-c b+c;a-b-c a+b a+c;a+c b+c -a-b+c];
>> factor(det(A))
ans =
-3*(b+a+c)*(b^2+a^2+c^2)
7) Descompuneţi în fracţii simple expresia:
9157
1
23
xxx
x.
Pasul 1. Scriem vectorul linie ce conţine coeficienţii polinomului de la numărătorul
fracţiei.
>> B=[1 1];
Pasul 2. Scriem vectorul linie ce conţine coeficienţii polinomului de la numitorul
fracţiei.
>> A=[1 -7 15 -9];
Pasul 3. Apelăm funcţia residue.
>> [r,p,k]=residue(B,A)
r =
-0.5000
2.0000
0.5000
p =
3.0000
3.0000
1.0000
k =
[]
Deci:
- există doi poli: primul de ordinul doi, 31 p şi cel de-al doilea de ordinul
întâi, 12 p ;
- descompunerea nu conţine termeni liberi (deoarece k este vectorul nul).
6
Pe baza rezultatelor obţinem următoarea descompunere în fracţii simple:
12
1
3
2
32
1
2
xxx
8) Colectaţi coficienţii expresiei
2332 yyyxyxxy
în raport cu variabila y .
>>syms x y
>> collect(x*y+x^2*y^3+x^3*y+y-y^2,y)
ans =
x^2*y^3-y^2+(x+x^3+1)*y
9) Expandaţi expresia:
2222 52532532 xxxxxE .
>>syms x
>>E=(x^2*sqrt(2)-x*sqrt(3)+sqrt(5))*(x^2*sqrt(2)+x*sqrt(3)+sqrt(5))-
(x^2*sqrt(2)+sqrt(5))^2;
>> expand(E)
ans =
-3*x^2
10) Fie axxp 1 , cbxxxp 22 . Calculaţi determinantul:
3231
2221
1211
1
1
1
xpxp
xpxp
xpxp
scriind rezultatul sub formă de produs.
>> syms x a b c x1 x2 x3
>>p1=x+a;
>>p2=x^2+b*x+c;
>> A=[1 subs(p1,x,x1) subs(p2,x,x1); 1 subs(p1,x,x2) subs(p2,x,x2); 1 subs(p1,x,x3)
subs(p2,x,x3)]
A =
7
[ 1, x1+a, x1^2+b*x1+c]
[ 1, x2+a, x2^2+b*x2+c]
[ 1, x3+a, x3^2+b*x3+c]
>> factor(det(A))
ans =
-(-x3+x2)*(x1-x3)*(x1-x2)
11) Rezolvaţi ecuaţia
0122 22 mxmx
în raport cu variabila x .
>> syms x m
>> x=solve('x^2-2*(m+2)*x+m^2-1',x)
x =
[ m+2+(4*m+5)^(1/2)]
[ m+2-(4*m+5)^(1/2)]
12) Rezolvaţi sistemul de ecuaţii următor în raport cu zyx ,, :
m
mzymx
zmyx
mzyx
,
343
634
043
.
>> syms x y z m
>> [x,y,z]=solve('3*x+4*y+m*z','4*x+m*y+3*z-6','m*x+3*y+4*z-3-m',x,y,z)
x =
(3*m^2+60-30*m+m^3)/(-36*m+m^3+91)
y =
(2*m^2-45-3*m)/(-36*m+m^3+91)
z =
-(3*m^2+17*m-102)/(-36*m+m^3+91)
13) Determinaţi matricea A astfel încât:
TTTAA 112302132 .
Pasul 1. Fie cbaA .
8
>> syms a b c
>> A=[a b c];
Pasul 2. Calculăm TTTAAX 112302132 .
>> X=transpose(2*A-3*[1 2 0])-3*transpose(A)-transpose([2 1 -1])
X =
[ -a-5]
[ -b-7]
[ -c+1]
Pasul 3. Determinăm cba ,, astfel încât
0
0
0
X .
>> [a b c]=solve(X(1),X(2),X(3))
a =
-5
b =
-7
c =
1
Tema
1. Se consideră matricea
dc
baX .
Calculaţi:
2222 I)(2 baaXX ,
unde 2I semnifică matricea unitate de ordinul doi.
2. Fie matricele pătrate
00
00
00
A ,
000
100
010
B .
9
Calculaţi
100)( BA .
3. Simplificaţi expresiile:
a) xx
xxxE
2
23
2
23
b)
42:
442 2
2
2
32
x
x
x
x
xx
x
x
xF
c)
14
sin
34
sin2
x
xx
G .
4. Calculaţi suma
nnSn ,237413333 .
5. Se dau polinoamele
343 3456 xxxxxxP ,
6862 24 xxxxQ , x .
Să se transforme fracţia xQ
xPxF într-o fracţie ireductibilă.
6. Descompuneţi în fracţii simple expresia:
a) 1
1
5 xx
b) 1892
132
23
2
xxx
xx
c) 2
234
13
1033
xx
xxx.
7. Expandaţi expresia:
a) 3232 xxx
10
b) 322333 qpqpqpqpqpqp .
8. Factorizaţi expresia:
a) zyzxyxzyxE 3333
b) 3241322
mmmF .
9. Să se scrie sub forma unui singur polinom produsul a două polinoame:
a) 11 223 XXXX
b)
222222 22 XXXX .
10. Să se calculeze determinantul
222
222
222
21
21
21
ccc
bbb
aaa
scriind rezultatul sub formă de produs.
11. Să se calculeze determinantul Vandermonde de ordinul patru:
34
33
32
31
24
23
22
21
4321
1111
xxxx
xxxx
xxxxV .
12. Înlocuiţi variabila simbolică b din expresia
4382 32 baba
cu valoarea 4 .
13. Se consideră expresia
nmxxE , nm, , 0m .
Calculaţi:
13221 xExExE .
14. Fiind dat polinomul
1234 XXXXXP
11
să se calculeze suma:
2
1
2
1
2
1
2
1
4321
xxxxS ,
unde 4,1, ixi sunt rădăcinile ecuaţiei 0xP .
15. Rezolvaţi ecuaţia
a) 0123 3 mmxx , m
b) 232
32
xx
xx
a
a, a
în raport cu variabila x .
16. Rezolvaţi sistemul de ecuaţii următor în raport cu zyx ,, :
a
aazyx
azayx
zyax
,
1
2
.
17. Determinaţi ba, şi c astfel încât sistemul
52
13
0
bzyax
zcybx
czayx
are soluţia 3x , 1y , 2z .
18. Determinaţi matricea A astfel încât:
83
50
12
421
0113
T
A .
1
Laborator 4. Calcul simbolic în Matlab 7.0 cu aplicaţii în Analiză
matematică
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor simbolice, ce au aplicaţii în Analiză
matematică.
Funcţiile utilizate în vederea efectuării acestor calcule simbolice în Matlab 7.0 sunt:
Aplicaţii
1) Calculaţi următoarele limite:
Funcţia Semnificaţie
limit(f,x,a) Calculează limita expresiei simbolice f când ax
limit(f,x,a,’right’) Calculează limita expresiei simbolice f când ax , ax
limit(f,x,a,’left’) Calculează limita expresiei simbolice f când ax , ax
symsum(s,v,a,b) Calculează simbolic
b
av
s
diff(f,’x’) Calculează simbolic xf
diff(f,’x’,n) Calculează simbolic xf n
diff(f,n,’x’) Calculează simbolic xf n
int(f) Calculează simbolic xxf d
jacobian(F,v) Determină matricea Jacobiană ataşată funcţiei vectoriale F în
raport cu vectorul v . Atunci când F este o funcţie scalară,
funcţia jacobian returnează gradientul lui F
taylor(f,n,x) scrie primii n termeni din dezvoltarea în serie MacLaurin a
funcţiei f
taylor(f,n,x,a) scrie primii n termeni din dezvoltarea în serie Taylor a funcţiei
f în jurul punctului ax
2
a) x
exx
1
lim0,0
>> syms x
>> limit(exp(1/x),x,0,'left')
ans =
0
b) x
exx
1
lim0,0
>> limit(exp(1/x),x,0,'right')
ans =
Inf
c)
n
knnk
nnn
nn 122 sinlimlim
1sin1sin
1
>> syms k n
>> u=symsum(sin(k),k,1,n);
>> limit(1/(n+n^2)*u,n,inf);
d)
n
n n
n2)!(
!2lim
>> limit(('(2*n)!/(n!^2)')^(1/n),n,inf)
ans =
4
2) Să se determine raza de convergenţă pentru următoarea serie de puteri:
a) 1
2ln
n
nn xn
Pentru a determina raza de convergenţă a unei serii de puteri 0n
nn xa putem vom
folosi una din formulele:
nn
n
aR
lim
1
, (1)
sau
3
n
n
n a
aR
1lim
1
. (2)
Vom folosi formula (1).
>> syms n
>> 1/limit((n^(log(n)^2))^(1/n),n,inf)
ans =
1
b) n
n
nx
nn
n
12 1
11
Vom folosi formula (2).
>> a=@(n) (-1)^n*(n+1)/(n^2+n+1);
>> 1/simplify(limit(abs(a(n+1)/a(n)),n,inf))
ans=
1
3) Calculaţi
n
k kk
kkn
12
2
23
13.
>>syms k n
>>s=(k^2+3*k+1)/(k^2+3*k+2);
>> simplify(n-symsum(s,k,1,n))
ans =
1/2*n/(n+2)
4) Calculaţi suma seriei:
a)
1
11ln
n n
>> a=simple(symsum(log(1+1/n),n,1,inf))
a =
Inf
b)
122 1
12
n nn
n
4
>> symsum((2*n+1)/(n^2*(n+1)^2),n,1,inf)
ans =
1
c)
1
2
!1
1
n n
nn
>> symsum((n^2+n-1)/'(n+1)!',n,1,inf)
ans =
2
5) Să se calculeze următoarele derivate:
a) xxf 2cos ; ? xf
>> diff(cos(sqrt(x))^2)
ans =
-cos(x^(1/2))*sin(x^(1/2))/x^(1/2)
sau
>> f=@(x) cos(sqrt(x))^2;
>> diff(f(x))
ans =
-cos(x^(1/2))*sin(x^(1/2))/x^(1/2)
b) 21lnarctg xxxxf , ? xf
>> diff(diff(x*atan(x)-log(1+x^2)))
ans =
2*x^2/(1+x^2)^2
c) 6116
123
xxx
xf , ?11 xf
>> diff(1/(x^3+6*x^2+11*x+6),11);
6) Dezvoltaţi în serie Taylor funcţia
2
2x
exf
,
în jurul punctului 5.0x , pentru 4n .
>>syms x
>> taylor(exp(-x^2)/2,4,0.5);
5
7) Scrieţi primii şapte termeni din dezvoltarea în serie de puteri a funcţiei
x
xxf
1
1ln
2
1, 1,1x .
>>syms x
>> taylor(1/2*log((1+x)/(1-x)),7)
ans =
x+1/3*x^3+1/5*x^5
8) Să se calculeze derivatele parţiale de ordinul întâi şi al doilea pentru funcţia
0,,,, yxyzyxfzx .
Pasul 1. Declarăm zyx ,, ca variabile simbolice
>> syms x y z
Pasul 2. Scriem expresia lui f
>> f=y^(x^z);
Pasul 3. Calculăm derivatele parţiale de ordinul întâi al lui f , adică x
f
,
y
f
şi
z
f
.
>> s=diff(f,x)
s =
y^(x^z)*x^z*z/x*log(y)
>> t=diff(f,y)
t =
y^(x^z)*x^z/y
>> u=diff(f,z)
u =
y^(x^z)*x^z*log(x)*log(y)
Pasul 4. Calculăm derivatele parţiale de ordinul doi al lui f , adică
2
2
x
f
,
2
2
y
f
,
2
2
z
f
,
xy
f
2
, xz
f
2
şi yz
f
2
.
>> simplify(diff(s,x))
ans =
y^(x^z)*z*log(y)*(x^(2*z-2)*z*log(y)+x^(z-2)*z-x^(z-2))
6
>> simplify(diff(t,y))
ans =
y^(x^z-2)*x^(2*z)-y^(x^z-2)*x^z
>> simplify(diff(u,z))
ans =
y^(x^z)*log(x)^2*log(y)*(x^(2*z)*log(y)+x^z)
>> simplify(diff(s,y))
ans =
y^(x^z-1)*z*(x^(2*z-1)*log(y)+x^(z-1))
>> simplify(diff(s,z))
ans =
y^(x^z)*log(y)*(x^(2*z-1)*log(x)*log(y)*z+x^(z-1)*log(x)*z+x^(z-1))
>> simplify(diff(t,z))
ans =
y^(x^z-1)*log(x)*(x^(2*z)*log(y)+x^z)
9) Se dă câmpul vectorial
kzjyixzyxv y 2cosesin,,2
.
Să se determine:
a) vdiv ;
b) vrot .
Observatie. În analiză vectorială, câmpurile de vectori, asociază un vector fiecărui
punct din spațiu.
a) Divergenţa unui câmp vectorial
kzyxRjzyxQizyxPzyxv ,,,,,,,,
se calculează conform formulei
z
R
y
Q
x
Pv
div , (3)
Observatie. În analiza vectorială, divergența este un operator care măsoară cât de
mult un câmp vectorial iese din sau intră într-un punct; divergența unui câmp vectorial
este un scalar. Pentru un câmp vectorial care reprezintă viteza de expandare a aerului
7
atunci când acesta este încălzit, divergența câmpului de viteze are o valoare pozitivă
deoarece aerul se dilată. Dacă aerul se răcește și se contractă, divergența este negativă.
>> syms x y z
>> P=sin(x);
>> Q=y*exp(y^2);
>> R=cos(2*z);
>> div=diff(P,x)+diff(Q,y)+diff(R,z)
div =
cos(x)+exp(y^2)+2*y^2*exp(y^2)-2*sin(2*z)
b) Rotorul câmpului vectorial v este
ky
P
x
Qj
x
R
z
Pi
z
Q
y
Rv
rot . (4)
>> r1=diff(R,y)-diff(Q,z);
>> r2=diff(P,z)-diff(R,x);
>> r3=diff(Q,x)-diff(P,y);
>> rot=[r1 r2 r3]
rot =
[ 0, 0, 0]
Deci
0000rot kjiv .
Observatie. În analiza vectorială, rotorul este un operator vectorial care evidențiază
"rata de rotație" a unui câmp vectorial, adică direcția axei de rotație și magnitudinea
rotației.
10) Să se calculeze gradientul următorului câmp scalar:
1,, 2324 zxyxyxzyxf .
Observatie. În analiză vectorială, câmpurile de scalari, asociază un scalar fiecărui
punct din spațiu. Campurile scalare se pot reprezenta prin suprafete de nivel
const,, zyx sau prin linii de nivel .const, yx
Gradientul unui câmp scalar zyx ,, este vectorul
8
kz
jy
ix
grad .
Vectorul grad este perpendicular pe suprafetele de nivel corespunzatoare campului
scalar .
>> syms x y z
>> f=x^4+x*y^2+y^3+x^2*z+1;
>>v=[x y z];
>> jacobian(f,v)
ans =
[ 4*x^3+y^2+2*x*z, 2*x*y+3*y^2, x^2]
Deci
kxjyxyixzyxf 2223 3224grad .
11) Fie
2: DF , ,0D , sin,cos,,,,, 21 baffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , adică
,D
,D 21 ff.
Observație. Determinantul funcţional (jacobianul) al funcţiilor 321 ,, fff în raport
cu variabilele ,, se calculează conform formulei:
333
222
111
321
,,D
,,D
fff
fff
fff
fff
(1)
>> syms rho th a b
>> x=a*rho*cos(th);
>> y=b*rho*sin(th);
>> F=[x y];
>> v=[rho th];
9
>> J=jacobian(F,v)
J =
[ a*cos(th), -a*rho*sin(th)]
[ b*sin(th), b*rho*cos(th)]
>> simplify(det(J))
ans =
a*b*rho
Deci,
abff
,D
,D 21 .
12) Fie 3: DF , 2,0 D ,
cos,sinsin,cossin,,,,,,,,,, 321 fffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , 3f , adică
,,D
,,D 321 fff.
>> syms rho th phi
>> F=[rho*sin(th)*cos(phi) rho*sin(th)*sin(phi) rho*cos(th)];
>> v=[rho th phi];
>> J=jacobian(F,v);
>> simplify(det(J))
ans =
sin(th)*rho^2
Deci
sin,,D
,,D 2321 r
fff.
13) Fie 3: DF , 2,0 D ,
zzfzfzfzF ,sin,cos,,,,,,,,,, 321 .
10
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , 3f , adică
z
fff
,,D
,,D 321
.
>> syms rho phi z
>> x=rho*cos(phi);
>> y=rho*sin(phi);
>> F=[x y z];
>> v=[rho phi z];
>> J=simplify(det(jacobian(F,v)))
J =
rho
Aşadar,
z
fff
,,D
,,D 321 .
14) Să se determine matricea Jacobiană
1,0,1 fJ
ataşată funcţiei vectoriale
33: f , zyxzxyxzyxzyxzyxf 181223,22,,, 22 .
Observație. Pentru o functie vectoriala 33: f
zyxfzyxfzyxfzyxf ,,,,,,,,,, 321 ,
unde 3,1,: 3 ifi , matricea Jacobiană ataşată funcţiei vectoriale f în
punctul 3a este matricea
az
fa
y
fa
x
f
az
fa
y
fa
x
f
az
fa
y
fa
x
f
af
333
222
111
J
(6)
>> syms x y z
11
>> u=[x y z];
>> J=jacobian(f,u)
J =
[ 2*x+2*y+2*z, 2*x+2*y+2*z, 2*x+2*y+2*z]
[ 2, 1, -2]
[ 6*x+2*y-12*z, 2*x-18*z, -12*x-18*y]
>> v=[-1 0 -1];
>> subs(J,u,v)
ans =
-4 -4 -4
2 1 -2
6 16 12
Aşadar,
12166
212
444
1,0,1fJ .
15) Calculati
a) xxx d1 2
324
>> syms x
>> a=simplify(int(x^(-4)*(1-x^2)^(3/2)));
b)
xe
xxx d
1sin
11
2
>> int((1/x^2)*sin(1/x)*exp(1/x))
ans =
1/2*exp(1/x)*cos(1/x)-1/2*sin(1/x)*exp(1/x)
c) x
xxx
xd
)sincos( 2
2
>> int(x^2/(x*cos(x)-sin(x))^2)
ans =
(-1-2*x*tan(1/2*x)+tan(1/2*x)^2)/(-x+x*tan(1/2*x)^2+2*tan(1/2*x))
12
d)
x
xxx
xxd
11
1
122
2
>>simple( int(sqrt((x^2-x+1)/(x^2+x+1))*(1-1/x^2)))
ans =
-1/4*(3*log(2*x^2+1+2*(1+x^4+x^2)^(1/2))*x-
asinh(1/3*3^(1/2)*(2*x^2+1))*x+2*atanh(1/2*(2+x^2)/(1+x^4+x^2)^(1/2))*x-
4*(1+x^4+x^2)^(1/2))/x
e)
xx
xd
13 4
>> int(((1+x^(1/4))^(1/3))/sqrt(x))
ans =
12/7*(1+x^(1/4))^(7/3)-3*(1+x^(1/4))^(4/3)
Tema
1. Calculaţi:
a) x
x
xxlim
0,0
b) x
x
xxlim
0,0
c) x
x x
xx2
1
0,0 tg
elim
d) nn
n
nn !!11lim
e) xx
xxxx
x2costgln
sincoscossinlim
33
4
.
2. Calculaţi suma seriei:
a)
1
2
6
23
nn
nnn
13
b)
1 21
32
n nnn
n
c)
1 3
21ln
n nn
3. Să se determine raza de convergenţă pentru următoarele serii de puteri:
a) 1 32n
nn
nx
b)
1
21
1n
nnn
xn
4. Dezvoltaţi în serie Taylor funcţia 21 xxf în jurul lui 2x , pentru
4n .
5. Scrieţi primii opt termeni din dezvoltarea în serie de puteri a funcţiei
xxf 3cos , x .
6. Să se calculeze următoarea derivată:
a) xf dacă 21
2arcsin
x
xxf
,
b) xg dacă 21
arccos
x
xxg
.
7. Să se calculeze derivatele parţiale de ordinul întâi şi al doilea pentru funcţia
a) xy
yxyxf
1arctg,
b) yxyxf 22 sin,
c) zzyxf xy sine,, .
8. Să se calculeze gradientul următoarelor câmpuri scalare:
a) 222
e,, zyxxyzzyxf
b)
222ln,, zyxzyxg
14
c) xzyzxy
xyzzyxzyxh
1arctg,, .
9. Se dă câmpul vectorial kzyjyzixxzyxv 2323,, 22 . Să se
determine divergenţa şi rotorul lui v .
10. Fie
2: DF , ,0D , sin,cos,,,,, 21 ffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , adică
,D
,D 21 ff.
11. Fie
2: DF , ,0D ,
sin,cos,,,,, 21 baffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , adică
,D
,D 21 ff.
12. Calculaţi:
a)
4 341
d
x
x
b)
x
x
x xdecos1
sin1
c) xx dtg1ln
d)
x
xxx
xxd
1036
2574
23
2
e)
x
x
xxd
1
14
.
1
Laborator 5. Calcul numeric în Matlab 7.0 cu aplicaţii în Algebră
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor numerice, ce au aplicaţii în Algebră.
Funcţiile utilizate în vederea efectuării acestor calcule numerice în Matlab 7.0 sunt:
Funcţia Semnificaţie
chol(A) Determină descompunerea Cholesky a matricei simetrică şi
pozitiv definită A
eig(A) Returnează un vector, ce conţine valorile proprii ale matricei A
[V,D]=eig(A) Returnează matricea diagonală D, ce conţine valorile proprii ale
matricei A şi matricea V, ale cărei coloane sunt vectorii proprii
corespunzători valorilor proprii
eigs(A) Returnează un vector, ce conţine cele mai mari şase valori
proprii ale matricei A
[V,D]=eigs(A) Returnează matricea diagonală D, ce conţine cele mai mari şase
valori proprii ale matricei A şi matricea V, ale cărei coloane
sunt vectorii proprii corespunzători acestor valori proprii
eigs(A,k) Returnează un vector, ce conţine cele mai mari k valori proprii
ale matricei A
[V,D]=eigs(A,k) Returnează matricea diagonală D, ce conţine cele mai mari k
valori proprii ale matricei A şi matricea V, ale cărei coloane
sunt vectorii proprii corespunzători acestor valori proprii
fsolve(F,I) Rezolvă sisteme de ecuaţii neliniare conţinute în funcţia
vectorială F , considerând I ca punct iniţial (vector de start).
Găseşte toate rădăcinile unei ecuaţiei neliniare conţinută în
funcţia F , ce se află în intervalul I
fzero(f,I) Găseşte o rădăcină a unei ecuaţiei neliniare conţinută în funcţia
2
Aplicaţii
1) Verificaţi dacă numerele 87 şi 41 sunt prime între ele.
>> gcd(87,41)
ans =
1
Deoarece 141,87c.d.m.m.c rezultă că numerele 87 şi 41 sunt prime între ele.
2) Aflaţi cel mai mic multiplu comun al numerelor : 40, 36, 126.
>> lcm(lcm(40,36),126)
ans =
2520
REZOLVAREA ECUATIILOR ALGEBRICE
Forma canonică a unei ecuaţii algebrice, cu o singură necunoscută este
0XP , (1)
unde:
011
1 aXaXaXaXP nn
nn
, 0na ,
n este gradul polinomului, adică gradul ecuaţiei algebrice,
f , ce se află în intervalul I
gcd(A,B) Calculează cel mai mare divizor comun corespunzător lui A şi
B , care pot fi vectori sau scalari
lcm(A,B) Calculează cel mai mic multiplu comun corespunzător lui A şi
B , care pot fi vectori sau scalari
linsolve(A,b) Rezolvă sistemul de ecuaţii liniare bAX , nnA ,
1 nb , 1 nX
lu(A) Determină descompunerea LU a matricei pozitiv definită A
norm(X) Calculează norma vectorului (matricei ) X
roots(p) Determină rădăcinile polinomului ai cărui coeficienţi sunt
conţinuţi (în ordinea descrescătoare a puterilor variabilei) în
vectorul linie p
[ v1,..,vn]=solve(„eq1‟,..,‟eqn‟) Rezolvă sistemul format din ecuaţiile 0,,01 eqneq
3
ka coeficienţii polinomului, care pot fi numere reale sau complexe.
Numărul real sau complex constituie soluţie sau rădăcină a ecuaţiei (1) dacă şi
numai dacă este rădăcină a polinomului P , adică dacă are loc egalitatea 0P .
3) Determinaţi rădăcinile polinomului
a) 263410 234 XXXXXP
>> p=[1 1 -10 -34 -26];
>> x=roots(p)
x =
4.0105
-1.9342 + 1.3911i
-1.9342 - 1.3911i
-1.1422
b) 155 XXXP
>> p=[1 0 0 0 5 1];
>> x=roots(p)
x =
1.1045 + 1.0598i
1.1045 - 1.0598i
-1.0045 + 1.0609i
-1.0045 - 1.0609i
-0.1999
REZOLVAREA ECUATIILOR NELINARE
Toate ecuaţiile care nu sunt algebrice se numesc transcendente (neliniare), deci acele
ecuaţii care nu pot fi reduse la ecuaţii algebrice folosind operaţiile: adunare, scădere,
înmulţire, împărţire, ridicare la putere. Ecuaţiile transcendente importante sunt: ecuaţiile
exponenţiale, ecuaţiile logaritmice şi ecuaţiile trigonometrice.
Orice ecuaţie transcendentă se poate scrie sub forma
xgxf
sau sub forma canonică:
0 xgxf . (2)
4
Spre deosebire de ecuatiile algebrice pentru care se pot obtine forme generale ale
solutiilor, pentru ecuatiile transcendente nu mai este posibil acest lucru. Desi nu exista
metode matematice generale de rezolvare pentru aceste ecuatii, ele pot fi rezolvate grafic
sau prin metode de aproximare. Funcţia care trebuie reprezentată grafic într-un interval
ba, (în care există cel puţin o rădăcină a ecuaţiei (2), adică avem cel puţin o schimbare
de semn) este
xgxfxh . (3)
4) Rezolvaţi ecuaţiile neliniare:
a) arctgx1 x
>> f=@ (x) 1+x-atan(x);
>> x=fzero(f,[-3 3])
x =
-2.1323
>> f(x)
ans =
2.2204e-016
b) 0cos2 xx
>> f=@ (x) x.^2-cos(pi*x);
>> s=fsolve(f,[-0.5,0.5])
s =
-0.4384 0.4384
>> f(s)
ans =
1.0e-011 *
0.0962 0.1001
Observatie. Operatia de ridicare la putere element cu element într-un tablou este
simbolizata cu operatorul .^
5
REZOLVAREA SISTEMELOR DE ECUATII LINARE
Un sistem liniar de n ecuaţii cu n necunoscute de forma:
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
2211
22222121
11212111
poate fi exprimat matriceal astfel:
BAX , (4)
unde:
nnnn
n
n
aaa
aaa
aaa
A
21
22221
11211
este matricea sistemului (de ordinul n ),
nx
x
x
X2
1
este matricea necunoscutelor (matrice coloană),
nb
b
b
B2
1
este matricea termenilor liberi (matrice coloană).
5) Un rezervor poate fi umplut cu apă de la un robinet de apă caldă şi de la un
robinet cu apă rece. Dacă robinetul de apă caldă este deschis 3 min şi de apă rece
1 min, atunci în rezervor sunt l50 . Dacă apa caldă curge 1 min şi apa rece 3 min,
atunci în rezervor vor fi l40 . Câţi litri de apă curg într-un minut din fiecare
robinet?
Notând cu x minl debitul robinetului de apă caldă şi cu y minl debitul
robinetului de apă rece rezultă sistemul
.402
503
yx
yx
Rezolvarea în Matlab 7.0 a sistemului cu secvenţa de instrucţiuni
6
>> A=[3 1;1 2];
>> b=[50 40]';
>> s=linsolve(A,b);
s=
12
14
conduce la concluzia că robinetul de apă caldă furnizează 12 minl şi robinetul de apă
rece min14l .
6) Găsiţi curenţii din circuitul următor.
10V
A
5V
C D
10
5
20
B
5
10V
20V
1I 6I
2I
3I
4I
5I
Aplicând legile lui Kirchhoff şi legea lui Ohm obţinem sistemul
45
43
1
453
642
516
321
5510
510205
20510
II
II
I
III
III
III
III
ale cărui necunoscute sunt 61 ,, II .
>>[i1 i2 i3 i4 i5 i6]=solve('i1=i2+i3','i6=i1+i5','i2+i4=i6','i3+i5=i4','10+5=20*i1','-
5+20=10*i3+5*i4','-10=-5*i5-5*i4')
7
REZOLVAREA SISTEMELOR DE ECUATII NELINARE
Un sistem de ecuaţii de forma
0,,,
0,,,
21
211
nn
n
xxxf
xxxf
în care cel puţin una din funcţiile nifi ,1, nu este liniară se numeşte sistem de ecuaţii
neliniare.
Din punct de vedere matematic, acest sistem poate fi rezolvat folosind metode
numerice precum metoda lui Newton sau metoda gradientului.
7) Rezolvaţi sistemele neliniare:
a.
026
036
33
33
yyx
xyx (considerând ca punct iniţial 5.0,5.0 )
Pasul 1. Definim funcţia vectorială f .
>>f=@(x) [x(1)^3+x(2)^3-6*x(1)+3;
x(1)^3-x(2)^3-6*x(2)+2];
Pasul 2. Rezolvăm sistemul neliniar.
>> s = fsolve(f,[0.5 0.5])
s =
0.53237037226762 0.35125744755245
Pasul 3. Efectuăm verificarea soluţiei pe care am obţinut-o.
>> f(s)
ans =
1.0e-009 *
0.29623858921468
0.19358559200100
b.
0
1
9
2
222
zyx
xyz
zyx
(considerând ca punct iniţial 6.1,2.0,5.2 ).
>> f=@(x) [x(1)^2+x(2)^2+x(3)^2-9;x(1)*x(2)*x(3)-1;x(1)+x(2)-x(3)^2]
f =
8
@(x) [x(1)^2+x(2)^2+x(3)^2-9;x(1)*x(2)*x(3)-1;x(1)+x(2)-x(3)^2]
>> s = fsolve(f,[2.5 0.2 1.6])
s =
2.49137569683072 0.24274587875742 1.65351793930053
>> f(s)
ans =
1.0e-011 *
0.11226575225010
0.13493650641294
-0.05244693568329
DETERMINAREA VALORILOR SI VECTORILOR PROPRII
Fie V un spaţiu vectorial peste corpul K şi VT End . Spunem că scalarul
K este o valoare proprie pentru T dacă există 0\Vx astfel încât
xxT .
Vectorul 0\Vx pentru care există K astfel încât xxT se numeşte
vector propriu pentru T corespunzător valorii proprii .
8) Determinati vectorii si valorile proprii ai matricei
011
321
001
A .
>> A=[1 0 0; 1 2 -3; 1 -1 0];
>> [V,D]=eig(A);
REZOLVAREA SISTEMELOR DE ECUATII LINARE FOLOSIND FACTORIZAREA LU
O descompunere a unei matrice A de forma
ULA ,
unde L este o matrice inferior triunghiulară iar U este o matrice superior triunghiulară
se numeşte factorizare LU a matricei A .
După ce am determinat descompunerea LU a matricei A :
AUL lu, ,
9
astfel încât AUL , pentru a rezolva sistemul de ecuaţii liniare, scris sub forma
matriceală BAX se procedează astfel:
- rezolvăm sistemul inferior triunghiular
BLYBYL 1 ;
- rezolvăm sistemul superior triunghiular
YUXYXU 1 .
9) Folosind factorizarea LU să se rezolve sistemul de ecuaţii liniare următor:
7.31223
2.126
5.0210
3.228
4321
431
432
321
xxxx
xxx
xxx
xxx
>> A=[8 -1 -2 0;0 10 1 2;-1 0 6 2;3 -1 2 12];
>> B=[2.3 -0.5 -1.2 3.7]';
>> [L,U]=lu(A);
>> L*U
ans =
8 -1 -2 0
0 10 1 2
-1 0 6 2
3 -1 2 12
>> Y=inv(L)*B;
>> X=inv(U)*Y
X =
0.21168679392287
-0.08223607323724
-0.26213478768991
0.29224776003116
>> A*X
ans =
2.30000000000000
-0.50000000000000
10
-1.20000000000000
3.70000000000000
REZOLVAREA SISTEMELOR DE ECUATII LINARE FOLOSIND METODA CHOLESKY
În cazul unui sistem cu matrice simetrică şi pozitiv definită, factorizarea LU are
forma particulară
UUA t (5),
în care U este o matrice superior triunghiulară.
Descompunerea din (5) se numeşte factorizare Cholesky.
După ce am determinat descompunerea Cholesky a matricei A :
AU chol ,
astfel încât AUU ' , pentru a rezolva sistemul de ecuaţii liniare, scris sub forma
matriceală BAX se procedează astfel:
- rezolvăm sistemul inferior triunghiular
BUYBYU 1'' ;
- rezolvăm sistemul superior triunghiular
YUXYXU 1 .
10) Rezolvaţi sistemul de ecuaţii liniare următor folosind metoda Cholesky:
.78
1211
89
910
4321
4321
4321
4321
xxxx
xxxx
xxxx
xxxx
Pasul 1. Scriem matricea A , asociată sistemului de ecuaţii liniare.
>> A=[10 1 -1 -1;1 9 1 1;-1 1 11 1;-1 1 1 8];
Pasul 2. Scriem vectorul coloană B , al termenilor liberi.
>> B=[9 8 12 -7]';
Pasul 3. Determinăm descompunerea Cholesky a matricei A .
>> R=chol(A);
Pasul 4. Verificăm că ARR .
>> R'*R
ans =
11
10.00000000000000 1.00000000000000 -1.00000000000000 -1.00000000000000
1.00000000000000 9.00000000000000 1.00000000000000 1.00000000000000
-1.00000000000000 1.00000000000000 11.00000000000000 1.00000000000000
-1.00000000000000 1.00000000000000 1.00000000000000 8.00000000000000
Pasul 5. Rezolvăm sistemul inferior triunghiular BYR .
>> Y=inv(R')*B;
Pasul 6. Rezolvăm sistemul superior triunghiular YXR .
>> X=inv(R)*Y;
Pasul 7. Verificăm că vectorul X este soluţie a sistemului.
>> A*X
ans =
9.00000000000000
8.00000000000000
12.00000000000000
-7.00000000000000
Tema
1. Determinaţi rădăcinile polinomului
a) 22 34 XXXXP
b) 8765432 234567 XXXXXXXXP
2. Rezolvaţi ecuaţiile neliniare
a) 01xxe (căutaţi soluţia în intervalul 7.0,7.0 )
b) xx 1ln2.0 (căutaţi soluţiile în intervalul 6.0,6.0 ).
3. Să se afle matricea necunoscută X din ecuaţia matriceală
521
234
311
111
012
111
X .
4. Rezolvaţi sistemele neliniare:
a)
0cos
0)sin(
yxy
yxx (considerând ca punct iniţial 1,0 )
12
b)
01010
0120
3
3
yxyx
xy (considerând ca punct iniţial 3.0,5.0 )
c)
0152
0lg3
12121
2211
xxxx
xxx (considerând ca punct iniţial 2,3 )
d)
043
042
0
22
22
222
zyx
zyx
zyx
(considerând ca punct iniţial 5.0,5.0,5.0 )
5. Folosind factorizarea LU să se rezolve sistemul de ecuaţii liniare următor:
.97
46
55
321
321
321
xxx
xxx
xxx
6. Determinaţi vectorii şi valorile proprii corespunzători matricei
1000
0010
0100
0001
A .
7. Determinaţi cele mai mari trei valori proprii (in modul) şi vectorii proprii
coresponzători acestora, ai matricei
036.008
120346
856.700
065.010
106.143
A .
8. Determinati vectorii si valorile proprii ai matricei
456
122
223
A .
1
Laborator 7. Calcul numeric în Matlab 7.0 cu aplicaţii în Analiză
matematică
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor simbolice, ce au aplicaţii în Analiză
matematică.
Funcţiile utilizate în vederea efectuării acestor calcule simbolice în Matlab 7.0 sunt:
Observaţie. Funcţia triplequad din Matlab 7.0 nu poate fi regăsită în versiunile
precedente de Matlab.
Aplicaţii
1) Calculaţi derivatele de mai jos, în punctele indicate:
a) x
xxf
1
2arcsin , ?7.5 f
>> syms x
>> f=diff(asin(2*sqrt(x)/(1+x)),2)
f =
Funcţia Semnificaţie
dblquad(f,a,b,c,d) Calculează valoarea aproximativă a integralei
b
a
d
c
yxyxf dd,
int(f(x),a,b) Calculează
b
a
xxf d
quad(f,a,b) Calculează valoarea aproximativă a integralei
b
a
xxf d
triplequad(f,a,b,c,d,e,f) Calculează valoarea aproximativă a integralei
b
a
d
c
f
e
zyxzyxf ddd,,
2
(-1/2/x^(3/2)/(x+1)-2/x^(1/2)/(x+1)^2+4*x^(1/2)/(x+1)^3)/(1-4*x/(x+1)^2)^(1/2)-
1/2*(1/x^(1/2)/(x+1)-2*x^(1/2)/(x+1)^2)/(1-4*x/(x+1)^2)^(3/2)*(-
4/(x+1)^2+8*x/(x+1)^3)
>> subs(f,x,5.7)
ans =
0.0148
b) xxxf 222 , ?2.03 f
>>syms x
>> f=diff(2^(x^2-2*x),3)
f =
2^(x^2-2*x)*(2*x-2)^3*log(2)^3+6*2^(x^2-2*x)*(2*x-2)*log(2)^2
>> subs(f,x,-0.2)
ans =
-15.6311
2) Calculaţi derivatele parţiale de ordinul al doilea ale funcţiei următoare în punctul
indicat:
23 e2, xyxyxf , 1,1 .
syms x y
>> s=diff(2*x^3*y-exp(x^2),x)
s =
6*x^2*y-2*x*exp(x^2)
>> ss=subs(subs(s,x,-1),y,1)
ss =
11.4366
>> t=diff(2*x^3*y-exp(x^2),y)
t =
2*x^3
>> tt=subs(subs(t,x,-1),y,1)
tt =
-2
3
>> k=diff(s,x)
k =
12*x*y-2*exp(x^2)-4*x^2*exp(x^2)
>> k1=subs(subs(k,x,-1),y,1)
k1 =
-28.3097
>> p=diff(t,y)
p =
0
>> p1=subs(subs(p,x,-1),y,1)
p1 =
0
>> j=diff(s,y)
j =
6*x^2
>> j1=subs(subs(j,x,-1),y,1)
j1 =
6
3) Fie câmpul scalar
22
arcsin,,
yx
zzyx
.
Să se calculeze derivata lui în punctul 1,1,1M după direcţia MN ştiind că
2,3,2 N .
Derivata unui câmpul scalar într-un punct 000 ,, zyxM după o direcţie s este
cos,,cos,,cos,,d
d000000000 zyx
zzyx
yzyx
xM
s
,
unde cos , cos şi cos semnifică cosinusurile directoare ale direcţiei s .
Pasul 1. Determinăm expresia analitică a direcţiei MNs :
kzzjyyixxMN MNMNMN .
4
>> M=[1 1 1];
>> N=[2 3 -2];
>> s=N-M
s =
1 2 -3
Deci,
kjiMN 32 .
Pasul 2. Determinăm cosinusurile directoare ale direcţiei s .
>> w=norm(s);
>>u=s/w
u=
0.2673 0.5345 -0.8018
Aşadar, 2673.0cos , 5345.0cos şi 8018.0cos .
Pasul 3. Determinăm derivata lui în punctul M după direcţia s .
>> syms x y z
>> phi=asin(z/sqrt(x^2+y^2));
>> d1=diff(phi,x);
>> g=subs(subs(subs(d1,x,1),y,1),z,1);
>> d2=diff(phi,y);
>> h=subs(subs(subs(d2,x,1),y,1),z,1);
>> d3=diff(phi,z);
>> k=subs(subs(subs(d3,x,1),y,1),z,1)
>> d=dot(u,[g h k])
d =
-1.2027
Rezultă
2027.11,1,1d
d
s
.
4) Calculaţi următoarele integrale simple:
5
a)
2
02
dsin1
2sin
xx
x
>> syms x
>> f=@(x) sin(2*x)/(1+sin(x)^2);
>> int(f(x),0,pi/2)
ans =
log(2)
>> log(2)
ans =
0.6931
sau
>> syms x
>> f=@(x) sin(2*x)./(1+sin(x).^2);
>> quad(f,0,pi/2)
ans =
0.6931
b) xxx d11
0
22
>> syms x
>> f=@(x) x^2*sqrt(x^2+1);
>> int(f(x),0,1)
ans =
3/8*2^(1/2)+1/8*log(2^(1/2)-1)
>> 3/8*2^(1/2)+1/8*log(2^(1/2)-1)
ans =
0.4202
5) Calculaţi valoarea următoarelor integrale improprii
a)
1
132
1
d
x
x
>>syms x
6
>> int(1/((x+1)^(2/3)),-1,1)
ans =
3*2^(1/3)
b)
1
0 1
d
xx
x
>>syms x
>> int(1/((x*(1-x))^(1/2)),0,1)
ans =
pi
c)
21
d
x
x
>>syms x
>> int(1/(1+x^2),-inf,inf)
ans =
pi
6) Calculaţi lungimea arcului de curbă:
a) xy sinln ,
2,
3
x
Utilizând formula
xxfLb
a
d1 2 , baf ,:
rezultă că
xxx
L dsinln12
3
2
ce poate fi calculată în Matlab astfel:
>> simplify(int(sqrt(1+diff(log(sin(x)))^2),pi/3,pi/2))
ans =
1/2*log(3)
7
b)
2,0,
4
sin3
cos3
t
tz
ty
tx
Pentru o curbă în spaţiu dată parametric
bat
tzz
tyy
txx
,,
lungimea arcului de curbă este
ttztytxLb
a
d222 .
Secvenţa de comenzi Matlab 7.0 necesare calculului lungimii arcului de curbă este
următoarea:
>> syms t
>> x=diff(3*cos(t));
>> y=diff(3*sin(t));
>> z=diff(4*t);
>> L=int(sqrt(x^2+y^2+z^2),0,pi/2);
c) 3
sin3 ,
2,0
Pentru o curbă plană dată în coordonate polare: , ba, , lungimea
arcului de curbă este
d22 b
a
L .
Secvenţa de comenzi Matlab 7.0, ce ne permite să calculăm lungimea acestui arc de
curbă plană este:
>> syms t
>> ro=sin(t/3)^3;
>> L=eval(int(sqrt(ro^2+diff(ro)^2),0,pi/2))
L =
0.1359
8
7) Calculaţi aria marginită de curbele xy ln , xy 2ln .
Aria mărginită de două curbe care se intersectează în punctele 11, yx şi 22 , yx
se calculează folosind formula 2
1
dx
x
xxgxf .
Fig. 6.8
>>syms x
>> f=@(x) log(x);
>> g=@(x) log(x)^2;
>> syms y
>> u=solve(log(y)-log(y)^2,y)
u =
1
exp(1)
>> A=eval(int(f(y)-g(y),y,u(1),u(2)))
A =
0.2817
9
8) Se consideră domeniul plan xyxyxF sin0,0|, . Să se
determine coordonatele centrului de greutate al unei plăci omogene ce are forma lui
F .
Coordonatele centrului de greutate GG yxG , al unei plăci omogene de forma unui
domeniu plan xfybxayxF 0,|, se determină conform formulelor:
.
d
d2
1
d
d
2
b
a
b
aG
b
a
b
aG
xxf
xxf
y
xxf
xxxf
x
>> syms x
>> I1=int(x*sin(x),0,pi);
>> I2=int(sin(x),0,pi);
>> I3=int(sin(x)^2,0,pi)/2;
>> xg=I1/I2
xg =
1/2*pi
>> yg=I3/I2
yg =
1/8*pi
9) Calculaţi următoarele integrale duble:
a) yxyx
ydd
sinsin1
cos2
0
2
0
>> syms x y
>> f=@(x,y) cos(y)./(1+sin(x)*sin(y))
f =
@(x,y) cos(y)./(1+sin(x)*sin(y))
10
>> dblquad(f,0,pi/2,0,pi/2)
ans =
1.2337
b) yxy
xdd
2
1
2
13
>> syms x y
>> f=@(x,y) sqrt(x./(y.^3));
>> dblquad(f,1,2,1,2)
ans =
0.7140
sau
>> syms x y
>> eval(int(int(1/sqrt(y^3),1,2)*sqrt(x),1,2))
ans =
0.7140
Tema
1. Calculaţi derivatele de mai jos, în punctele indicate:
a. 1
1arctg
x
xxf , ?3 f
b. 1
x
xxxf , ?24 f
2. Calculaţi derivatele parţiale de ordinul al doilea ale funcţiilor următoare în
punctele indicate:
a. 3 2, yxyxf , 2,2
b. yxxyxf sin, ,
0,
4
c. yzxzyxf e,, , 1,1,1
3. Fie câmpul scalar
11
xyyxyx 22, .
Să se calculeze derivata lui în punctul 2,2M după direcţia s care face în
direcţa pozitivă a axei xO un unghi de 30 .
4. Se dă câmpul vectorial
kyzjyzxixzzyxv 423 22,, .
Să se determine:divergenţa şi rotorul lui v în punctul 1,1,1 M .
5. Calculaţi următoarele integrale simple:
a. 1
0
2 dcose xxx
b. xx
xd
1
25
1
2
.
6. Calculaţi valoarea următoarelor integrale improprii
a.
1
0 21
d
x
x;
b.
3 1
d
xx
x
7. Calculaţi următoarele integrale duble:
a. yxxy ddsin0 0
2
b.
yx
yx
xydd
1
3
1
1
0 322
1
Laborator 8. Rezolvarea ecuatiilor diferentiale în Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
ECUATII CU VARIABILE SEPARABILE
O ecuaţie diferenţială cu variabile separabile este de forma
yqxpy , (8.1)
unde baqp ,:, continue, 0q .
Formal dacă scriem
x
yy
d
d
atunci ecuaţia (8.1) devine
xxp
yq
yd
d
şi admite soluţia unică definită implicit prin egalitatea
Cxxp
yq
y d
d. (8.2)
1) Rezolvaţi ecuaţia diferenţială cu variabile separabile:
a) 1
2
x
x
e
eyy
>> y=dsolve('Dy=exp(x)/(2*y*(exp(x)+1))','x')
y =
(log(1+exp(x))+C1)^(1/2)
-(log(1+exp(x))+C1)^(1/2)
b) 2
3
11
yx
xyy
>> y=dsolve('Dy=y*(x^3+1)/x*(1-y^2)','x')
2
y =
1/(x^2+exp(-2/3*x^3)*C1)^(1/2)*x
-1/(x^2+exp(-2/3*x^3)*C1)^(1/2)*x
ECUATII OMOGENE
Numim ecuaţie diferenţială omogenă o ecuaţie de forma
yxfy , , (8.3)
f fiind o funcţie continuă şi omogenă (de grad zero).
Ecuaţiile omogene se reduc la ecuaţii cu variabile separabile folosind schimbarea
de variabile
x
yxu . (8.4)
2) Să se rezolve ecuaţia diferenţială omogenă:
a) x
y
ex
yy
>> y=dsolve('Dy=y/x+exp(y/x)','x')
y =
log(-1/(log(x)+C1))*x
b) 0dd xxyyxy
>> y=dsolve('Dy=-(y-x)/(y+x)','x')
y =
(-x*C1-(2*x^2*C1^2+1)^(1/2))/C1
(-x*C1+(2*x^2*C1^2+1)^(1/2))/C1
ECUATII NEOMOGENE
O ecuaţie diferenţială neomogenă este de forma
xqyxpy , (8.5)
unde qp, sunt două funcţii continue.
Soluţia generală a ecuaţiei neomogene (8.5) are expresia analitică:
xxqCxyxxpxxpdee
d1
d, 1C . (8.6)
3
3) Să se rezolve ecuaţia diferenţială neomogenă:
a) 2
22 xxexyy
>> y=dsolve('Dy=2*x*y+2*x*exp(x^2)','x')
y =
(x^2+C1)*exp(x^2)
b) xxyyx cos2 , 0x
>> y=dsolve('x*Dy-y=x^2*cos(x)','x')
y =
x*sin(x)+x*C1
ECUATII DIFERENTIALE TOTALE
O ecuaţie diferenţială totală este de forma
0d,d, yyxgxyxf , 2:, Dgf . (8.7)
Dacă membrul stâng al ecuaţiei (8.7) este diferenţiala totală a unei funcţii
D: , adică
yyxgxyxf d,d,d , (8.8)
atunci ecuaţia diferenţială se numeşte ecuaţie diferenţială totală exactă.
Condiţia necesară şi suficientă ca ecuaţia (8.7) să fie diferenţială totală exactă este
ca
x
g
y
f
(8.9)
Soluţia generală a ecuaţiei diferenţială totală exactă este
Cyx , , (8.10)
unde
ttxgtytfyxy
y
x
x
d,d,,
00
0 , Dyx 00 , . (8.11)
Dacă nu este îndeplinită condiţia (8.9) atunci ecuaţia diferenţială (8.7) trebuie
înmulţită cu un factor integrant yx, astfel încât ecuaţia să devină o ecuaţie
diferenţială totală exactă.
4
Se disting două cazuri:
Cazul 1. Dacă x atunci condiţia (8.9) devine
xg
x
g
y
f
gx
g
y
fg
xf
y
iar
xx
xd
e
. (8.12)
Cazul 2. Dacă y atunci raţionând precum în cazul 1, condiţia (8.9) devine:
yf
x
g
y
f
iar
yy
yd
e
. (8.13)
4) Să se integreze ecuaţiile diferenţiale totale:
a) 0d2ed4e 2 yxxxxyy xyxy
Rezolvând în Matlab 7.0 ecuaţia diferenţială propusă, distingem următorii paşi.
Pasul 1. Verificăm dacă ecuaţia dacă este o ecuaţie diferenţială totală exactă.
>> syms x y t y0 x0 C
>>f=y*exp(x*y)-4*x*y;
>> g=x*exp(x*y)-2*x^2;
>> d1=diff(f,y);
>> d2=diff(g,x);
>> d1==d2
ans =
1
Pasul 2. Deoarece ecuaţia este o ecuaţie diferenţială totală exactă, putem aplica
formula (8.11) pentru a determina soluţia sa.
>> phi=int(subs(subs(f,x,t),y,y0),t,x0,x)+int(subs(g,y,t),t,y0,y)-C
phi =
-exp(y0*x0)+2*y0*x0^2+exp(y*x)-2*x^2*y-C
5
b) 0dd1 yxxxyy
Pasul 1. Verificăm dacă ecuaţia dacă este o ecuaţie diferenţială totală exactă.
>> syms x y t y0 x0
>> f=y*(1+x*y);
>> g=-x;
>> d1=diff(f,y);
>> d2=diff(g,x);
>> d1==d2
ans =
0
Pasul 2. Deoarece ecuaţia nu este o ecuaţie diferenţială totală exactă trebuie să
determinăm factorul integrant cu (8.13),
>> phi=simple((diff(f,y)-diff(g,x))/(-f))
phi =
-2/y
>> miu=exp(int(phi,y))
miu =
1/y^2
Pasul 3. Putem aplica formula (8.11) pentru a determina soluţia ecuaţiei.
>> Phi=int(subs(subs(f*miu,x,t),y,y0),t,x0,x)+int(subs(g*miu,y,t),t,y0,y)-C
Phi =
1/2*x^2-1/2*x0^2+1/y0*(x-x0)+x*(-y+y0)/y/y0-C
>> Phi=simple(Phi);
>> Phi
Phi =
1/2*x^2-1/2*x0^2-1/y0*x0+x/y-C
ECUATII BERNOULLI
Ecuaţia diferenţială de forma
yxqyxpy (8.14)
constituie ecuaţia lui Bernoulli, qp, fiind funcţii continue.
6
Dacă
0 ecuaţia (8.14) devine o ecuaţie diferenţială liniară neomogenă;
1 ecuaţia (8.14) devine o ecuaţie diferenţială cu variabile separabile.
Altfel, adică pentru 1,0\ , folosind schimbarea de funcţie
1
1
zy , (8.15)
ecuaţia (8.14) se reduce la o ecuaţie diferenţială liniară neomogenă.
5) Să se rezolve ecuaţia diferenţială de tip Bernoulli:
a) 04 yxx
yy , 0x , 0y
>> y=dsolve('Dy-4*y/x-x*sqrt(y)','x')
y =
y^(1/2)-(1/2*log(x)+C1)*x^2 = 0
b) 22xyx
yy
>> y=dsolve('Dy=y/x-2*x*y^2','x')
y =
3*x/(2*x^3+3*C1)
c)
11
42 22
y
yxyyx
>> y=dsolve('2*x^2*Dy-4*x*y=y^2','y(1)=1',’x’)
y =
2*x^2/(-x+3)
Observaţie. Nu pot fi rezolvate probleme Cauchy decât în Matlab 7.0 nu şi în
versiunile precedente.
ECUATII RICCATI
O ecuaţie diferenţială, care este de forma
xryxqyxpy 2 (8.16)
reprezintă ecuaţia lui Riccati, rqp ,, fiind funcţii continue.
7
Dacă se cunoaşte o soluţie particulară xy p a sa, atunci folosind substituţia
zyy p
1 (8.17)
ecuaţia (8.17) devine o ecuaţie diferenţială liniară neomogenă.
6) Să se integreze ecuaţia de tip Riccati:
a) xxyxyyx 212 22 , 0x
>> y=dsolve('x*Dy=y^2-(2*x+1)*y+x^2+2*x','x')
y =
(-x-1+x^2*C1)/(-1+x*C1)
b) 01
22
2 x
yy
>> y=dsolve('2*Dy+y^2+1/(x^2)=0','x')
y =
(-2-log(x)+C1)/x/(-log(x)+C1)
c) 022 22 xyyxyxxx , 0x
>> y=dsolve('2*(x-x^2*sqrt(x))*Dy+2*sqrt(x)*y^2-y-x=0','x')
y =
-(x+C1*x^(1/2))*(x-x^(5/2))/(x^(1/2)-1)/(x+x^(1/2)+1)/x/(C1*x+1)
ECUATII OMOGENE CU COEFICIENTI CONSTANTI
O ecuaţie diferenţială de forma
011
10 yayayaya nn
nn . (8.18)
unde naaa ,,, 10 sunt constante reale, 00 a se numeşte ecuaţie diferenţială liniară
omogenă de ordinul n , cu coeficienţi constanţi.
Soluţiile ecuaţiei diferenţiale (8.18) depind de tipul rădăcinilor ecuaţiei
caracteristice.
0P ,
unde
nnnn aaaaP
11
10
8
reprezintă polinomul caracteristic ataşat ecuaţiei diferenţiale liniară omogenă de ordinul
n , cu coeficienţi constanţi din (8.18).
Cazul 1. Considerăm mai întâi cazul când rădăcinile ecuaţiei caracteristice sunt
reale şi analizăm pe rând subcazul când rădăcinile sunt distincte şi apoi cazul când
ecuaţia caracteristică are şi rădăcini multiple.
a) Presupunem că ecuaţia caracteristică are toate rădăcinile reale distincte n ,,1 .
Solutia generala a ecuatiei (8.18) este de forma
xnn
xxeCeCeCxy
22
11 . (8.19)
b) Dacă ecuaţia caracteristică are rădăcina 1 reală, multiplă, de ordinul p ,
np atunci solutia generala a ecuatiei (8.18) este de forma
xpp
xxexCxeCeCxy 111
21
1 ; (8.20)
această expresie a lui tx se mai numeşte contribuţia rădăcinii reale, multiple de ordinul
p , 1 , a ecuaţiei caracteristice la soluţia generală a ecuaţiei omogene.
c) Ecuaţia caracteristică are k rădăcini reale k ,,1 cu ordinele de multiplicitate
kpp ,,1 , npp k 1 . Solutia generala a ecuatiei (8.18) este de forma
xkkp
xp
xp exQexQexQxy
1
212
111 , (8.21)
unde
1211
ip
ipip xCxCCxQ (8.22)
este un polinom de grad cel mult 1ip .
Cazul 2. Presupunem că rădăcinile ecuaţiei caracteristice sunt complexe şi
analizăm pe rând subcazul când rădăcinile sunt distincte şi apoi cazul când ecuaţia
caracteristică are şi rădăcini multiple.
a) Presupunem că ecuaţia caracteristică are toate rădăcinile complexe distincte; rezultă
că ele sunt două câte două complex-conjugate. Solutia generala a ecuatiei (8.18) va
fi:
,sinsinsin
coscoscos
22
211
1
22
211
1
xeCxeCxeC
xeCxeCxeCxy
kxk
kxx
kxk
kxx
(8.23)
9
unde iC , iC , ki ,1 sunt constante arbitrare.
b) Dacă ecuaţia caracteristică are rădăcina complexă 111 i multiplă, de
ordinul 1p rezulta ca solutia generala a ecuatiei diferentiale va fi:
.sinsinsin
coscoscos
1111
111
211
1
1111
111
211
1
xexCxxeCxeC
xexCxxeCxeCxy
xpp
xx
xpp
xx
(8.24)
c) Ecuaţia caracteristică are rădăcinile complexe
jjj i
i
111
cu multiplicitatile jpp ,,1 , unde npp j 12 .
Solutia generala a ecuatiei diferentiale (8.18) va fi:
,sincossincos 111
1111xj
jjpjjpx
exxSxxRexxSxxRxy
(8.25)
unde
1
211
jp
jpjp xCxCCxR este un polinom de grad cel mult 1jp ,
1
211
jp
jpjp xCxCCxS este un polinom de grad cel mult 1jp .
Cazul 3. Presupunem că ecuaţia caracteristică are:
o radacinile reale j ,,1 , cu multiplicitatile jpp ,,1
si
o radacinile complexe
lllj
j
i
i
111
cu multiplicitatile ljj pp ,,1 , unde
npppp ljjj 11 2 .
Solutia generala a ecuatiei (8.18) va fi:
10
l
kkkjpkkjp
xkxij
iip xxSxxReexQxy
111
11 sincos
, (8.26)
unde
xQip 1 este un polinom de grad cel mult 1ip si are expresia (8.22),
1211
kp
kpkjp xcxccxR este un polinom de grad cel mult 1kp ,
1211
kp
kpkjp xcxccxS este un polinom de grad cel mult 1kp .
7) Să se determine soluţia generală a următoarelor ecuaţii diferenţiale omogene cu
coeficienţi constanţi:
a) 0 yy
>> y=dsolve('D2y=y','x')
y =
C1*exp(x)+C2*exp(-x)
b) 0454 yyy
>> y=dsolve('D4y+5*D2y+4*y=0','x')
y =
C1*sin(x)+C2*cos(x)+C3*sin(2*x)+C4*cos(2*x)
ECUATII NEOMOGENE CU COEFICIENTI CONSTANTI
O ecuaţie diferenţială de forma
xfyayayaya nnnn
11
10 , (8.27)
unde naaa ,,, 10 sunt constante reale, 00 a iar ICf 0: este o funcţie
continuă pe un interval I se numeşte ecuaţie diferenţială liniară neomogenă de
ordinul n cu coeficienţi constanţi.
Soluţia generală a acestei ecuaţii este suma dintre soluţia generală a ecuaţiei
omogene asociate şi o soluţie particulară (oarecare) a ecuaţiei neomogene; deci
xyxyxy po .
În cazul când f este o funcţie oarecare, pentru determinarea unei soluţii particulare
a ecuaţiei neomogene se utilizează metoda variaţiei constantelor (sau metoda
11
constantelor variabile) a lui Lagrange; soluţia particulară a ecuaţiei neomogene poate fi
găsită sub forma
xyxCxyxCxyxCxy nnp 2211 ,
unde xCxCxC n ,, 21 reprezintă soluţia sistemului algebric, liniar, de n ecuaţii,
cu n necunoscute, neomogen:
.
0
0
0
0
1122
111
2222
211
2211
2211
a
xfxyxCxyxCxyxC
xyxCxyxCxyxC
xyxCxyxCxyxC
xyxCxyxCxyxC
nnn
nn
nnn
nn
nn
nn
Observaţie. Dacă ordinul ecuaţiei diferenţiale neomogene este mare, atunci
calculele pentru determinarea soluţiei particulare devin laborioase, deoarece sistemul care
rezultă prin aplicarea metodei variaţiei constantelor are n ecuaţii, şi n funcţii
necunoscute.
În cazul când xf are o formă particulară se utilizează metoda coeficienţilor
nedeterminaţi (sau a identificării).
Distingem următoarele situaţii:
Situatia 1. Membrul drept al ecuaţiei diferenţiale (8.27) este de forma
constCxf .
a) Daca 00
nu este rădăcină a ecuaţiei caracteristice, atunci ecuaţia diferenţială
(8.27) are o soluţie particulară de forma
n
pa
Cxy . (8.28)
b) Daca 0 este rădăcină multiplă de ordinul mm
a ecuaţiei caracteristice atunci
ecuaţia diferenţială (8.27) are o soluţie particulară de forma
mn
m
pam
xCxy
!. (8.29)
Situatia 2. Membrul drept al ecuaţiei diferenţiale (8.27) are forma
12
xCexf ,
unde
este o constanta.
a) Daca 0
nu este rădăcină a ecuaţiei caracteristice, atunci ecuaţia diferenţială
(8.27) are o soluţie particulară de forma
P
eCxy
x
p
. (8.30)
b) Daca este rădăcină multiplă de ordinul m a ecuaţiei caracteristice atunci
ecuaţia diferenţială (8.27) are o soluţie particulară de forma
m
xm
pP
exCxy
. (8.31)
Situatia 3. Membrul drept al ecuaţiei diferenţiale (8.27) este de forma
xPxf m ,
unde xPm este un polinom de gadul m .
a) Daca 0 nu este rădăcină a ecuaţiei caracteristice, atunci ecuaţia diferenţială
(8.27) are o soluţie particulară de forma
xQxy mp , (8.32)
unde tQm
xQm este un polinom de acelaşi grad ca şi tPm
xPm , ai cărui coeficienţi se
determină prin identificare, punând condiţia ca xy p să verifice ecuaţia neomogenă.
b) Daca 0 te rădăcină multiplă de ordinul rr
a ecuaţiei caracteristice atunci ecuaţia
diferenţială (8.27) are o soluţie particulară de forma
xQxxy mr
p , (8.33)
unde xQm este un polinom de acelaşi grad ca şi xPm .
Situatia 4. Membrul drept al ecuaţiei diferenţiale (8.27) este de forma
xPexf mx .
a) Daca
is nu este rădăcină a ecuaţiei caracteristice, atunci ecuaţia
diferenţială (8.27) are o soluţie particulară de forma
xQexy mx
p , (8.34)
13
unde tQm
xQm este un polinom de acelaşi grad ca şi tPm
xPm , tPm
ai cărui coeficienţi se
determină prin identificare, punând condiţia ca tx p
xy p din (8.34) să verifice ecuaţia
neomogenă.
b) Daca
este rădăcină multiplă de ordinul rr
a ecuaţiei caracteristice, atunci
ecuaţia diferenţială (8.27) are o soluţie particulară de forma
xPxexy mrx
p . (8.35)
Situatia 5. Membrul drept al ecuaţiei diferenţiale (8.27) este de forma
xNxMxf sincos .
a) Daca i i
nu este rădăcină a ecuaţiei caracteristice, atunci ecuaţia
diferenţială (8.27) are o soluţie particulară de forma
xBxAxy p sincos . (8.36)
b) Daca i este rădăcină multiplă de ordinul mm
a ecuaţiei caracteristice,
atunci ecuaţia diferenţială (8.27) are o soluţie particulară de forma
xBxAxxy mp sincos . (8.37)
Situatia 6. Membrul drept al ecuaţiei diferenţiale (8.27) este de forma
xxQxxPexf mmx sincos .
a) Daca i nu este rădăcină a ecuaţiei caracteristice, atunci ecuaţia
diferenţială (8.27) are o soluţie particulară de forma
xxSxxRexy mmx
p sincos . (8.38)
b) Daca i este rădăcină multiplă de ordinul r
r a ecuaţiei caracteristice,
atunci ecuaţia diferenţială (8.27) are o soluţie particulară de forma
xxSxxRexxy mmxr
p sincos . (8.39)
Situatia 7. Membrul drept al ecuaţiei diferenţiale (8.27) este de forma
xfxfxf k 1 ,
cu tf i
xfi de forma din situaţiile 1- 6.
În acest caz, ecuaţia diferenţială (8.27) are o soluţie particulară de forma
14
xyxyxy pkpp 1 , (8.40)
cu tx pi
xy pi corespunzător lui tf i
xfi .
8) Să se determine soluţia generală a următoarelor ecuaţii diferenţiale neomogene cu
coeficienţi constanţi:
a) 210665 2 xxyyy
>> y=dsolve('D2y-5*Dy+6*y=6*x^2-10*x+2','x')
y =
exp(3*x)*C2+exp(2*x)*C1+x^2
b) xxyyy 2sin102cos26
>> y=dsolve('D2y+Dy-6*y=2*cos(2*x)-10*sin(2*x)','x')
y =
exp(-3*x)*C2+exp(2*x)*C1+sin(2*x)
c) xyyyy xe33 , 0x
>> y=dsolve('D3y-3*D2y+3*Dy-y=exp(x)*sqrt(x)','x')
y =
8/105*x^(7/2)*exp(x)+C1*exp(x)+C2*exp(x)*x+C3*exp(x)*x^2
d) xxy sin
>> y=dsolve('D2y=x+sin(x)','x')
y =
1/6*x^3-sin(x)+C1*x+C2
e) xy ln , 0x
>> y=dsolve('D3y=ln(x)','x')
y =
1/6*x^3*log(x)-11/36*x^3+1/2*x^2*C1+C2*x+C3
ECUATII EULER
O ecuaţie diferenţială liniară neomogenă de ordin superior cu coeficienţi variabili
se poate reduce la o ecuaţie cu coeficienţi constanţi, numită ecuaţia lui Euler:
xfyayxayxayxa nnn
nnn
0111
1 , (4.1)
15
cu niai ,0, , iar f o funcţie continuă.
Ecuaţia lui Euler se reduce la o ecuaţie cu coeficienţi constanţi prin schimbarea
variabilei independente tx e .
9) Să se integereze ecuaţiile diferenţiale Euler următoare
a) xxxyxyx ln62
>> y=dsolve('x^2*D2y-x*Dy+y=6*x*ln(x)','x')
>> y=dsolve('x^2*D2y-x*Dy+y=6*x*ln(x)','x')
y =
x*C2+log(x)*x*C1+log(x)^3*x
b) xyyx 1
>> y=dsolve('x*D3y+D2y=1+x','x')
y =
1/12*x^3+x*log(x)*C1-C1*x+1/2*x^2+C2*x+C3
c) 1863237232
xyxyx
>> y=dsolve('(3*x+2)^2*D2y+7*(3*x+2)*Dy=-63*x+18','x')
y =
-1/4*C1/(3*x+2)^(4/3)+15*log((3*x+2)^(1/3))-3*x+C2
d)
12
12
22
01
y
y
y
yxy
>> y=dsolve('D3y*(x-1)-D2y=0','y(2)=2','Dy(2)=1','D2y(2)=1','x')
y =
5/6+1/6*(x-1)^3+1/2*x
Tema
1. Rezolvaţi ecuaţia diferenţială cu variabile separabile:
a) 01 2 yxyy
b)
1
1
2
2
xx
yyy
16
2. Să se integreze ecuaţia diferenţială totală:
0d2d3 22 yxyxyx .
3. Să se rezolve ecuaţiile diferenţiale omogene şi reductibile la omogene:
a) 22
2
yx
xyy
b)
1231
12312
2
2
yxxyx
yxxyxy
c) 22 yxyyx .
4. Să se rezolve ecuaţia diferenţială neomogenă:
a) 2
e4 xxxyy
b) xxyy costg .
5. Să se rezolve ecuaţia diferenţială de tip Bernoulli:
a) 23 xyxyy
b) 22
1
yxx
yy , 0x , 0y .
6. Să se integreze ecuaţia diferenţială de tip Riccati:
a) 122 xyy
b) 3
2
2
12
2 xy
xy
xy .
7. Să se determine soluţia generală a următoarelor ecuaţii diferenţiale omogene cu
coeficienţi constanţi:
a) 0 yyy
b) 013175 yyyy
c) 043534 yyyyy
d) 016913945011 45 yyyyyy .
17
8. Să se determine soluţia generală a următoarelor ecuaţii diferenţiale neomogene cu
coeficienţi constanţi:
a) x
yyye1
123
b) x
x
xxyyy 3
3
2
e269
66
c) xyy 3cos43
d) xxyy e4 25
e) xyy 127 .
9. Să se integereze ecuaţiile diferenţiale Euler următoare:
a) xxyxyx lnsin22
b) xyyxyxyx 23 3 .
1
Laborator 9. Rezolvarea sistemelor de ecuatii diferentiale în Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
SISTEME OMOGENE
Un sistem de ecuaţii diferenţiale de forma
,2211
222221212
112121111
xfyayayay
xfyayayay
xfyayayay
nnnnnnn
nn
nn
(9.1)
unde
x
yy k
kd
d , nk ,1 ,
ija
ija nji ,1, sunt constante reale,
ICfi0 , nji ,1, , I ,
ICyy n1
1 ,, sunt funcţii necunoscute,
se numeşte sistem de ecuaţii diferenţiale liniare de ordinul I şi neomogen cu coeficienţi
constanţi.
Functiile ija
ija se numesc coeficientii sistemului.
If 01 nff pe I, sistemul se numeste omogen, este numit neomogen.
Problema Cauchy asociată sistemului (9.1) constă din acest sistem căruia îi ataşăm
condiţiile iniţiale
.00
0101
nn yxy
yxy
Sistemul (9.1) poate fi rezolvat prin următoarele două metode:
Metoda ecuaţiei caracteristice
2
Metoda eliminării constă în reducerea sistemului de ecuaţii diferenţiale la o
singură ecuaţie diferenţială liniară de ordinul nn
, pentru una din funcţiile
necunoscute ale sistemului şi rezolvarea apoi a acestei ecuaţii.
1) Să se rezolve următorul sistem de ecuaţii diferenţiale liniare omogen:
a)
12
21
yy
yy
>> [y1,y2]=dsolve('Dy1=y2','Dy2=-y1','x')
y1 =
-C1*cos(x)+C2*sin(x)
y2 =
C1*sin(x)+C2*cos(x)
b)
213
32
321
2
43
yyy
yy
yyy
>> [y1,y2,y3]=dsolve('Dy1=3*y2-4*y3','Dy2=-y3','Dy3=-2*y1+y2','x')
y1 =
exp(-x)*C1+5/2*C2*exp(-2*x)+5*C3*exp(3*x)
y2 =
exp(-x)*C1+C2*exp(-2*x)+C3*exp(3*x)
y3 =
exp(-x)*C1+2*C2*exp(-2*x)-3*C3*exp(3*x)
c)
10
10
20
62
24
3
3
2
1
3213
3212
3211
y
y
y
yyyy
yyyy
yyyy
>>[y1,y2,y3]=dsolve('Dy1=y1+y2-3*y3','Dy2=4*y1+y2-2*y3','Dy3=2*y1+y2-
6*y3','y1(0)=2','y2(0)=1','y3(0)=-1','x')
y1 =
-13/14*exp(-5*x)+3/2*exp(-x)+10/7*exp(2*x)
3
y2 =
-3*exp(-x)+4*exp(2*x)
y3 =
-13/7*exp(-5*x)+6/7*exp(2*x)
SISTEME NEOMOGENE
Soluţia generală a sistemului neomogen (9.1) este suma dintre soluţia generală a
sistemului omogen şi o soluţie particulară a sistemului neomogen.
O soluţie particulară a sistemului neomogen se poate determina cu ajutorul metodei
variaţiei constantelor.
2) Să se rezolve următorul sistem de ecuaţii diferenţiale liniare neomogen:
a)
xx eeyy
yy
12
21
>> [y1,y2]=dsolve('Dy1=y2','Dy2=y1+exp(x)+exp(-x)','x')
y1 =
exp(x)*C2+exp(-x)*C1+1/2*x*exp(x)-1/4*exp(-x)-1/4*exp(x)-1/2*exp(-x)*x
y2 =
exp(x)*C2-exp(-x)*C1+1/2*x*exp(x)-1/4*exp(-x)+1/4*exp(x)+1/2*exp(-x)*x
b)
33
23
213
2312
2321
xyyy
xyyy
xxyyy
>> [y1,y2,y3]=dsolve('Dy1=y2+y3-x-x^2','Dy2=3*y1+y3-2-x^2','Dy3=3*y1+y2+x-
3','x')
y1 =
1+2/3*C2*exp(3*x)-C3*exp(-2*x)
y2 =
x+exp(-x)*C1+C2*exp(3*x)+C3*exp(-2*x)
y3 =
-exp(-x)*C1+C2*exp(3*x)+C3*exp(-2*x)+x^2
4
3) Să se determine soluţia sistemului de ecuaţii diferenţiale de ordinul întâi
.20
10
24d
d2
d
d
14d
d
d
d
y
x
txyt
y
t
x
xyt
y
t
x
>> [x,y]=dsolve('Dx-Dy=y-4*x+1','Dx+2*Dy=4*y+2*x+t','x(0)=-1','y(0)=2','t')
x =
17/108-244/135*exp(-3*t)+13/20*exp(2*t)-1/18*t
y =
122/135*exp(-3*t)+13/10*exp(2*t)-11/54-2/9*t
4)
Tema
1) Să se rezolve următorul sistem de ecuaţii diferenţiale liniare omogen:
a)
213
132
321
yyy
yyy
yyy
b)
3213
3212
3211
23
8610
222
yyyy
yyyy
yyyy
c)
.06143d
d
025d
d
0483d
d
uzyx
u
uzyx
z
uzyx
y
2) Să se rezolve următorul sistem de ecuaţii diferenţiale liniare neomogen:
a)
xyyyy
yy
xyyyy
1
1
222
3213
12
3211
5
b) 0,
d
d
1
d
d
t
txt
yt
ty
t
xt
c)
x
x
x
yyy
yyy
yyy
e
e
e
213
312
321
d)
.12d
d
12d
d
14d
d
xzyt
z
zxyt
y
xyzt
x
3) Rezolvaţi problema Cauchy:
a)
10
10
20
62d
d
24d
d
3d
d
z
y
x
zyxt
z
zyxt
y
zyxt
x
b)
40
30
20
26143
125
1483
3
2
1
3213
3212
3211
y
y
y
yyyy
yyyy
yyyy
6
c)
30
20
324d
d3
12d
d3
y
x
tyxt
y
tyxt
x
1
Laborator 10. Reprezentări grafice în plan în Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 dispune de funcţii speciale care permit realizarea reprezentărilor grafice 2D.
Reprezentarea datelor în coordonate carteziene este realizată utilizând funcţia plot.
plot(f) Reprezintă grafic funcţia f
plot(f,linie,marker,culoare) Reprezintă grafic funcţia f utilizând un anumit stil de linie, un
anumit simbol de marker şi o anumită culoare
plot(f,g) Reprezintă grafic simultan două funcţii f şi g în acelaşi sistem de
coordonate
plot(f,g,linie,marker,culoare) Reprezintă grafic simultan două funcţii f şi g în acelaşi sistem de
coordonate, utilizând un anumit stil de linie, un anumit simbol de
marker şi o anumită culoare
ezpolar(f) Reprezintă grafic în coordonate polare curba f în domeniul
20 (nu apare la versiunile precedente de Matlab)
comet(x,y) Repezentarea dinamică a vectorului y în funcţie de vectorul x
Observaţie. Vom lista codurile corespunzătoare fiecărui stil de linie, fiecărui simbol
de marker şi fiecărei culori folosite într-o reprezentare grafică 2D:
Specificatori ai stilurilor de linie
Specificator Stilul de linie
- Linie continuă
-- Linie întreruptă
: Puncte
-. Linie- punct
Simboluri de markere
Specificator Tipul de marker
2
+ Semnul plus
o Cerc
* Steluţă
. Punct
x x
„square‟ sau s Pătrat
„diamond‟ sau d Romb
„pentagram‟ sau p Pentagon
„hexagram‟ sau h Hexagon
^ Triunghi cu vârful în sus
v Triunghi cu vârful în jos
< Triunghi cu vârful spre stânga
> Triunghi cu vârful spre dreapta
Specificatori de culori
Specificator Culoarea
r Roşu
g Verde
b Albastru
c Albastru deschis
m Mov
y Galben
k Negru
w Alb
Aplicaţii
REPREZENTAREA CARTEZIANA
1) Reprezentaţi grafic următoarele funcţii în plan:
a) 21
2arcsin
x
xxf
, 5,5x
Pasul 1. Se fixează intervalul pe care va fi reprezentată funcţia şi un anumit pas.
>>x=-5:0.1:5;
3
Pasul 2. Definim funcţia ce urmează să fie reprezentată.
>> f=@(x) asin(2*x./(1+x.^2));
Pasul 3. Realizăm reprezentarea grafică.
>> plot(f(x),'m','LineWidth',4)
0 20 40 60 80 100 120-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
b) 1e1
xxxf , 10,10x
>> x=-10:0.01:10;
>> f=@(x) abs(x+1).*exp(-abs(x-1))
f =
@(x) abs(x+1).*exp(-abs(x-1))
>> plot(f(x),'k','LineWidth',5)
0 500 1000 1500 2000 25000
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
c) xxf arcsin , xxg arccos , 1,1x
>>x=-1:0.01:1;
>> f=@(x) asin(x);
>> g=@(x) acos(x);
4
>> plot(x,f(x),'k',x,g(x),'b','LineWidth',3)
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-2
-1
0
1
2
3
4
REPREZENTAREA GRAFICĂ A UNOR CURBE REMARCABILE DIN GEOMETRIE
2) Reprezentaţi grafic următoarele curbe remarcabile din geometrie:
a) Elipsa:
- are ecuaţia carteziană implicită: 12
2
2
2
b
y
a
x;
- este caracterizată de ecuaţiile parametrice:
2,0,
s
ct
tinby
ostax.
>> a=2;b=1; x=-a:0.001:a;
>> y=(b/a)*sqrt(a^2-x.^2);
>> y1=-(b/a)*sqrt(a^2-x.^2);
>> plot(x,y,'b',x,y1,'b','LineWidth',4)
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
5
b) Hiperbola:
- are ecuaţia carteziană implicită: 12
2
2
2
b
y
a
x;
- este caracterizată de ecuaţiile parametrice:
t
tby
tax,
sh
ch daca ,ax ,
tby
tax
sh
ch, t daca ax , .
>> a=2;b=1;
>> t=-2:0.02:2;
>> x=a*cosh(t); y=b*sinh(t);
>> plot(x,y,'r',-x,-y,'r','LineWidth',4)
>>grid
-8 -6 -4 -2 0 2 4 6 8-4
-3
-2
-1
0
1
2
3
4
c) Parabola:
- are ecuaţia carteziană implicită:
0,2
0,22
xpx
xpxy
- are ecuaţiile parametrice
t
ty
p
tx
,2
2
.
>> p=2;
>> t=-2:0.001:2;
6
>> x=t.^2/(2*p); y=t;
>> plot(x,y,'m','LineWidth',4)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
d) Astroida:
- are ecuaţia carteziană implicită:
3
2
3
2
3
2
ayx ;
- are ecuaţiile parametrice
2,0,sin
cos
3
3
t
tay
tax
>> a=1;
>>t=0:0.01*pi:2*pi;
>> x=@(t) a*cos(t).^3;
>> y=@(t) a*sin(t).^3;
>> plot(x(t),y(t),'r','LineWidth',4)
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
7
e) Cardioida:
- are ecuaţiile parametrice:
2,0,
cos1sin
cos1cos
t
ttay
ttax.
>> a=5;
>> t=0:0.01*pi:2*pi;
>>x=@(t) a*cos(t).*(1-cos(t));
>>y=@(t) a*sin(t).*(1-cos(t));
>> plot(x(t),y(t),'b', 'LineWidth',4)
-10 -8 -6 -4 -2 0 2-8
-6
-4
-2
0
2
4
6
8
f) Lemniscata lui Bernoulli:
- are ecuaţiile parametrice:
2,0,
sin1
cossin
sin1
cos
2
2
t
t
ttay
t
tax
.
>> a=5;
>> t=0:0.001*pi:2*pi;
>> x=@(t) a*cos(t)./(1+sin(t).^2);
>> y=@(t) a*sin(t).*cos(t)./(1+sin(t).^2);
>> plot(x(t),y(t),'b', 'LineWidth',4)
8
-5 -4 -3 -2 -1 0 1 2 3 4 5-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
g) Curba Butterfly
- are ecuaţiile parametrice:
2,0,
12sin4cos2cos
12sin4cos2sin
5cos
5cos
tt
tety
ttetx
t
t
.
>> t=0:0.001*pi:2*pi;
>> x=@(t) sin(t).*(exp(cos(t))-2*cos(4*t)+sin(t/12).^5);
>> y=@(t) cos(t).*(exp(cos(t))-2*cos(4*t)+sin(t/12).^5);
>> plot(x(t),y(t), 'k','LineWidth',4)
-3 -2 -1 0 1 2 3-2
-1
0
1
2
3
4
REPREZENTAREA GRAFICA A SOLUTIILOR UNEI ECUATII DIFERENTIALE
O ecuatie diferentiala de forma
yByxAy , (10.1)
in care BA, sunt functii continue reprezinta o ecuatie Lagrange.
9
Notand
xpypx
ypy dd
d
d (10.2)
ecuatia (10.1) devine
pBpxAy ; (10.3)
prin diferentiere obtinem:
ppBpAxxpAxp ddd ,
adica
ppBpAxxpAp dd .
Daca
1. 0 pAp
atunci rezulta
pAp
pBx
pAp
pA
p
x
d
d,
o ecuatie diferentiala neomogena, avand solutia generala:
ppAp
pBCx
ppAp
pAp
pAp
pA
dee
dd
. (10.4)
Din (10.3) si (10.4) deducem ca solutia generala a ecuatiei Lagrange este:
pBp
pAp
pBCpAy
ppAp
pAp
pAp
pA
dee
dd
. (10.5)
2. pAp se anuleaza pe intervalul comun de definitie al functiilor A si B ,
atunci vom nota cu 1p solutia ecuatiei:
0 pAp (10.6)
careia îi corespunde o solutie a ecuatiei Lagrange, adica
11 pBpxAy . (10.7)
Ecuatia Lagrange admite ca solutii singulare, drepte de forma (10.7), ce constituie
solutiile ecuatiei (10.6).
10
Solutia singulara este solutia care are proprietatea ca prin fiecare punct al sau, trece
cel putin o solutie a ecuatiei diferentiale. Solutia singulara nu poate fi obtinuta din solutia
generala a ecuatiei diferentiale, pentru nici o valoare a constantei C .
Din punct de vedere geometric, solutia singulara este infasuratoarea familiei de
curbe, care definesc solutia generala a ecuatiei diferentiale.
Infasuratoarea unei familii de curbe este curba, care este tangenta in fiecare punct
al sau, unei curbe din familia respectiva (vezi fig. de mai jos).
3) Reprezentati grafic in Matlab 7.0 solutiile ecuatiei diferentiale Lagrange:
32
27
8
9
4yyyx .
>> y=dsolve('x-y=(4/9)*Dy^2-(8/27)*Dy^3','x')
y =
-4/27+x
C1+(x-C1)^(3/2)
C1-(x-C1)^(3/2)
>> t=-12:0.1:12;
>>C1=12 ;
>> x=(t.^2).^(1/3)+C1;
>> y=t+C1;
>>C2=11;
>> x1=(t.^2).^(1/3)+C2 ;
>> y1=t+C2;
>>C3=8;
>> x2=(t.^2).^(1/3)+C3 ;
>> y2=t+C3;
>>C4=2 ;
11
>>x4=(t.^2).^(1/3)+C4 ;
>> y4=t+C4;
>>C5=10;
>>x5=(t.^2).^(1/3)+C5 ;
>> y5=t+C5 ;
>> x3=-15:15;
>> y3=-4/27+x3;
>> plot(x,y,'b',x1,y1,'b',x2,y2,'b',x4,y4,'b',x5,y5,'b',x3,y3,'m','LineWidth',2)
O ecuatie diferentiala de forma
yByxy , (10.8)
B fiind o functie continua reprezinta o ecuatie Clairaut.
Notand
py
ecuatia (10.8) devine
pBpxy ; (10.9)
prin diferentiere, obtinem:
ppBpxxpxp dddd ,
12
adica
0d ppBx .
Daca
1. Cpp 0d ;
atunci din (10.9) obtinem
CBCxy , (10.10)
ecuatie care reprezinta a familie drepte din plan, ce constituie solutia generala a ecuatiei
Clairaut.
2. pBxpBx 0 ;
se obtine solutia singulara a ecuatiei Clairaut:
pBpBpy . (10.11)
4) Reprezentati grafic solutiile ecuatiei diferentiale Clairaut:
24yyxy .
Vom determina solutiile ecuatiei diferentiale in Matalb 7.9:
>> y=dsolve('y=x*Dy-4*Dy^2','x')
y =
x^2/16
C*x - 4*C^2
>> t=-2:0.1:2;
>> x=t;
>> y=t.^2/16;
>>C=0.01;
>>y1=C*x-4*C^2
>>C1=0.04;
>>y2=C1*x-4*C1^2 ;
>> C2=0.09;
>> y3=C2*x-4*C2^2;
>> plot(x,y,'b',x,y1,x,y2,x,y3,'LineWidth',2)
13
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
REPREZENTAREA POLARA
5) Reprezentaţi grafic în coordonate polare trifoiul cu patru foi:
2,0,2sin ttatf .
>> a=2; t=0:pi/30:2*pi;
>> f=@(t) a*sin(2*t);
>> ezpolar(f)
0.5
1
1.5
2
30
210
60
240
90
270
120
300
150
330
180 0
r = a sin(2 t)
REPREZENTAREA DINAMICA
6) Reprezentaţi grafic dinamic funcţia:
,,tgsinsintg ttttf
>> t = -pi:pi/200:pi;
14
>> comet(t,tan(sin(t))-sin(tan(t)))
Tema
1. Reprezentaţi grafic în plan următoarele funcţii:
a)
2
1
5ln
5
x
xxf , 5,3x
b) xxf x sine sin , 2,0x
c) 2
2
1
1arcos
x
xxf
, 10,10x
d)
xgxfxh
xxfxg
x
xxxf
23cos
4
1
32
32
2
22
, 5,5x .
2. Reprezentaţi grafic următoarele curbe remarcabile din geometrie:
a) Cercul
- are ecuaţia carteziană implicită:
220
20 ryyxx ;
- are ecuaţiile parametrice: 2,0,ints
cos
0
0
t
ryy
trxx.
15
b) Cicloida
- are ecuaţiile parametrice:
t
trty
ttrtx,
cos1
sin.
3. Reprezentaţi grafic dinamic funcţia:
20,2, tttf .
4. Reprezentaţi grapfic în coordonate polare următoarele funcţii:
a) Cardioida:
2,0,cos1 af .
b) Scarabaeus:
2,0,cos2cos ttatbtf .
1
Laborator 11. Reprezentări grafice în spatiu în Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 dispune de funcţii speciale care permit realizarea reprezentărilor grafice 3D,
funcţii ilustrate mai jos.
Aplicaţii rezolvate
GENERAREA VECTORILOR CU PAS LINIAR
1. Sa se genereze un vector X cu 5 componente, cuprinse în intervalul 3,2 .
>> X=linspace(-2,3,5)
Funcţia Semnificaţie
ellipsoid(xc,zc,yc,a,b,c) reprezintă grafic elipsoidul de ecuaţie
1
2
2
2
2
2
2
c
zcz
b
ycy
a
xcx
X=linspace(x1,x2,n) Generează un vector X cu n componente, cuprinse în
intervalul 2,1 xx . Pasul dintre doua componente este
112 nxxpas . Daca valoarea lui n este omisa,
atunci aceasta este considerata implicit egala cu 100.
[X,Y]=meshgrid(x,y) Returnează în matricele X şi Y , perechile de coordonate ale
tuturor punctelor din domeniul definit de vectorii x şi y ;
matricele sunt utile pentru reprezentări grafice 3D.
mesh(X,Y,Z) Reprezintă grafic suprafaţa YXZ , sub forma unei retele
plot3(X,Y,Z) Reprezintă grafic câte o linie în spaţiu prin punctele ale căror
coordonate sunt elementele matricelor X , Y , Z
plot3(X1,Y1,Z1,’linie
tip1’,X2,Y2,Z2,’linie tip2…)
Realizează reprezentări grafice 3D multiple, tipurile şi
culorile liniilor precizându-se precum în cazul funcţiei plot
2
X =
-2.0000 -0.7500 0.5000 1.7500 3.0000
GENERAREA UNEI RETELE (MESH)
2. Sa se genereze matricele X şi Y pentru domeniul:
22 x , 33 y
cu pasul 1 pe axa Ox si pasul 3 pe axa Oy .
Apeland in Matlab7.0 instructiunea
>> [X,Y]=meshgrid(-2:2,-3:3:3)
rezulta
X =
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
Y =
-3 -3 -3 -3 -3
0 0 0 0 0
3 3 3 3 3
REPREZENTAREA 3D A SUPRAFETELOR
3. Reprezentaţi grafic în 3D următoarele suprafeţe:
a) yxyxyxf cossin, 22 , 9,3x , 6,3y
>> [x,y]=meshgrid(-3:.1:9,-3:.1:6);
>>z=sin(sqrt(x.^2+y.^2))+cos(x+y);
>> mesh(x,y,z);
-5
0
5
10
-5
0
5
10-2
-1
0
1
2
3
b) 44, yxyxf , 3,3, yx
>> [x,y]=meshgrid(-3:.1:3,-3:.1:3);
>> z=x.^4-y.^4;
>> mesh(x,y,z);
3. Reprezentaţi grafic următoarele cuadrice:
a) Elipsoidul
>> ellipsoid(3,-2,1,9,4,1)
-10-5
05
1015
-6
-4
-2
0
20
0.5
1
1.5
2
b) Hiperboloidul cu o pânză:
- are ecuaţia în coordonate carteziene
012
2
2
2
2
2
c
z
b
y
a
x, 0 ba , 0c ;
- are reprezentarea parametrică:
-4
-2
0
2
4
-4
-2
0
2
4-100
-50
0
50
100
4
cuz
vuby
vuax
sin1
cos1
2
2
, u , 2,0v .
>> a=7;c=2;b=3;
>>u=linspace(-1,1,300);v=linspace(0,2*pi,300);
>> x=a*cos(v)'*sqrt(1+u.^2);y=b*sin(v)'*sqrt(1+u.^2);z=c*ones(size(v))'*u;
>> mesh(x,y,z)
c) Paraboloidul hiperbolic:
- are ecuaţia în coordonate carteziene
zb
y
a
x2
2
2
2
2 , 0,0 ba ;
- are reprezentarea parametrică:
uvz
uvby
uvax
2cos
sin2
cos2
, 2,0u , 0v .
>>a=3;b=2;
>> [x,y]=meshgrid(-60:15/6:90,-50:5/2:50);
>> z=x.^2/(2*a^2)-y.^2/(2*b^2);
>> mesh(x,y,z);
5
-100
-50
0
50
100
-50
0
50-400
-200
0
200
400
600
d) Cilindrul:
- are ecuaţia în coordonate carteziene
222 Ryx ;
- are reprezentarea parametrică:
vz
uRy
uRx
sin
cos
, 2,0u , hv ,0 .
>> R=0.5;
>> u=linspace(0,2*pi,200);
>> v=linspace(0,50,200);
>> x=R*cos(u)'*ones(size(v));
>> y=R*sin(u)'*ones(size(v));
>> z=ones(size(u))'*v;
>> mesh(x,y,z)
-0.5
0
0.5
-0.5
0
0.50
10
20
30
40
50
6
e) Conul de rotaţie:
- are ecuaţia în coordonate carteziene
0
2
2
2
2
2
c
z
a
yx, 0, ca ;
- are reprezentarea parametrică:
cvz
uavy
uavx
sin
cos
, v .
>> a=1; c=2;
>> u=linspace(0,2*pi,200);
>>v=linspace(0,50,200);
>> x=a*cos(u)'*v;
>> y=a*sin(u)'*v;
>> z=c*ones(size(u))'*v;
>>mesh(x,y,z)
-50
0
50
-50
0
500
20
40
60
80
100
f) Hiperboloidul cu două pânze:
- are ecuaţia în coordonate carteziene
012
2
2
2
2
2
c
z
b
y
a
x, 0 ba , 0c ;
- are reprezentarea parametrică:
ucz
vuby
vuax
cosh
sinsinh
cossinh
, u , 2,0v .
7
>> a=3;c=3;b=2;
>> u=linspace(-3,3,200);v=linspace(0,2*pi,200);
>> x=a*cos(v)'*sinh(u);y=b*sin(v)'*sinh(u);
>>z=c*ones(size(v))'*cosh(u);z1=-c*ones(size(v))'*cosh(u);
>> plot3(x,y,z,x,y,z1,'LineWidth',8);
-40
-20
0
20
40
-40
-20
0
20
40-50
0
50
g) Conul de ordin doi:
- are ecuaţia în coordonate carteziene
02
2
2
2
2
2
c
z
b
y
a
x, 0 ba , 0c ;
- reprezentarea parametrică:
cvz
ubvy
uavx
sin
cos
, v , 2,0u .
>> a=4;b=3;c=2;
>> u=linspace(0,2*pi,200);
>>v=linspace(0,50,200);
>> x=a*cos(u)'*v;
>> y=b*sin(u)'*v;
>> z=c*ones(size(u))'*v;
>> z1=-c*ones(size(u))'*v;
>> plot3(x,y,z,x,y,z1,’LineWidth’,8)
8
-200
-100
0
100
200
-200
-100
0
100
200-100
-50
0
50
100
4. Reprezentaţi grafic arcul de elice:
ua
z
uRy
uRx
2
sin
cos
, 2,0u .
>> R=4;a=1;
>> u=linspace(0,2*pi,200);
>> x=R*cos(u)'*ones(size(u)); y=R*sin(u)'*ones(size(u)); z=(a/(2*pi))*u'*ones(size(u));
>> mesh(x,y,z, 'LineWidth',8)
-4
-2
0
2
4
-4
-2
0
2
40
0.2
0.4
0.6
0.8
1
5. Reprezentaţi grafic urmatoarele suprafeţe algebrice remarcabile:
a) Bohemian Dome:
vcz
uavby
uax
sin
sincos
cos
, 2,0, vu , 5.0a , 5.1b , 1c
9
>> a=0.5;c=1;b=1.5;
>> u=linspace(0,2*pi,100);v=linspace(0,2*pi,100);
>> x=a*ones(size(v))'*cos(u);
>> y=b*cos(v)'*ones(size(u))+a*ones(size(v))'*sin(u);
>> z=c*sin(v)'*ones(size(u));
>> mesh(x,y,z)
-0.5
0
0.5-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-1
-0.5
0
0.5
1
b) Astroidal Ellipsoid:
vcz
vuby
vuax
3
33
33
sin
cossin
coscos
,
2,
2u , ,v , 1a , 05.0b , 7.0c .
>> a=1;b=0.05;c=0.7; u=linspace(-pi/2,pi/2,500);v=linspace(-pi,pi,500);
>> x=a*(cos(v).^3)'*cos(u).^3; y=b*(cos(v).^3)'*sin(u).^3;
>> z=b*(sin(v).^3)'*ones(size(u));
>> mesh(x,y,z)
-1
-0.5
0
0.5
1
-0.05
0
0.05-0.05
0
0.05
10
Aplicaţii propuse
1. Reprezentaţi grafic în 3D următoarele suprafeţe:
a. 322
20,
yx
yxf
, 3,1x , 6,6y ;
b. 3221
,
yx
xyyxf
, 10,10x , 6,6y ;
c. xyyxf 3sin, , ,0, yx ;
d. 21, yxyxf , 4,1, yx .
2. Reprezentaţi grafic:
a) Sfera
- are ecuaţia în coordonate carteziene
2222 Rzyx
- are reprezentarea parametrică:
cos
sinsin
cossin
z
y
x
, 0 , ,0 , 2,0 .
b) Paraboloidul eliptic
- are ecuaţia în coordonate carteziene
zb
y
a
x2
2
2
2
2 , 0 ba ;
- are reprezentarea parametrică:
vz
uvby
uvax
sin2
cos2
, 2,0u , 0v .
1
Laborator 12. Funcții definite de utilizator în Matlab 7.0 – Partea I
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Un program Matlab 7.0 poate fi scris sub forma fişierelor script sau a fişierelor function.
Fişierele ce conţin instrucţiuni Matlab 7.0 poartă denumirea de fişiere- M datorită
faptului că au extensia “m” .
Un fişier script este un fişier- M, ce conţine o secvenţă de comenzi Matlab. Pentru
execuţia acestei secvenţe de comenzi, se scrie în linia de comandă numele fişierului script.
Fişierele funcţie sunt fişiere- M, care conţine în prima linie cuvântul cheie function.
Spre deosebire de un script, o funcţie poate lucra cu argumente.
Sintaxa primei linii a unui fişier funcţie este
function [y1,…,yn]=nume_funcţie(x1,…,xn)
unde
y1,…,yn constituie parametrii de ieşire (în lipsa acestora se elimină parantezele
drepte şi semnul egal);
x1,…,xn reprezintă parametrii de intrare (în cazul lipsei acestora se elimină
parantezele rotunde).
După terminarea execuţiei unei funcţii, numai variabilele de ieşire ale acesteia vor
rămâne în memoria calculatorului, în timp ce în cazul unui script rămân în memorie toate
variabilele cu care acesta a operat.
Dintre instrucţiunile de control logic din Matlab 7.0 menţionăm: if, else, elseif, end,
while, for, break.
Instrucţiunea condiţională if are forma generală
if expresie1
grup1_instrucţiuni;
elseif expresie2
grup2_instrucţiuni;
else
2
grup3_instrucţiuni;
end
Cele două instrucţiuni elseif şi else, asociate cu if sunt opţionale.
Expresia este de forma
expr1 op expr2
unde op este un operator relaţional din tabelul următor.
Operator relaţional Semnificaţia
== egal
~= diferit
< mai mic
> mai mare
<= mai mic sau egal
>= mai mare sau egal
Se testează expresia 1; dacă aceasta este adevărată atunci se execută grup1_instrucţiuni.
Altfel se testează expresia 2. Dacă aceasta este adevărată atunci se execută grup2_instrucţiuni
iar în caz contrar se execută grup3_instrucţiuni.
Instrucţiunea repetitivă for este utilizată pentru repetarea unui grup de instrucţiuni, de
un anumit număr de ori şi are sintaxa
for index=expr
grup_instrucţiuni;
end
unde
index este numele contorului,
expr este o expresie de forma
iniţial:pas:final,
în care:
- iniţial este prima valoare a contorului,
- pas constituie pasul (implicit se consideră 1),
- final reprezintă cea mai mare valoare pe care o poate lua index.
Instrucţiunea repetitivă while se foloseşte în scopul repetării unui grup de instrucţiuni de
un număr de ori, determinat de expresia specificată; are formatul
while expr
3
grup_instrucţiuni;
end
Expresia este de forma
expr1 op expr2
unde op este un operator relaţional.
Grupul de instrucţiuni se execută cât timp expresia este adevărată.
Instrucţiunea break termină execuţia buclelor for şi while; în afara acestor bucle,
instrucţiunea break nu este definită.
Instrucţiunea end încheie ciclurile for, while şi if.
Aplicaţii rezolvate
1. Scrieţi un fişier “function” în Matlab pentru a reprezenta grafic funcţia:
a)
0,0
0,1
cos
x
xx
xxf , 5.0,5.0x , 01.0h
b)
00
0,cos1
,
22
22
22
33
yx
yxyx
yx
yxf
a) Se selectează succesiv File->New->M-file şi se scriu următoarele instructiuni
function r=f(x)
if x~=0
r=x*cos(1/x);
elseif x==0
r=0;
end
end
Se salvează fişierul cu f.m apoi în linia de comanda se scrie:
>> x=-0.5:0.01:0.5;
>> for k=1:length(x)
y(k)=f(x(k));
end
>> plot(x,y)
4
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
b) function r=f(x,y)
[m,n]=size(x);
for k=1:m
for t=1:n
if x(k,t)^2+y(k,t)^2~=0
r=(1-cos(x(k,t)^3+y(k,t)^3))/(x(k,t)^2+y(k,t)^2);
else
r=0;
end
end
end
end
Se salvează fişierul cu f.m apoi în linia de comanda se scrie:
>>[x,y]=meshgrid(-1:.01:1,-2:.1:2);
>> [m,n]=size(x);
>> for k=1:m
for t=1:n
z(k,t)=f(x(k,t),y(k,t));
end
end
>> mesh(x,y,z)
5
-1
-0.5
0
0.5
1
-2
-1
0
1
20
0.2
0.4
0.6
0.8
1
2. Scrieţi un fişier “function” în Matlab pentru a calcula k
nC .
function r=comb(n,k)
if (k<0) | (k>n)
r=-1;
elseif (k==0)|(n==k)
r=1;
else
r=comb(n,k-1)*(n-k+1)/k;
end
end
Se salvează fişierul cu comb.m apoi in linia de comanda se scrie:
>> comb(16,13)
ans =
560
EXTREMELE UNEI FUNCTII DE MAI MULTE VARIABILE
Definitia 12.1. A functie yxf , are o valoare de maxim (minim) baf , in punctul
baP , , daca pentru orice punct P'(x, y) din vecinatatea lui P are loc inegalitate
yxfbaf ,, (respectiv, yxfbaf ,, ). Termenul de maxim si minim al unei functii
este denumit extrem.
In mod similar se pot defini extremele unei functii de trei sau mai multe variable.
6
Propozitia 12.1 (conditii necesare pentru un extrem). Punctele in care o functie
diferentiabila yxf , are un extrem, numite puncte stationare se determina rezolvand
sistemul de ecuatii:
0,
0,
yxf
yxf
y
x (12.1)
Propozitia 12.2 (conditii suficiente pentru un extrem). Fie baP , un punct stationar
al functiei yxf , , adica bafbaf yx ,, . Se construieste discriminantul:
bafbafbafEyxxy ,,, 22
2 . (12.2)
Atunci:
A) daca 0E , functia are un extrem in punctul baP , , adica:
1) un minim local daca 0,2 bafx
(sau 0,2 bafy
),
2) un maxim local daca 0,2 bafx
(sau 0,2 bafy
);
B) daca 0E atunci functia nu are un extrem in punctul baP , ,
C) daca 0E nu se poate decide daca functia are sau nu un extrem in punctul baP , .
Observatie. Pentru o functie de trei variaible, pentru fiecare punct stationar cbaP ,,
al functiei zyxf ,, se construieste matricea
2
222
2
2
22
22
2
2
z
f
zy
f
zx
f
zy
f
y
f
yx
f
zx
f
yx
f
x
f
.
(12.3)
Daca
este o matrice pozitiv definita, atunci punctul cbaP ,, este un punct de minim
local al lui f ,
este o matrice negativ definita, atunci punctul cbaP ,, este un punct de maxim
local al lui f ,
7
nu este nici pozitiv nici negativ definita, atunci punctul cbaP ,, nu este un
punct de extem;
3O nu putem lua nici o decizie asupra punctului cbaP ,, .
Definitia 12.2. O matrice simetrica njiijaA
,1 este pozitiv (negativ) definita daca
forma sa patratica asociata este pozitiv (negativ) definita.
Definitia 12.3. Fie V un spatiu vectorial real.
a) Forma patratica Vf : este pozitiv definita (negativ definita) daca
0xf ( respectiv, 0xf ), Vx , 0x ;
b) Forma patratica Vf : este nedefinita daca exista Vba , astfel incat
0af si 0bf .
3. Să se determine extremele locale ale funcţiei
0,0,e, 3222 yxyxyxf yx .
Pasul 1. Determinăm punctele staţionare, adică soluţiile sistemului (12.1):
>>syms x y
>>f=(x^2+y^2)*exp(2*x+3*y);
>> u=diff(f,x);
>>v=diff(f,y);
>> [x,y]=solve(u,v,x,y)
x =
0
-4/13
y =
0
-6/13
>>a=x(1); b=y(1);
>>aa=x(2); bb=y(2);
Pasul 2. Pentru fiecare punct staţionar ba, calculăm discriminantul din (12.2)
function [E,q]=local(a,b,u,v);
syms x y
8
uv=diff(u,y)^2;
uu=diff(u,x);
vv=diff(v,y);
p=subs(subs(uv,x,a),y,b);
q=subs(subs(uu,x,a),y,b);
r=subs(subs(vv,x,a),y,b);
E=p-q*r;
end
Se salvează fişierul cu local.m apoi în linia de commandă se scrie:
>> [E,q]=local(a,b,u,v)
E =
-4
q =
2
Aşadar, 0,0 este punct de minim local, iar valoarea minimă a funcţiei este 0 şi se
obţine din comanda Matlab 7.0
>>subs(subs(f,x,0),y,0)
ans=
0
EXTREMELE CONDITIONATE ALE UNEI FUNCTII DE MAI MULTE VARIABILE
Definition 12.3. Un extrem conditionat al unei functii yxf , este maxim sau minim
al acestei functii si indeplineste conditia 0, yx .
Propozitia 12.3 Pentru a determina extremul conditionat al functiei yxf , , dandu-se
relatia 0, yx , construim functia Lagrange
yxyxfyxF ,,,, , (12.4)
unde este multiplicator Lagrange si determinam extremul pe baza acestei functii auxiliare.
Observatie.Conditiile necesare pentru un punct de extrem se reduc la sistemul de
ecuatii:
9
0,
,0
,0
yx
yy
f
y
F
xx
f
x
F
(12.5)
cu trei necunoscute ,, yx .
Problema existenţei extremului conditionat se rezolva studiind semnul
discriminantului
,,,,,, 222
baFbaFbaFEyxxy (12.6)
al functiei Lagrange ,, yxF intr-un punct stationar ba, .
Daca discriminantul E al functiei ,, yxF intr-un punct stationar este pozitiv,
atunci exista:
- un maxim conditionat al functiei yxf , daca 0,,2 baFx
(sau 0,,2 baFy
)
- un minim conditionat daca 0,,2 baFx
(sau 0,,2 baFy
).
Observatie. In mod similar se pot defini extremele conditionate ale unei functii de trei sau
mai multe variable.
4. Să se determine în Matlab extremele funcţiei următoare, dată cu condiţia specificată,
aplicând metoda multiplicatorilor lui Lagrange
zyxzyxf 22,, , 1222 zyx .
Pasul 1. Determinăm punctele staţionare, adică soluţiile sistemului
0,,,
0,,,
0,,,
0,,,
zyxF
zyxF
zyxF
zyxF
z
y
x
122,,, 222 zyxzyxzyxF .
function r=F(x,y,z,la)
r=x-2*y+2*z+la*(x^2+y^2+z^2-1);
end
10
>> syms x y z la
>> u=diff(F(x,y,z,la),x);
>> v=diff(F(x,y,z,la),y);
>> w=diff(F(x,y,z,la),z);
>> q=diff(F(x,y,z,la),la);
>> [xx,yy,zz]=solve(u,v,w,x,y,z);
g=subs(subs(subs(q,x,xx(1)),y,yy(1)),z,zz(1));
>> p=solve(g,la)
p =
-3/2
3/2
>> for i=1:2
xs(i)=subs(xx,la,p(i));
end
>> xs
xs =
[ 1/3, -1/3]
>> for i=1:2
ys(i)=subs(yy,la,p(i));
end
>> ys
ys =
[ -2/3, 2/3]
>> for i=1:2
zs(i)=subs(zz,la,p(i));
end
zs =
[ 2/3, -2/3]
Deci, există două puncte staţionare:
3
2,
3
2,
3
1 şi
3
2,
3
2,
3
1.
Pasul 2. Pentru fiecare punct staţionar cba ,, determinam elementele matricei A de
forma (12.3).
11
function [A]=local(x1,y1,z1,la1,u,v,w)
syms x y z
t11=subs(subs(subs(subs(diff(u,x),x,x1),y,y1),z,z1),la1);
t12=subs(subs(subs(subs(diff(u,y),x,x1),y,y1),z,z1),la1);
t13=subs(subs(subs(subs(diff(u,z),x,x1),y,y1),z,z1),la1);
t22=subs(subs(subs(subs(diff(v,y),x,x1),y,y1),z,z1),la1);
t23=subs(subs(subs(subs(diff(v,z),x,x1),y,y1),z,z1),la1);
t33=subs(subs(subs(subs(diff(w,z),x,x1),y,y1),z,z1),la1);
A=[t11 t12 t13 ;t12 t22 t23; t13 t23 t33];
end
>> [A]=local(xs(1),ys(1),zs(1),p(1),u,v,w)
A =
[-3, 0, 0]
[0, -3, 0]
[0, 0, -3]
Aşadar,
3
2,
3
2,
3
1 este punct de maxim local, iar valoarea maximă a funcţiei
,,, zyxF este 3 şi se obţine din comanda Matlab 7.0
>> F(xs(1),ys(1),zs(1),p(1))
ans =
3
>> [A]=local(xs(2),ys(2),zs(2),p(2),u,v,w)
A =
[3, 0, 0]
[0, 3, 0]
[0, 0, 3]
Rezultă că
3
2,
3
2,
3
1 este punct de minim local, iar valoarea minimă a funcţiei
,,, zyxF este -3 şi se obţine din comanda Matlab 7.0:
12
>> F(xs(2),ys(2),zs(2),p(2))
ans =
-3
Aplicaţii propuse
1. Se consideră vectorul x=[3.24 2 5 3 4.5 7 6.67 8.95 4.34 2.12] ce conţine rezultatele
obţinute prin N=10 determinări experimentale. Să se realizeze un fisier script în Matlab
pentru a calcula abaterea medie pătratică a acestor rezultate, folosind formula
1
2
11
2
NN
xxN
sigma
N
ii
N
ii
.
2. Scrieţi un fisier “function” în Matlab pentru a reprezenta grafic funcţia
.20,2,12
,2,10,32
2 xdacax
xdacaxxf
3. Să se determine cu ajutorul Matlab-ului extremele locale ale funcţiei
yxyxyxyxf 66522, 22 .
4. Să se determine în Matlab extremele funcţiei următoare, dată cu condiţia specificată,
aplicând metoda multiplicatorilor lui Lagrange
yxyxf 346, , 122 yx .
1
Laborator 13. Funcții definite de utilizator în Matlab 7.0 – Partea a-II-a
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Aplicaţii rezolvate
APLICATII ALE INTEGRALELOR CURBILINII
Din punct de vedere mecanic, integrala curbilinie de speta a II-a poate fi interpretata ca
lucrul mecanic efectuat de o forta de-a lungul curbei de integrare.
Lucrul mecanic efectuat cand un corp in miscare, care se deplaseaza de-a lungul
arcului AB sub actiunea unei forte variabile
kzyxRjzyxQizyxPzyxF ,,,,,,,,
este
AB
zzyxRyzyxQxzyxPL d,,d,,d,, . (13.1)
Cand arcul AB este de forma
bat
tzz
tyy
txx
AB ,,:
atunci
ttztztytxRtytztytxQtxtztytxPLb
a
d,,,,,, . (13.2)
1. Realizati un fisier script in Matlab 7.0 care sa calculeze lucrul mecanic efectuat de forta
jyxyixyxyxF 22 22,
de-a lungul arcului de parabola 2: xyAB , care uneste punctele 1,1A si 4,2B .
Etapa I. Secventa Matlab urmatoare permite reprezentarea arcului AB .
>> x=-4:.1:4;
>> y=x.^2;
>> plot(x,y,1,1,'or',2,4,'or')
2
-4 -3 -2 -1 0 1 2 3 40
2
4
6
8
10
12
14
16
A(1,1)A(1,1)A(1,1)A(1,1)
B(2,4)
Etapa II. Se construiesc in Matlab 7.0 functiile P.m si respectiv Q.m, care reprezinta
componentele fortei.
function r=P(x,y)
r=x^2-2*x*y;
end
function r=Q(x,y)
r=2*x*y+y^2;
end
Etapa III. Se selectează succesiv File->New->M-file şi se scriu următoarele instructiuni:
syms x y t
x=t;
y=t^2;
xt=diff(x,t);
yt=diff(y,t);
int(P(x,y)*xt+Q(x,y)*yt,1,2)
Etapa IV. Se salvează fişierul cu lm.m apoi în linia de comanda se scrie:
>> lm
ans =
1219/30
3
Aria unei suprafete plane marginita de o curba C poate fi calculata folosind una din
urmatoarele formule:
C
yx d , (13.3)
C
xy d , (13.4)
xyyx
C
dd2
1 , (13.5)
(sensul de parcurgere al conturului este sensul arcelor de ceas).
2. Scrieţi un fişier script în Matlab 7.0 care sa calculeze aria cardiodei
2,0,2sinsin2
2coscos2:
t
tatay
tataxC .
Etapa I. Se selectează succesiv File->New->M-file şi se scriu următoarele instructiuni:
syms a t
x=2*a*cos(t)-a*cos(2*t);
y=2*a*sin(t)-a*sin(2*t);
xt=diff(x,t);
yt=diff(y,t);
int(x*yt,0,2*pi)
Etapa II. Se salvează fişierul cu aria.m apoi în linia de comanda se scrie:
>>aria
ans =
6*a^2*pi
APLICATII ALE INTEGRALEI DUBLE
Masa unei placi plane, de forma unui domeniu D si densitatea yx, :
yxyxD
D
dd,M . (13.6)
3. Construiti o functie in Matlab, cu ajutorul careia sa se calculeze masa corespunzatoare
unei placi plane, avand forma domeniului
2222 3,4|, xyyxyxD
si densitatea
4
yyx , .
Etapa I. Secventa Matlab urmatoare permite reprezentarea domeniului D .
>> x=-2:.1:2;
>> y=sqrt(4-x.^2);
>> y1=-sqrt(4-x.^2);
>> y2=x.^2/3;
>> plot(x,y,'b',x,y1,'b',x,y2,'r')
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
x
y
A B
D
>> [x,y]=solve('x^2+y^2=4','3*y=x^2')
x =
3^(1/2)
-3^(1/2)
2*i*3^(1/2)
-2*i*3^(1/2)
y =
1
1
-4
-4
Se poate observa ca
5
22
2 43
,33|, xyx
xyxD .
Etapa II. Se defineste functia densitate in fisierul ro.m:
function r=ro(x,y)
r=y;
end
Etapa III. Se selectează succesiv File->New->M-file şi se scriu următoarele instructiuni:
function r=masa(x,y)
r=int(int(ro(x,y),y,x^2/3,sqrt(4-x^2)),x,-sqrt(3),sqrt(3))
end
Etapa IV. Se salvează fişierul cu masa.m apoi în linia de comanda se scrie:
>>syms x y
>> M=masa(x,y)
M=
14/5*3^(1/2)
Momentele de inertie in raport cu axele de coordonate xO si yO pentru o placa
plana, de forma domeniului D si avand densitatea yx, sunt respectiv:
yxyxyD
x dd,2
(13.7)
yxyxxD
y dd,2
. (13.8)
4. Calculati cu ajutorul unui fisier de tip function realizat in Matlab 7.0, momentele de
inertie in raport cu axele de coordonate pentru o placa de forma domeniului:
0,0,1|, 2 yxyxyxD
daca densitatea sa este:
xyyx , .
Etapa I. Secventa Matlab urmatoare permite reprezentarea domeniului D .
>> x=0:.2:1;
>> y=1-x;
>> plot(x,y,1,0,'or',0,1,'or')
6
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
x
y
A(1,0)
B(0,1)
D
Etapa II. Se defineste functia densitate in fisierul ro.m:
function r=ro(x,y)
r=x*y;
end
Etapa III. Se selectează succesiv File->New->M-file şi se scriu următoarele instructiuni:
function [u,v]=momente(x,y)
u=int(int(y^2*ro(x,y),x,0,1-y),y,0,1);
v=int(int(x^2*ro(x,y),y,0,1-x),x,0,1);
end
Etapa IV. Se salvează fişierul cu momente.m apoi în linia de comanda se scrie:
>>syms x y
>> [Ix,Iy]=momente(x,y)
Ix =
1/120
Iy =
1/120
SCHIMBAREA DE VARIABILE IN COORDONATE POLARE GENERALIZATE IN INTEGRALA DUBLA
Utilizand schimbarea de variabile in coordonate polare generalizate:
2,0,0,
sin
cos
by
ax, (8.1)
7
rezulta
ddJsin,cosdd, DD bafyxyxf , (8.2)
unde
abyx
,D
,DJ
este determinantul functional (Jacobian-ul) functiilor x si y .
5. Folosind schimbarea de variabile in coordonate polare generalizate, calculati in Matlab
integrala dubla:
yxb
y
a
xD dd2
2
2
2
2
,
unde
0,0,12
2
2
2
yxb
y
a
x.
Etapa I. Se defineste in Matlab functia integrant; se salveaza cu numele f.m.
function r=f(x,y,a,b)
r=sqrt(2-x^2/a^2-y^2/b^2);
end
Etapa II. Se defineste in Matlab functia ce realizeaza schimbarea de variabile in coordonate
polare generalizate; se salveaza cu numele polarg.m.
function [x,y]=polarg(a,b,rho,th)
x=a*rho*cos(th);
y=b*rho*sin(th);
end
Etapa III. Se calculeaza valoarea integralei in lina de comanda.
>> syms a b rho th
>> [x,y]=polarg(a,b,rho,th);
>>I=simple(int(int(a*b*rho*f(x,y,a,b),rho,0,1),th,0,pi/2))
I =
1/6*a*b*pi*(-1+2*2^(1/2))
8
APLICATII ALE INTEGRALE TRIPLE
Masa unui solid ce ocupa o regiune V , avand densitatea zyx ,, in punctul zyx ,,
este
zyxzyxV ddd,,M . (13.9)
Observatie. In cazul cand domeniul V este de forma:
yxzyxDyxzyxV ,,,,|,, 21 ,
Dyx , semnifica ca punctul yx, apartine regiunii D din planul xyO , adica
xoyprD V .
In acest caz, integrala tripla se calculeaza astfel:
D
yx
yxV yxzzyxfzyxzyxf ddd,,ddd,,
,2
,1
. (13.10)
6. Calculati in Matlab masa unui corp solid, de forma tetraedrului din primul octant, marginit
de planele 1 zyx , 0x , 0y , 0z , stiind ca densitatea sa este xyzyx ,, .
Etapa I. Secventa Matlab urmatoare permite reprezentarea corpului.
>> x=[1 0 0 0 1 0]; y=[0 0 1 0 0 1]; z=[0 0 0 1 0 0];
>> plot3(x,y,z,1,0,0,'ob',0,1,0,'ob',0,0,1,'ob',0,0,0,'ob')
00.2
0.40.6
0.81
0
0.2
0.4
0.6
0.8
1
0
0.2
0.4
0.6
0.8
1
xy
z
A(1,0,0)
O(0,0,0)
C(0,0,1)
B(0,1,0)
9
Se poate observa
DyxyxzzyxV ,,10|,, 3 ,
(deoarece z este marginit de planele 0: zxOy si respectiv yxzABC 1: ),
unde
AOBxyxyxxOyprD V 10,10|, 2
De aceea,
1
0
1
0
1
0
1
0
ddddddM xyzxyyxzxyx yx
D
yx
, (13.11)
Etapa II.Se construieste script-ul mass.m avand urmatorul continut:
syms x y z
m=int(int(int(x*y,z,0,1-x-y),y,0,1-x),x,0,1)
Etapa III. Se executa script-ul in linia de comanda, scriind:
>>mass
m =
1/120
Coordonatele centrului de greutate ale unui corp solid, de forma unui domeniu
V este punctul GGG zyxG ,, , unde:
.ddd,,
ddd,,
ddd,,
ddd,,
ddd,,
ddd,,
zyxzyx
zyxzyxzz
zyxzyx
zyxzyxyy
zyxzyx
zyxzyxxx
V
VG
V
VG
V
VG
(13.12)
Daca solidul este omogen, atunci in relatia (13.12) se seteaza 1,, zyx .
7. Determinati cu ajutorul unui fisier Matlab coordonatele centrului de greutate ale unui corp
omogen, limitat de suprafetele:
10
xzy 42 22
si
2x .
Etapa I. Secventa Matlab urmatoare permite reprezentarea corpului omogen.
>> [y,z]=meshgrid(-3:.03:3,-2.5:.03:2.5);
>> x=y.^2/4+z.^2/2;
>> [m,n]=size(x);
>> x1=2*ones(m,n);
>> plot3(x,y,z,x1,y,z)
01
23
45
6
-5
0
5
-3
-2
-1
0
1
2
3
xy
z
Se observa ca:
Dzyxzy
zyxV ,,24
2|,,
223 ,
unde
148
|,82|,22
2222 zyzyDzyzyD .
Etapa II. Se calculeaza integrala
11
DD
zy
V zyzy
zyxzyxI dd4
22dddddd
222
42221 ,
(13.13)
folosind schimbarea de variabile in coordonate polare generalizate:
2,0,1,0,
sin2
cos22
z
y.
a) Se defineste in Matlab functia integrant; se salveaza cu numele f.m.
function r=f(x,y,a,b)
r=2-(x^2+2*y^2)/4;
end
b) Se defineste in Matlab functia ce realizeaza schimbarea de variabile in coordonate polare
generalizate (vezi functia polarg.m din ex 5).
c) Se calculeaza valoarea integralei in lina de comanda.
>> a=2*sqrt(2);b=2;
>> syms rho th
>> [y,z]=polarg(a,b,rho,th);
>> I1=int(int(a*b*rho*f(y,z,a,b),rho,0,1),th,0,2*pi)
I1=
4*pi*2^(1/2)
Etapa III. Se calculeaza integrala
DD
zy
V zyzy
zyxxzyxxI dd4
24
2
1dddddd
2222
4
2222
(13.14)
Se proceadeaza similar precum la Etapa II; se modifica doar functia f.
function r=f(x,y,a,b)
r=4-((x^2+2*y^2)/4)^2;
end
>> I2=int(int(a*b*rho*f(y,z,a,b),rho,0,1),th,0,2*pi)/2
I2 =
16/3*pi*2^(1/2)
12
Etapa IV. Se calculeaza integrala
DD
zy
V zyyzy
zyyxzyxyI dd4
22dddddd
222
42223
(13.15)
Se proceadeaza similar precum la Etapa II; se modifica doar functia f.
function r=f(x,y,a,b)
r=(2-(x^2+2*y^2)/4)*x;
end
>> I3=int(int(a*b*rho*f(y,z,a,b),rho,0,1),th,0,2*pi)
I3 =
0
Etapa V. Se calculeaza integrala
DD
zy
V zyzzy
zyzxzyxzI dd4
22dddddd
222
42224 .
(13.16)
Se proceadeaza similar precum la Etapa II; se modifica doar functia f.
function r=f(x,y,a,b)
r=(2-(x^2+2*y^2)/4)*y;
end
>> I4=int(int(a*b*rho*f(y,z,a,b),rho,0,1),th,0,2*pi)
I4 =
0
Etapa VI. Se calculeaza Gx .
>> xg=I2/I1
xg =
4/3
Etapa VII. Se calculeaza Gy .
>> yg=I3/I1
yg =
13
0
Etapa VIII. Se calculeaza Gz .
>> zg=I4/I1
zg =
0
Aplicaţii propuse
1. Realizati un script in Matlab prin intermediul caruia sa calculati aria si coordonatele
centrului de greutate corespunzatoare unei placi plane omogene, de forma domeniului
limitat de curba xy sin si dreapta OA , care trece prin origine si prin punctul
1,
2
A din primul cadran.
2. Folosind schimbarea de variabile in coordonate polare, calculati prin intermediul unui
functii Matlab construite de dvs. integrala dubla urmatoare:
yx
yx
yx
Ddd
ln22
22
,
unde 222 e1: yxD ;
3. Construiti un script Matlab pentru a calcula valoarea integralei triple:
zyxzyx
I ddd1
11
0
1
0
1
0
.
4. Determinati cu ajutorul unui fisier realizat in Matlab, masa unui corp de forma
cubului:
10
10
10
z
y
x
daca densitatea sa in punctul zyxM ,, este
.,, xyzzyx
14