CURS_10_ECNI.pdf

9
CURS 10 1 CURS 10 ECNI FUNCII MATEMATICE UZUALE - continuare 1. DIVIZORI !I MULTIPLI COMUNI Pentru calculul divizorilor i al multiplilor comuni se folosesc func#iile: gcd calculeaz$ cel mai mare divizor comun a dou $ numere; lcm calculeaz$ cel mai mic multiplu comun a dou$ numere. 1.1. Cel mai mare divizor comun Func#ia MATLAB gcd  calculeaz$ cel mai mare divizor comun a dou$ numere întregi; se apeleaz$ cu sintaxa: a=gcd(x,y) Exemplul 1. S$ se determine cel mai mare divizor comun al numerelor 30 i 21. Cu secven#a: a=gcd(30,21) rezult $: a=3 1.2. Cel mai mic multiplu comun Func#ia MATLAB l cm  returneaz$ cel mai. mic multiplu comun a dou$ numere întregi. Se apeleaz$ cu sintaxa: a=lcm(x,y) Exemplul 2. S$ se determine cel mai mic multiplu comun al numerelor: 9 i 30. 2. NUMERE COMPLEXE Opera#iile cu numere complexe folosesc func #iile: abs Calculeaz$ valoarea absolut $ (modulul) a argumentului; angle  Calculeaz$ faza (unghiul) argumentului; unwrap  Calculeaz $ p$r #ile real$ i imaginar $ ale numerelor complexe exprimate în forma polar $ conj   Calculeaz$ conjugata complex $ a argumentului; imag  Extrage partea imaginar $ a argumentului; real  Extrage partea real $ a argumentului. 

Transcript of CURS_10_ECNI.pdf

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 1/9

CURS 10

1

CURS 10 ECNI

FUNCII MATEMATICE UZUALE - continuare

1. DIVIZORI !I MULTIPLI COMUNI 

Pentru calculul divizorilor i al multiplilor comuni se folosesc func#iile:

gcd calculeaz$ cel mai mare divizor comun a dou$ numere;

lcm calculeaz$ cel mai mic multiplu comun a dou$ numere.

1.1. Cel mai mare divizor comun

Func#ia MATLAB gcd  calculeaz$ cel mai mare divizor comun a dou$ numere întregi; se apeleaz$ cusintaxa:

a=gcd(x,y)

Exemplul 1.  S$  se determine cel mai mare divizor comun al numerelor 30 i 21. Cu secven#a:a=gcd(30,21) rezult$: a=3

1.2. Cel mai mic multiplu comun

Func#ia MATLAB lcm  returneaz$ cel mai. mic multiplu comun a dou$ numere întregi. Se apeleaz$ cu

sintaxa:

a=lcm(x,y)

Exemplul 2. S$ se determine cel mai mic multiplu comun al numerelor: 9 i 30.

2. NUMERE COMPLEXE

Opera#iile cu numere complexe folosesc func#iile:

abs Calculeaz$ valoarea absolut$ (modulul) a argumentului;

angle   Calculeaz$ faza (unghiul) argumentului;

unwrap   Calculeaz$ p$r #ile real$ i imaginar $ ale numerelor complexe exprimate în forma polar $ 

conj   Calculeaz$ conjugata complex$ a argumentului;

imag   Extrage partea imaginar $ a argumentului;

real   Extrage partea real$ a argumentului. 

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 2/9

Elemente de calcul numeric ingineresc

2

2.1. Definirea numerelor complexe în MATLAB 

 Numerele complexe sunt permise în toate opera#iile i func#iile din MATLAB. Acestea sunt introduseutilizând variabilele speciale i si j, ca în exemplele: 2 3 z i= +  sau 2 3 z j= + . Pentru a defini matricea:

2 3 1

2

i M 

i i

+ =  − −

 

exist$ dou$ metode:

- ca sum$ a dou$ matrice cu elemente numere reale, una reprezentând partea real$  iar cealalt$ parteaimaginar $;

M=[2 1; 0 2] +[3 0;-1 -1]*i

