Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Matlab

Matematica


Introducere

Pornirea Matlab-ului



Pe o platforma Windows, Matlab-ul de porneste printr-un dublu click pe pictograma shortcut-ul de pe desktop dau din orice alta locatie

Pe o platforma Linux, Matlab-ul de porneste prin scrierea comenzii "matlab" in promterul sistemului de operare.

Modificarea parametrilor cu privire la directorului din care Matlab porneste sau executa in mod automat comenzile, se poate face prin crearea fisierului startup.m.

Inchiderea aplicatiei Matlab

Pentru a inchide sesiunea lucru din Matlab, selectam File -> Exit MATLAB sau se poate scrie comanda quit in Command Window. De asemenea se poate scrie un script finish.m ce va executa de fiecare data cand matlabul este inchis, functiile de salvare a workspace-ului sau de afisare a unei ferestre de dialog de confirmare.

Desktopul Matlab-ului

Desktopul matlab-ului contine in interfata grafica cu utilizatorul, instrumente de management al fisierelor, variabilelor sau a aplicatiilor asociate matlab-ului.

In figura de mai jos este prezentat desktopul implicit. Acesta poate fi customizat in functie de dorinta utilizatorului

Introducerea  functiilor se face dupa promterul ferestrei Command Window

 

Fereastra Command History memoreaza

Functiile rulate

 

Matrici si siruri (arrays)

In matlab, matricile sunt definit ca un tabel dreptunghiular de numere sau mai general de elemente de acelasi tip. Mat 313c24d ricile pot fi scalari: matrici cu un singur element, matrice 1 la 1, sau vectori: matrici cu 1 coloana sau 1 rand. In matalb, datele numerice sau nenumerice pot fi memorate si in alte moduri dar pentru inceput vom considera matricea singura posibilitate de reprezentare a datelor.

Avantajul folosirii matricilor este dat defaptul ca in acest fel numerele pot fi folosite toate odata si nu pe rand.

Un exemplu de matrice, exemplu ce tot va fi folosit pe parcursul cursului apare in gravura renascentista Melancholia I (1514), de artistul si matematicianul (amator) Albrecht Dürer.

( 21 mai 1471, Nürnberg - 6 aprilie 1528, Nürnberg, al treilea fiu din cei 18 copii ai lui Albrecht si Barbara, a fost un pictor, grafician si teoretician al artei german, una din personalitatile de seama ale istoriei universale a artei. Opera sa impregnata de ideile Renasterii, Umanismului si Reformei a exercitat o deosebita influenta in special asupra artistilor germani si olandezi de mai tarziu. Cu cele ca. 350 de gravuri in lemn si 100 gravuri in cupru a contribuit in mod hotaritor la dezvoltarea gravurii ca forma de arta de sine statatoare.)

Patratul magic al lui Albrecht Dürer, sculptat in opera sa Melancolía este considerat ca fiind primul din artele europene. In patratul de ordinul patru se obtine constanta magica (34) in randuri, coloane, diagonale principale, si in cele patru submatricii de ordinul (2) in care se poate imparti patratul, adaugand numerele din colturi, cele patru numere centrale, numerele centrale ale primelor si ultimelor randuri (sau coloane) etc. si cifrele centrale ale ultimului rand.

Introducerea matricilor

In Matlab matricile pot fi introduse in urmatoarele moduri:

Introducerea unei liste explicite de elemente

Incarcarea dintr-un fisier extern

Generarea de matrici folosind functiile de generare interne (matlab)

Generarea de matrici folosind functiile de generare create de utilizator

Introducem matricea lui Durer respectand urmatoarele reguli:

Elementele dintr-un rand vor fi despartite de virgula sau spatiu

Se foloseste ";" la terminarea fiecarui rand

Intreaga lista de elemente se pune intre "[ ]".

Pentru a introduce matricea vom tasta in Command Window urmatoarele

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Matlab va afisa matricea introdusa sub forma:

A =

3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Odata matricea introdusa aceasta va fi memorata in workspace si se va putea apela prin tastarea numelui matricii "A". In continuare vom vedea de ce acest patrat (matrice) este magic.

Suma (sum), transpusa (trans) si digonala (diag) matricei

Proprietatile magice ale "patratului magic" sunt date de faptul ca se obtine acelasi rezultat la insumarea elementelor patratului dupa anumite reguli: de-a lungul oricarui rand coloane sau diagonale. Sa verificam!

Prima comanda ce se poate da este:

sum(A)

Matlab-ul va afisa:

ans =

34 34 34

In cazul in care nu se specifica variabila de iesire, Matlabul va utiliza denumirea generica:"ans" - prescurtarea de la answer pentru a memora valoarea calculata.

Aplicand comanda sum asupra matricii A, matlab-ul a retunat un vector rand ce contine rezultatele sumelor celor 4 coloane, obtinandu-se suma magica 34.

