+ All Categories
Home > Documents > Laborator 1. Calcule matematice fundamentale in Matlab 7.0

Laborator 1. Calcule matematice fundamentale in Matlab 7.0

Date post: 30-Jan-2017
Category:
Upload: trannhi
View: 272 times
Download: 3 times
Share this document with a friend
135
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ă Start All 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;
Transcript
Page 1: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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;

Page 2: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 3: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 4: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 5: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 6: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 7: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 8: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 /

Page 9: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 10: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 11: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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;

Page 12: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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.

Page 13: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 14: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 15: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 16: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 17: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 18: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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).

Page 19: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 =

Page 20: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 21: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 22: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 23: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 24: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 25: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 26: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 27: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 28: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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);

Page 29: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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))

Page 30: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 31: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 32: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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];

Page 33: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 34: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 35: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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))

Page 36: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 37: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 38: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

.

Page 39: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 40: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 41: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 42: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .^

Page 43: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 44: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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')

Page 45: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 =

Page 46: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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, ,

Page 47: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 48: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 =

Page 49: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 )

Page 50: Laborator 1. Calcule matematice fundamentale in Matlab 7.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 .

Page 51: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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,,

Page 52: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 53: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 54: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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:

Page 55: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 56: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 57: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 58: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 59: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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))

Page 60: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 61: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 62: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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')

Page 63: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 64: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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ă.

Page 65: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 66: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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.

Page 67: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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.

Page 68: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 69: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 70: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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:

Page 71: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 72: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 73: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 74: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 75: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 76: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 77: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 78: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 79: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 80: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 81: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 82: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 83: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 84: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

6

c)

30

20

324d

d3

12d

d3

y

x

tyxt

y

tyxt

x

Page 85: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 86: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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;

Page 87: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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);

Page 88: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 89: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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;

Page 90: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 91: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 92: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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.

Page 93: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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).

Page 94: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 ;

Page 95: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 ,

Page 96: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 97: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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;

Page 98: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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.

Page 99: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 100: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 101: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 102: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 103: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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);

Page 104: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 105: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 106: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 107: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 108: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 109: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 .

Page 110: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 111: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 112: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 113: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 114: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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.

Page 115: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 ,

Page 116: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 117: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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:

Page 118: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 119: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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).

Page 120: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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:

Page 121: Laborator 1. Calcule matematice fundamentale in 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 .

Page 122: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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')

Page 123: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 124: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 125: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 126: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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')

Page 127: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 128: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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))

Page 129: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 130: Laborator 1. Calcule matematice fundamentale in Matlab 7.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:

Page 131: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 132: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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)

Page 133: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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 =

Page 134: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

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

Page 135: Laborator 1. Calcule matematice fundamentale in Matlab 7.0

14


Recommended