- ca o matrice cu elemente numere complexe.

M=[2+3*i 1; -i 2-i]

Prin al doilea procedeu trebuie evitat orice spa#iu liber (blanc) între p$r #ile real$  si imaginar $  aleaceluiai num$r complex; astfel:

a=[2+3*i]

 b=[2 +3*i] returneaz$:

a=[2.0000+3.0000i]

 b=[2.0000 0+3.0000i], nota#ia b reprezentând dou$ numere separate.

Dac$ variabilele i sau j au fost deja utilizate în alte scopuri, pentru calculul cu numere complexe poatefi declarat$ o nou$ unitate imaginar $, în modul urm$tor: i1=sqrt(-1)

2.2. Modulul $i argumentul numerelor complexe

Un num$r complex z se exprim$ sub una dintre formele:

- cartezian$: z=x+iy

- polar $: z=rei' 

unde x i y sunt p$r #ile real$  i imaginar $  ale num$rului complex z, iar r i '  sunt modulul iargumentul num$rului complex z.

Func#ia abs  determin$ modulul elementelor unui vector sau unei matrice; se apeleaz$ cu sintaxa:

r=abs(z)

Func#ia angle  calculeaz$ argumentul elementelor unui vector sau unei matrice, în radiani; se apeleaz$ cu sintaxa:

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 3/9

CURS 10

3

fi=angle(z)

Func#ia unwrap   permite calculul p$r #ilor reale, cu sintaxa: x=unwrap(z) sau x=unwrap(real(y))respectiv a p$r #ii imaginare, cu sintaxa: y= unwrap(imag(z)) Argumentul num$rului complex trebuie s$ 

fie exprimat în radiani.

Exemplul 3. S$ se scrie num$rul complex z=1+i sub forma polar $. Cu instruc#iunile:

x=l; y=l; z=x+i*y; r=abs(z); fi=angle(z) se ob#ine rezultatul: r= 1.4142; fi=0.7854

Exemplul 4. S$ se scrie num$rul complex z=4ei / 4π  sub forma cartezian$. Cu instruc#iunile: r=sqrt(4);fi=pi/4; z=r.*exp(i*fi).

Exemplul 5. Fie dat$ matricea cu numerele complexe exprimate sub forma polar $:

4 4

2 22

1  i i

i i

e e M 

e e e

π π

π

π π

=

 

S$ se determine proiec#iile acestor numere pe axele real$ i imaginar $, aplicând func#ia unwrap  

2.3. P&r)ile real& $i imaginar& $i conjugatul numerelor complexe

Partea real$  a unui num$r complex poate fi determinat$  cu func#ia real ; se apeleaz$  cu sintaxa:x=real(z)

iar partea imaginar $ poate fi determinat$ cu func#ia imag ; se apeleaz$ cu sintaxa: y=imag(z)

Conjugatul z al unui num$r complex se poate determina cu func#ia conj ; se apeleaz$  cu sintaxa:conjugata=conj(z)

Exemplul 6. Fie dat$ matricea

4

1 2

4  i

i

 M 

i e

π

+ = −

. S$ se determine partea real$, imaginar $ i conjugatul elementelor acesteia.

3. FUNCIILE PUTERE, RADICAL, LOGARITM !I EXPONENIAL* 

Func#iile MATLAB pentru ridicarea la putere, extragerea radicalului, calculul logaritmului i alexponen#ialei, sunt:

^ Ridic$ un num$r a la puterea n (an);

exp   Calculeaz$ exponen#iala (ex);

log   Calculeaz$ logaritmul natural (ln);

log2   Calculeaz$ logaritmul în baza 2 (log2);

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 4/9

Elemente de calcul numeric ingineresc

4

log10   Calculeaz$ logaritmul zecimal (log10);

nextpow2   Determin$  puterea N a num$rului 2 care majoreaz$  modulul argumentului P( 2 N 

 P  ≤ );

pow2   Calculeaz$ valoarea num$rului 2 la puterea n (2n);

sqrt Calculeaz$ radicalul de ordinul doi dintr-un num$r.