Deoarece Matlabul prefera sa lucreze cu coloanele matricilor, pentru a putea face suma randurilor matricii va trebui sa folosim transpusa acesteia (schimbarea randurilor cu coloanele). Transpusa matricii A se obtine prin urmatoarea comanda:

A'

Ce va determina:

ans =

16 5 9 4

10 6 15

2 11 7 14

13 8 12 1

Iar comanda sum(A') va produce un vector coloana ce va contine suma randurilor matricii.

ans =

Suma elementelor diagonalei principale se obtine din comanda sum aplicata functiei diag(A).

diag(A)

produce

ans =

si

sum(diag(A))

produce

ans =

Suma elementelor celelaltei diagonale nu se poate face in mod direct deoarece matlab nu a implemntat o functie directa de selectare a elementelor. Totusi prin folosirea functiei de interschimbare de la stanga la dreapta a elementelor matricii, fliplr, si aplicand functia de selectare a elementelor de diagonalei principale, pot fi selectate elementele diagonalei secundare.

sum(diag(fliplr(A)))

ans =

In acest mod am putut verifica daca matricea lui Durer este intradevar magica.

Indici

Elementul din randul i si coloana j a matricei A poate fi apelat prin A(i,j). De exemplu A(4,2) este elementul din randul 4 si coloana 2. In cazul nostru A(4,2) este 15. Pentru a calcula suma elementelor coloanei 4 vom scrie:

A(1,4) + A(2,4) + A(3,4) + A(4,4)

ce produce

ans =

Este de asemenea posibil sa ne referim la elementul unei matrici printr-un indice A(k). Acesta este modul obisnuit ce referire in cadrul vectorilor rand sau coloana. Daca ne referim in acelasi mod in cazul unei matrici bidimensionale atunci sirul de elementele va fi considerat ca un singur vector coloana format din coloanele matricei originale. Astfel in cazul matricei Durer, A(8) este o alta modalitate de a ne referila la valoarea 15 din locatia A(4,2).

Daca se incearca apelarea unei locatii din afara matricei matlab-ul va returna un mesaj de eroare:

t = A(4,5)

Index exceeds matrix dimensions.

Pe de alta parte daca se incearca memorarea unei valori la o locatie din afara matricii, atunci matlab-ul va creste numarul de coloane pentru a permite meorarea valorii la adresa specificata.

X = A;

X(4,5) = 17

X =

16 3 2 13 0

5 10 11 8 0

9 6 7 12 0

4 15 14 1 17

Operatorul doua puncte (:)

Operatorul doua puncte (:), este unul dintre cei mai importanti operatori ai matlabului..Acest operator se poate regasi in una din urmatoarele situatii.

Expresia:

1 : 10

genereaza un vector rand ce contine numerele intregi de la 1 la 10

2 3 4 5 6 7 8 9 10

Pentru a obtine o incrementare neunitara a sirului, va trebui specificata valoarea incrementului:

100 : -7 : 50

Genereaza valorile:

100 93 86 79 72 65 58 51

iar  0: pi/4: pi

determina sirul

0 0.7854 1.5708 2.3562 3.1416

Expresie ce foloseste un indice de referire la o anumita coloana a unei matrici:

A(1:k,j)

face referire la primele k elemente din coloana j a matricei A

Deci

sum(A(1:4,4))

va calcula suma primelor 4 elemente ale coloanei 4.

Operatorul doua puncte se refera la toate elementele unei coloane sau ale unui rand iar cuvantul cheie and se refera la ultima coloana sau rand ale matricii A.

sum(A(:,end))

va calcula suma elementelor ultimei coloane ale matricii A.

ans =

Functia magica

Matlab-ul are o functie ce creeaza patrate magice de aproape orice marime. Functia se numeste magic.

B = magic(4)

B =

2 3 13

11 10 8

9 7 6 12

4 14 15 1

Aceasta matrice este aproape la fel ca cea gravata de Durer si are aceleasi proprietati "magice" doar ca doua coloane din mijloc sunt inversate .

Pentru a obtine matricea lui Durer vom inversa coloanele din mijloc

A = B(:,[1 3 2 4])

ceea ce spune ca matricea A va avea coloanele matricei B in ordinea 1, 3, 2, 4. Ceea ce va determina:

A =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

De ca a schimbat Durer coloanele 2 si 3 intre ele? Probabil ca a vrut sa sublinieze anul gravarii 1514.

Expresii

Ca si alte programe, Matlabul, pune la dispozitia utilizatorului expresii matematice , dar spre deosebire de alte limbaje de programare, aceste expresii vor implica intrega matrice si nu doar un singur element.

Aceste expresii pot fi regasite sub forma de:

variabile

numere

operatori

functii

Variabilele

Matlab nu cere ca tipul sau dimensiunea variabilelor sa fie definite. Atunci cand un nume nou de variabila este declarat, aceasta este creata in mod automat si i se va aloca o anumita memorie. Daca variabila a mai fost declarata , Matlab ii va modifica valoarea continuta si daca este cazul si marimea memoriei alocate.

De exemplu pentru:

num_students = 25

se va crea o matrice 1 la 1 numita num_students si va memora valoarea 25 in locatia singurului element continut.

Numele unei variabile incepe cu o litera si este urmata de o serie de litere, numere sau underscor-uri. Numarul maxim de caractere recunoscut intr-un nume este de 31 de caractere. Matlab face distinctia intre litere mici si mari = case sensitive: A si a nu sunt aceleasi variabile. Pentru a vedea valorile asignate fiecarei variabile trebuie doar introdus numele variabilei.

Numerele

Reprezentarea numerelor in Malab se face in baza zece, cu optiunea de punct zecimal si semn negativ sau pozitiv. In notatia stiintifica se foloseste litera e pentru a specifica puterea lui zece. Numerele imaginare folosesc literele i sau j ca sufixe. Mai jos sunt prezentate cateva din numerele corect reprezentate:

-99 0.0001

1.60210e-20 6.02252e23

1i   -3.14159j 3e5i

Toate numerele sunt memorate intern folosind o reprezentare specificata de standardul IEEE in virgula mobila. Numerele rerezentate in virgula mobila au o precizie finita de 16 digiti zecimali si un domeniu de reprezentare cuprins intre 10-308 si 10308.

Operatori

Matlab foloseste operatorii aritmetici clasici:

+ adunare

scadere

inmultire

impartire

impartire la stinga

^ ridicare la putere

' transpusa complex conjugate

( ) specifica o evaluare a expresiei

Functii

Matlab contine un numar de functii matematice standard: abs, sqrt, exp, si sin si unu numar de functii avansate ca si functia Bassel sau gama. Daca se aplica radacina patrata unui numar negativ Matlab nu va returna o eroare ci va calcula rezultatul complex. O lista completa a functiilor matematice elementare se gaseste scriind:

help elfun

Pentru o lista a matricilor si a functiilor matematice ceva mai avansate se tasteaza:

help specfun

help elmat

Cateva functii, ca sqrt si sin sunt functii incorporate.Aceste functii sunt parte din mediul Matlab, sunt calculate foarte rapid dar detaliile (algoritmul de calcul) de implementare nu sunt accesibile utilizatorului. Alte functii, ca si gamma sau sinh, sunt implementate (este descris algoritmul de calcul) prin intermediul unui fisier M. Astefel ca exista functii carora li se poate accesa (modifica) codul de implementarea a algoritmului iar altora nu.

Unele dintre functii genereaza valori unor constante:

pi 3.14159265.

i unitea imaginara,

j la fel ca i

eps precizia la reprezentarea in virgula mobila, ε =

realmin cel mai mic numar reprezentat in virgula mobila, 2-1022

realmax cel mai mare numar reprezentat in virgula mobila, (2-ε)21023

inf infinit

NaN Not-a-number, nu este un numar.

Valoarea infinit se obtine la impartirea unui numar diferit de zero la zero sau la evaluarea unui numar mai mare decat realmax.

NaN este generat atunci cand se evalueaza o expresie de tipul 0/0 sau inf - inf.

Deoarece numele variabilelor exemplificate nu este rezevata acestora li se poate redefini orice alta valoare:

eps = 1.e-6

Valoarea originala se poate reseta prin:

clear eps

Exemple de expresii

Mai jos sunt prezentate cateva expresii si rezultatele lor:

rho = (1+sqrt(5))/2

rho =

1.6180

a = abs(3+4i)

a =

5

z = sqrt(besselk(4/3,rho-i))

z =

0.3730+ 0.3214i

huge = exp(log(realmax))

huge =

1.7977e+308

toobig = pi*huge

toobig =

Inf

Matrici

Vor fi explicitate modurile de definire a matricilor:

Functii de generare a matricilor

Functii de incarcare

Fisiere M

Concatenarea

Stergerea de randuri sau coloane

Functii de generare a matricilor

zeros toate elementele matricei sunt egale cu 0

ones toate elementele matricei sunt egale cu 1

rand valori aleatoare uniform distribuite

randn valori aleatoare nornal distribuite (medie 0 si dispersie 1)

Cateva expresii

Z = zeros(2,4)

Z =

F = 5*ones(3,3)

F =

N = fix(10*rand(1,10))

N =

2 6 4 8 7 4 0 8 4

R = randn(4,4)

R =

0.0860 -0.3210 -1.2316

-0.6014 -2.0046 1.2366 1.0556

0.5512 -0.4931 -0.6313 -0.1132

-1.0998 0.4620 -2.3252 0.3792

Functii de incarcare

Functia de incarcare citeste fisierele ce contin matricile


Document Info


Accesari: 3754
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )