matcap8

7
8. GENERAREA VECTORILOR Şl A MATRICELOR UZUALE Funcţiile folosite pentru generarea vectorilor şi a matricelor uzuale sunt: zeros Generează matricea nulă; ones Generează matricea unitate; eye Generează matricea identică; rand Generează numere aleatoare cu distribuţie uniformă; randn Generează numere aleatoare cu distribuţie normală; linspace Generează un vector cu pas liniar; logspace Generează un vector cu pas logaritmic; meshgrid Generează o matrice a reţelei în planul X-Y; : Generează un vector cu pas constant. 8.1. Generarea vectorilor 8.1.1. Generarea vectorilor cu pas liniar Generarea vectorilor cu pas liniar implică cunoaşterea limitelor intervalului (amin şi amax) şi a pasului dintre două elemente (pas), sau numărul de elemente ale vectorului. Metoda de generare a vectorului se alege funcţie de datele de intrare. Dacă se cunosc limitele intervalului (amin şi amax) şi pasul (pas) dintre două elemente, se generează vectorul cu instrucţiunea: x = amin : pas : amax unde: amin, amax şi pas sunt scalari şi pot avea orice valoare reală. Numărul de elemente ale vectorului rezultant x este: unde „[ ]" semnifică partea întreagă a rezultatului expresiei dintre paranteze. Instrucţiunea presupune că: - dacă pas > 0, atunci este necesar ca amin < amax, - dacă pas < 0, atunci este necesar ca amin > amax. Spre exemplu: x = 2:5:25 x = -20:3:10 x = 5:-2:-4 x =-15:-3:-25 x = 5:15 sunt corecte, în timp ce următoarele instrucţiuni: x = 2:-1:5 x = -5:2:-10 UPG-IME

Upload: linndowws

Post on 06-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

cursuri de facultate in romana MatLab