Dac$  argumentul acestor func#ii elementare sunt matrice, ele opereaz$  element cu element.Argumentele func#iilor pot fi i numere complexe.

3.1. Func)ia putere

MATLAB-ul dispune de dou$ func#ii pentru ridicarea la putere:

• pow2 - pentru a ridica 2 la puterea n (2"),

• ^ - pentru a ridica un num$r a la puterea n (x=an). Se apeleaz$ cu sintaxele:

y=pow2(x) - calculeaz$  num$rul y=2x. Dac$  x este o matrice, y va fi o matrice de aceleaidimensiuni cu elementele calculate dup$  aceast$  regul$, func#ia ac#ionând element cu elementy=pow2(m,n) - calculeaz$ num$rul y=m*2";

x=a^n - calculeaz$ puterea n a num$rului a, x=a". Exponentul n poate avea orice valoare,real$  sau complex$. Pentru calculul radicalului de ordinul n dintr-un num$r a, se utilizeaz$  func#ia putere sub forma: x=a1/n. Func#ia nextpow2  având ca argument scalarul P, se apeleaz$ cu sintaxa:

 N=nextpow2(P) i returneaz$ cei mai mic num$r natural N astfel încât 2 N  P ≥ . Dac$ P este vector,

func#ia returneaz$ scalarul N, astfel încât 2 N majoreaz$ num$rul de elemente ale vectorului.

Exemplul 7. S$ se calculeze: A = [23  25  213.5].

Exemplul 8. S$ se efectueze aceleai calcule ca la punctul anterior, utilizând operatorul de ridicare la putere A. Cu secven#a: A=[2^3 2^5 2^13.5] se ob#in aceleai rezultate.

Exemplul 9. S$ se calculeze: 3 125 x = .

Exemplul 10. S$ se determine puterile N ale lui 2 care majoreaz$ elementele vectorului A=[4 -8 17].S$ se calculeze vectorul majorant P=2 N.

3.2. Func)ia radical

Calculul radicalului de ordinul 2 dintr-un num$r, a= , poate utiliza func#ia putere, sau func#ia sqrt ,apelat$ cu sintaxa: x=sqrt(a)

Argumentul a poate fi orice num$r real sau complex. Dac$  num$rul a este negativ sau complex,rezultatul calculului este un num$r complex.

Exemplul 11. S$ se calculeze radicalul fiec$rui element al matricei: X =[1 2;4 -9]

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 5/9

CURS 10

5

3.3. Func)ia logaritm

Calculul logaritmului natural al logaritmului în baza 2 sau al logaritmului în baza 10 al unui num $r autilizeaz$ func#iile log, log2 i respectiv log10, apelate cu sintaxele:

x=log(a) x=log2(a) x=log10(a)

Dac$  argumentul func#iilor log i log10 este un num$r negativ, sau complex, z=x+iy, rezultatul estecalculat cu rela#iile:

log(z) = log(abs(z)) + i*atan2(y,x) i log10(z) = log10(abs(z)) + i*atan2(y,x) unde atan2  este func#iaMATLAB ce calculeaz$ arctangenta num$rului complex.

Exemplul 12. S$ se calculeze logaritmul natural i zecimal din numerele e2 i 100.

Exemplul 13. S$ se calculeze logaritmul în baz$ 2 al elementelor matricei: A = [4 23  82  10].

3.4. Func)ia exponen)ial& 

Calculul exponen#ialei: x=ea, (unde e= 2.71828182845...) folosete func#ia exp , apelat$  cu sintaxa:x=exp(a)

Dac$  argumentul este num$rul complex z=x+iy, rezultatul este calculat cu rela#ia:ez = ex (cos(y) +i*sin(y))

Exemplul 14. S$ se calculeze: e , e2 i e-3. Cu secven#a:

4. FUNCIILE TRIGONOMETRICE

Func#iile trigonometrice se apeleaz$ cu sintaxa:

x=nume_func#ie(argument) unde:

- nume_func#ie este numele uneia dintre func#iile trigonometrice de mai jos;

- argument este valoarea pentru care se evalueaz$ func#ia;

- x este variabila în care se returneaz$ rezultatul.Dac$ argumentul este o matrice, func#iile trigonometrice opereaz$ asupra fiec$rui element.

4.1. Func)iile trigonometrice directe

Func#iile trigonometrice directe în MATLAB sunt:

sin   Calculeaz$ sinusul argumentului;

cos   Calculeaz$ cosinusul argumentului;

tan   Calculeaz$ tangenta argumentului;

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 6/9

Elemente de calcul numeric ingineresc

6

cot   Calculeaz$ cotangenta argumentului;

sec   Calculeaz$ secanta argumentului;

cosec   Calculeaz$ cosecanta argumentului.

Pentru argumente numere complexe, z=x+iy, rela#iile de calcul sunt: sin(z)=sin(x)cosh(y)+i*cos(x)sinh(y); cos(z) = cos(x)cosh(y) – i*sin(x)sinh(y); tan(z) = sin(z)/cos(z)

Exemplul 15. S$  se calculeze func#iile trigonometrice directe ale elementelorvectorului:[ ]/ 4 3 / 4 5 / 4π π π  

4.2. Func)iile trigonometrice inverse

Func#iile trigonometrice inverse în MATLAB sunt:

asin Calculeaz$ arcsinusul argumentului;

acos   Calculeaz$ arccosinusul argumentului;

atan   Calculeaz$ arctangenta argumentului;

atan2   Calculeaz$ arctangenta unui argument complex;

acot   Calculeaz$ arccotangenta argumentului;

asec   Calculeaz$ arcsecanta argumentului;

acsc   Calculeaz$ arccosecanta argumentului.

Exemplul 16. S$ se calculeze func#iile trigonometrice inverse pentru elementele vectorului: X = [0 l

2 / 2 ]

4.3. Func)iiie hiperbolice

Func#iile hiperbolice se apeleaz$ cu sintaxa: x=nume_func#ie(argument), unde:

- nume_func#ie este numele uneia dintre func#iile hiperbolice de mai jos;

- argument este valoarea pentru care se evalueaz$ func#ia;

- x este variabila în care se returneaz$ rezultatul.

Dac$ argumentul este o matrice, func#iile trigonometrice opereaz$ asupra fiec$rui element.

4.3.1. Func)iiie hiperbolice directe

Func#iile hiperbolice directe în MATLAB sunt:

sinh Calculeaz$ sinusul hiperbolic al argumentului.

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 7/9

CURS 10

7

cosh   Calculeaz$ cosinusul hiperbolic al argumentului.

tanh Calculeaz$ tangenta hiperbolic$ a argumentului.

coth Calculeaz$ cotangenta hiperbolic$ a argumentului.

sech   Calculeaz$ secanta hiperbolic$ a argumentului.

csch   Calculeaz$ cosecanta hiperbolic$ a argumentului.

4.3.2. Func)iiie hiperbolice inverse

Func#iile hiperbolice inverse în MATLAB sunt

asinh   Calculeaz$ arcsinusul hiperbolic al argumentului;

acosh   Calculeaz$ arccosinusul hiperbolic al argumentului;

atanh Calculeaz$ arctangenta hiperbolic$ a argumentului;

acoth   Calculeaz$ arccotangenta hiperbolic$ a argumentului;

asech Calculeaz$ arcsecanta hiperbolic$ a argumentului;

acsch   Calculeaz$ arccosecanta hiperbolic$ a argumentului.

5. MATRICI SPECIALE

Î MATLAB exist$  un set de func#ii care genereaz$ matrici speciale, folosite în aplica#ii de algebr $ liniar $ i prelucrarea semnalelor. Mai jos sunt date doar câteva astfel de func#ii, cele uzuale folosite înaplica#iile curente.

compan   Calculeaz$ companionul matriceal;

diag   Genereaz$ o matrice diagonal$;

magic .Genereaz$ p$tratul magic;

5.1. Companionul matriceal

Func#ia compan  calculeaz$ companionul unei matrice; se apeleaz$ cu sintaxa: A=compan(p).