TRANSCRIPT

  • 8. GENERAREA VECTORILOR l A MATRICELOR UZUALE

    Funciile folosite pentru generarea vectorilor i a matricelor uzuale sunt:zeros Genereaz matricea nul;ones Genereaz matricea unitate;eye Genereaz matricea identic;rand Genereaz numere aleatoare cu distribuie uniform;randn Genereaz numere aleatoare cu distribuie normal;linspace Genereaz un vector cu pas liniar;logspace Genereaz un vector cu pas logaritmic;meshgrid Genereaz o matrice a reelei n planul X-Y;: Genereaz un vector cu pas constant.

    8.1. Generarea vectorilor

    8.1.1. Generarea vectorilor cu pas liniar

    Generarea vectorilor cu pas liniar implic cunoaterea limitelor intervalului (amin iamax) i a pasului dintre dou elemente (pas), sau numrul de elemente ale vectorului.Metoda de generare a vectorului se alege funcie de datele de intrare. Dac se cunosclimitele intervalului (amin i amax) i pasul (pas) dintre dou elemente, se genereazvectorul cu instruciunea:

    x = amin : pas : amaxunde: amin, amax i pas sunt scalari i pot avea orice valoare real. Numrul de elemente ale vectorului rezultant x este:

    unde [ ]" semnific partea ntreag a rezultatului expresiei dintre paranteze. Instruciunea presupune c:

    - dac pas > 0, atunci este necesar ca amin < amax,- dac pas < 0, atunci este necesar ca amin > amax.

    Spre exemplu:x = 2:5:25 x = -20:3:10 x = 5:-2:-4 x =-15:-3:-25 x = 5:15

    sunt corecte, n timp ce urmtoarele instruciuni: x = 2:-1:5 x = -5:2:-10

    UPGIM

    E

  • sunt incorecte.Dac pasul se omite, valoarea acestuia este considerat implicit egal cu unitatea.

    Dac se cunosc limitele intervalului (amin i amax) i numrul de elemente (N) alevectorului generat cu pas liniar, atunci se folosete instruciunea:

    x = linspace(amin, amax, N) Pasul dintre dou elemente rezult egal cu:

    Dac valoarea N este omis, atunci aceasta este considerat implicit egal cu 100. Valorilelimitelor intervalului, amin i amax, nu sunt supuse niciunei restricii i pot fi date n oriceordine (dac amin > amax vectorul generat va fi ordonat descresctor).

    Exemplul 8.1.1. S se genereze un vector cu pas liniar, cu limitele:amin =2.5, amax = 7 i pasul egal cu 1.25. Secvena:

    x = 2.5 : 1.25 : 7 conduce la rezultatul:

    x = [2.5000 3.7500 5.0000 6.2500]

    Exemplul 8.1.2. S se genereze un vector cu pas liniar, cu limitele : amin = 2.5, amax = 7 i N = 4 elemente. Secvena:

    x = linspace(2.5, 7, 4) conduce la rezultatul:

    x = [2.5000 4.0000 5.5000 7.0000]Dei genereaz acelai numr de elemente, prima secven controleaz pasul i

    poate modifica eventual limita superioar, iar a doua controleaz numrul de elemente imenine limitele impuse.

    8.1.2. Generarea vectorilor cu pas logaritmic

    Funcia logspace genereaz vectori cu pas logaritmic; se apeleaz cu sintaxa:x = logspace(amin, amax, N)

    Vectorul x conine N elemente distribuite logaritmic ntre decadele [10amin, 10amax]. Dacnumrul de elemente N este omis, se genereaz un vector cu 50 elemente distribuitelogaritmic ntre decadele [10amin , 10amax]. Dac amax=n, elementele vectorului suntdistribuite ntre 10amin i n. Valorile limitelor intervalului, amin i amax, nu au nici o restricie ipot fi date n orice ordine. Dac amin > amax, vectorul generat va fi ordonat descresctor.

    Exemplul 8.1.3. S se genereze un vector cu N=5 elemente distribuite logaritmic peintervalul [10-2 , 102]. Secvena:

    x = logspace(-2, 2, 5) determin rezultatul:

    x = [ 0.0100 0.1000 1.0000 10.0000 100.0000]

    UPGIM

    E

  • Exemplul 8.1.4. S se genereze un vector cu N=6 elemente distribuite logaritmic peintervalul [10-2, pi]. Secvena:

    x = logspace(-2, pi, 6)determin rezultatul:

    x= [0.0100 0.0316 0.0997 0.3150 0.9948 3.1416]

    8.2. Generarea matricelor

    8.2.1. Matricea goal

    Dei n MATLAB nu exist instruciuni pentru declararea tipurilor de variabile, iarmatricele se autodimensioneaz n timpul utilizrii, pentru a crete viteza de lucru seprocedeaz la crearea unei matrice goale. Acest lucru se face la nceputul sesiunii de lucrusau la apelarea unui program. Declararea unei matrice goale se face cu instruciunea:

    X = [] care asigneaz lui X matricea de dimensiuni 0x0.

    Orice matrice goal trebuie sa aib cel puin una din dimensiuni zero. Pentru a testadac o matrice X este goal, se folosete funcia MATLAB isempty, care se apeleaz cusintaxa:

    r = isempty(X) i retumeaz n variabila r valoarea 1 dac X este matrice goal i 0 n caz contrar.

    8.2.2. Matricea unitate

    Matricea unitate este o matrice cu toate elementele 1:

    i poate fi generat cu funcia ones; se apeleaz cu una dintre sintaxele:U=ones(n) U=ones(m,n) U=ones(size(A))

    unde m i n sunt scalari, iar A este matrice. Dac funcia ones este apelat cu un singurargument scalar, matricea generat este o matrice ptrat avnd dimensiuneaargumentului. Apelat cu dou argumente scalare (m,n), matricea generat are m linii in coloane. Dac funcia ones are ca argument o matrice A, matricea generat este omatrice unitate de aceleai dimensiuni cu matricea A.

    Exemplul 8.2.1. S se genereze o matrice unitate cu dimensiunea 2x2 i o matrice unitate cu dimensiunea 2x3. Cu secvena:

    Al=ones(2) A2=ones(2,3)

    UPGIM

    E

  • S se

    genereze o matrice unitate de aceleai dimensiuni cu matricea A. Cu secvena:A=[l 3 9; 5 7 2 ] ;

    U=ones(size(A)) se obine rezultatul: U =

    1 1 11 1 1

    8.2.3. Matricea zero

    Matricea zero este o matrice cu toate elementele zero:

    i poate fi generat cu funcia zeros, care se apeleaz cu una dintre sintaxele:O= zeros(n) O= zeros(m,n) O= zeros(size(A))

    unde m i n sunt scalari, iar A este matrice. Dac funcia zeros este apelat cu unsingur argument scalar, matricea generat este o matrice ptrat avnd dimensiuneaargumentului. Apelat cu dou argumente scalare (m,n), matricea generat are m liniii n coloane. Dac funcia zeros are ca argument o matrice A, matricea generat este omatrice zero de aceleai dimensiuni cu matricea A.

    8.2.4. Matricea identitate

    Matricea identitate este o matrice care are elementele de pe diagonala principal egale cu unu, iar toate celelalte egale cu zero:

    se obine rezultatul:

    UPGIM

    E

  • Se genereaz cu funcia eye, care se apeleaz cu una dintre sintaxele:l= eye(n) l= eye(m,n) l= eye(size(A))

    unde m i n sunt scalari, iar A este matrice. Dac funcia eye este apelat cu un singurargument scalar, matricea generat este o matrice ptrat avnd dimensiuneaargumentului. Apelat cu dou argumente scalare (m,n), matricea generat are m liniii n coloane. Dac funcia eye are ca argument o matrice A, matricea generat este omatrice identitate de aceleai dimensiuni cu matricea A.

    Exemplul 8.2.3. S se genereze o matrice identitate cu dimensiunea 2x2 i o matrice identitate cu dimensiunea 2x3. Cu secvena:

    A1=eye(2); A2=eye( 2 , 3 ) se obine rezultatul:

    S se genereze o matrice identitate de aceleai dimensiuni cu matricea A. Cu secvena:A= [ 1 3 9; 5 7 2 ] ; I =eye(s i ze (A ) ) se obine rezultatul: 1 =

    1 0 00 1 0

    8.2.5. Matricea aleatoare

    Generarea matricelor cu numere aleatoare se poate face cu: funcia rand pentru numere aleatoare cu distribuie uniform n intervalul (0.0, 1.0); funcia randn pentru numere aleatoare cu distribuie normal (Gaussian), de medie

    zero i variant unu.Sintaxele pentru generarea matricelor cu numere aleatoare sunt:

    Ru=rand(n) Rn=randn(n)Ru=rand(m,n) Rn=randn(m,n)Ru=rand(size(A)) Rn=randn(size(A))

    unde m i n sunt scalari, iar A este matrice. Dac funciile rand i randn sunt apelate cuun singur argument scalar, matricea generat este o matrice ptrat avnddimensiunea argumentului. Apelat cu dou argumente scalare (m,n), matriceagenerat are m linii i n coloane. Dac funciile rand i randn au ca argument o matriceA, matricea generat este o matrice aleatoare de aceleai dimensiuni cu matricea A.

    UPGIM

    E

  • Pentru simularea experienelor care comport aceleai condiii se genereaz serii denumere aleatoare la care se controleaz un parametru de iniializare al generatorului, seed.Rand(seed) sau randn('seed') - retumeaz valoarea curent a numrului seed";rand(seed',n) sau randn('seed',n) - seteaz numrul seed" la valoarea n.

    Exemplul 8.2.5. S se genereze o matrice aleatoare cu dimensiunea 2x2 i o matrice aleatoare cu dimensiunea 2x3 cu elementele distribuite uniform i normal. Cu secvena:Rlu=rand(2) Rln=randn(2) R2u=rand(2,3) R2n=randn(2 , 3)se obin rezultatele:

    R1u= R2u =0.6521 0.6813 0.8456 0.9554 0.14820.1503 0.3858 0.5901 0.5561 0.9833

    R1n= R2n =0.3877 0.1475 0.4142 -1.0215 1.51610.4997 0.5872 -0.9778 0.3177 0.7494

    S se genereze cte o matrice aleatoare de aceleai dimensiuni cu matricea A, cu numerele distribuite uniform i normal. Cu secvena:A=[l 3 9; 5 7 2]; Ru=rand(size(A)) Rn=randn(size(A)) se obine rezultatul:

    Ru = Rn =0.9611 0.1998 0.6293 -0.2091 -1.0639 1.13300.1260 0.3192 0.1267 0.5621 0.3516 0.1500

    8.3. Generarea unei reele (mesh)

    Funcia meshgrid transform domeniul specificat prin vectorii x i y n tablourile Xi Y care pot fi folosite att pentru evaluarea funciilor de dou variabile, ct ipentru reprezentri 3D de tipul mesh sau surface. Se apeleaz cu una dintre sintaxele:

    [X, Y]=meshgrid(x, y) [X, Y]=meshgrid(x)i retumeaz datele n tablourile X i Y, care sunt sunt copii ale vectorului x i ale vectorului y. Cu alte cuvinte, funcia meshgrid retumeaz n tablourile X i Y perechile de coordonate

    UPGIM

    E

  • ale tuturor punctelor din domeniul definit de vectorii x i y. Pentru exemplificare vezi figura 8.1.

    cu pasul 2 pe axa Ox i pasul 1 pe axa Oy. Cu instruciunea:

    [X, Y]=meshgrid (-2: 2:2, -2: 2) se obine rezultatul:

    X= Y =-2 0 2 -2 -2 -2-2 0 2 -1 -1 -1-2 0 2 0 0 0-2 0 2 1 1 1-2 0 2 2 2 2

    UPGIM

    E