Dac$ p este un vector cu coeficien#ii polinomiali scrii în ordine descresc$toare a puterilor, compan(p)este companionul matriceal corespondent. Prima linie a companionului este constituit$  din numerereprezentând câtul cu semn schimbat dintre coeficien#ii polinomiali, începând cu puterea (n-1) pân$ latermenul liber i coeficientul polinomial al puterii n, adic$ -p(2:n)/p(1). Pentru polinomul:

P(x) = p(l)xn + p(2)xn-1 + p(3)xn-2+...+p(n - l)x2 + p(n)x + p(n + 1) ; prima linie a companionului este:. .

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 8/9

Elemente de calcul numeric ingineresc

8

-p(2)/p(1), -p(3)/p(1), ..........., -p(n+1)/p(1)

Valorile proprii ale companionului unui vector p, ai c$rui coeficien#i polinomiali sunt da#i de func#iaeig(compan(p)) , sunt r $d$cinile polinomului. Prin urmare, pentru a determina r $d$cinile unui polinom,

se poate folosi expresia MATLAB:

r= eig(compan(p)) unde p sunt coeficien#ii polinomului în ordinea descresc$toare a puterilor.

Exemplul 17. S$ se determine r $d$cinile polinomului:

 p(x)=x3 – x2 - x + 1

Se scrie vectorul coeficien#ilor polinomiali, se determin$  companionul i apoi valorile proprii aleacestuia. Valorile proprii ale companionului sunt chiar r $d$cinile polinomului. Cu secven#a deinstruc#iuni MATLAB: p=[l -l -l l]; b = compan (p); r = eig(b) sau, mai compact: r=eig(compan(p))

5.2. Matricea diagonal& 

Func#ia diag  genereaz$ matrice diagonale sau opereaz$ cu diagonalele unor matrice; se apeleaz$ cu unadintre sintaxele:

D=diag(X) D=diag(X,k)

Argumentul op#ional k indic$ diagonala corespunz$toare, anume:

k = 0, diagonala principal$;

k > 0, indic$ diagonala k de deasupra celei principale;k < 0, indic$ diagonala k de sub cea principal$.

Dac$ argumentul X este un vector cu n componente, func#ia diag(X,k) genereaz$ o matrice p$trat$ deordinul n+abs(k), cu elementele vectorului X pe diagonala k. Apelat$  f $r $  argumentul k, func#iacreeaz$ o matrice cu elementele vectorului X pe diagonala principal$.

Dac$ argumentul X este o matrice, func#ia diag(X,k) extrage un vector coloan$ format din elementelede pe diagonala k a matricei X.

Exemplul 17. Fie dat$ matricea A =[l 2 3; 4 5 6;.7 8 9]

S$  se genereze o matrice având diagonala principal$  identic$  cu cea a matricei A i cu celelalteelemente egale cu zero. Cu secven#a MATLAB: B=diag(diag(A)} se ob#ine rezultatul.

Exemplul 18. S$ se genereze o matrice de ordinul 2m+1, definit$ de rela#iile:

1

1 1

0

i m i j

i j

in rest 

− − =

= = ±

; unde [ ] [ ]1,2 1 , 1,2 1i m j m∈ + ∈ +  cu m=2.

Exemplul 19. S$ se aplice func#ia diag  vectorului V=[1 2 3]. S$ se afieze diag(V,2).

7/23/2019 CURS_10_ECNI.pdf

http://slidepdf.com/reader/full/curs10ecnipdf 9/9

CURS 10

9

5.3. P&tratul magic

P$tratul magic de ordinul n este o matrice n x n, construit$  cu întregii de la 1 la n2, care are sumaelementelor de pe fiecare linie, coloan$, diagonal$ sau anti-diagonal$ principal$, egal$. P$tratul magic

are suma scalat$ dublu stochastic. Func#ia magic se apeleaz$ cu sintaxa:

A=magic(n) unde argumentul n trebuie s$ fie mai mare sau egal cu 3.

Exemplul 20. S$ se genereze p$tratul magic de ordinul 4.