Documente Academic
Documente Profesional
Documente Cultură
MATLAB
The Language of Technical
Computing
calcul simbolic
polinoame
sisteme de ecuatii liniare
reprezentari grafice
Aproximari numerice
In Matlab avem urmatoarele functii de aproximare numerica.
Precizia aproximarii poate fi adaptata.
inline - definirea functiei
>> g=inline('sin(x)./(sin(x)+cos(x)+4)')
fplot(numef,lm,specl) - graficul functiei utilizator, unde lm este un
vector cu 2 sau 4 valori indicand limitele pentru x si eventual y,iar
specl este specificatorul de linie acelasi ca la comanda plot.
fminbnd(numef,xmin,xmax)- determinarea valorii minime a unei
functii pe un interval, unde [xmin,xmax] indica intervalul in care
cautam valoarea minima.
fzero(numef, x0) -calculul zerourilor(radacinilor) unei functii,
calculeaza o radacina a functiei cea mai aproape de x0.
quad(numef,a,b)- calculul integralei definite, unde a si b sunt
limitele intre care se integreaza. Putem calcula integrale duble sau
triple cu functiile dblquad(numef, ax,bx,ay,by) sau
triplequad(numef,ax,bx,ay,by,az,bz).
Precizia solutiei
In Matlab, solutiile chiar date de formule exacte sunt intotdeauna
aproximative si de aceea este bine ca inainte de a determina
solutia sa calculam precizia solutiei.
Formula preciziei este data de:
F = 6.27376373225551 % mantisa
D = 307 % exponentul (power of ten)
ans = 6.273763732256170e+307
ezplot(f)- graficul expresiei f=f(x) in intervalul implicit
-2*pi < x < 2*pi.
Polinoame
Notatia utilizata la polinoame este una simbolica.
Matlab utilizeaza in calcule un vector ce are ca elemente
coeficientii monoamelor.
Ex :se foloseste vectorul p=[1 0 0 0 -5 4] pentru a
reprezenta polinomul: p=x5 - 5x + 4
Avem la stanga coeficientul monomului de grad maxim.
Avem coeficient zero pentru monoamele care lipsesc (cele
de grad 4, 3 si 2).
Numarul elementelor este cu 1 mai mare decat gradul
polinomului (adica 6, 5 fiind gradul polinomului+1).
Manipularea polinoamelor
In Matlab, manipularea polinoamelor se face prin intermediul mai
multor functii aplicate asupra vectorilor coeficientilor:
w=conv(u,v) - inmultirea a doua polinoame, unde u si v sunt
vectorii coeficientilor polinoamelor care se inmultesc, iar w este
vectorul coeficientilor polinomului produs.
[c,r]=deconv(p,q) - impartirea a doua polinoame,unde c este
vectorul coeficientilor catului, iar r este vectorul coeficientilor
restului.
roots(p) -determinarea radacinilor unui polinom
w=poly(v) -determinarea polinomului ale carui radacini sunt
elementele unui vector v
polyval(vcoef,x)-determinarea valorii polinomului reprezentat de
vectorul coeficientilor vcoef, intr-un punct x. (atentie! x poate fi si
un vector!)
w=polyder(p) -derivata polinomului p , unde w sunt coeficientii
rezultati.
Manipularea polinoamelor
Deseori avem nevoie sa determinam un polinom de un anumit grad
care sa aproximeze un set de date experimentale.
Una dintre metodele de aproximare este metoda celor mai mici
patrate (the least squares method)- in care polinomul de gradul n
trebuie generat:
yn(x)= a0xn+a1xn-1+...an-1x+an
astfel incat cei n+1 coeficienti aproximeaza cel mai bine datele
masuratorilor experimentale. n=1- aproximare lineara, n=2-
aproximare patratica etc.
In Matlab acesti coeficienti sunt calculati cu functia polyfit.
Pentru evaluarea acestei aproximari putem folosi functia polyval.
Manipularea polinoamelor
w=polyfit(x,y,n)-determinarea unui polinom de un anumit grad
care sa aproximeze un set de date experimentale in sensul
metodei celor mai mici patrate, unde w este vectorul coeficientilor
polinomului cautat, vectorii x si y sunt vectorii datelor
experimentale, iar n este gradul polinomului cautat.
respectiv,
Y = b * inv(A)
Rezolvarea sistemelor compatibile determinate
In Matlab, aceasta metoda nu necesita determinarea inversei
matricei coeficienţilor.
X = A\ b
respectiv,
Y=b/A
Soluia cu operatorul / este mult mai rapida decat cu formula clasica
a inversarii, acest fapt devenind observabil atunci cand matricile
sunt de mari dimensiuni. Astfel pentru matrici de ordinul 1000
soluia / a fost de 400 ori mai rapida.
Rezolvarea sistemelor compatibile nedeterminate
X = A\ b
respectiv,
Y=b/A
Tipul de linie poate fi unul din simbolorile:
- continua (implicit) , -- intrerupta, : puncte, -. linie-punct
Tipul marker-ului:
+ ( semnul +), o (cerc), * (asterisc), . (punct), x (cruce),
s (patrat), d (romb), p (pentagon), h (hexagon), ^ (triunghi
cu un varf in sus), v (triunghi cu un varf in jos), > (triunghi
cu un varf la dreapta), < (triunghi cu un varf la stanga)
Culorile pot fi urmatoarele simboluri:
r (rosu), g (verde), b (albastru), c (bleu), m (mov),
y (galben), k (negru), w (alb).
Reprezentari grafice in spatiu- 3D
In Matlab pot fi reprezentate grafic in spatiul 3D: curbe, suprafete
si corpuri 3-dimensionale. O parte din functiile Matlab destinate
reprezentarilor grafice 3D:
plot3(x,y,z, speclinie) - reprezentarea liniilor in spatiu, x,y,z sunt
vectorii ce definesc punctele de reprezentat, iar speclinie este un sir
de caractere intre ` ` reprezentand tipul liniei ce uneste punctele
definite de x si y, markerul cu care se reprezinta punctele definite de
x si y si culoarea liniei, toate in aceasta ordine.
mesh(x,y,z,c) - reprezentarea grafica a suprafetelor 3D sub forma
unei retele (“mesh”)
surf(x,y,z), surfl(x,y,z,s) - reprezentarea grafica a suprafetelor
pline, cu iluminare
contour(x,y,z) , contourf(x,y,z,v) – reprezentarea grafica doar a
liniilor de contur
fill3 - reprezentarea grafica spatiala a poliedrelor
cylinder (y,n), sphere(n), ellipsoid(xc,yc,zc,rx,ry,rz) -
reprezentarea grafica a unor corpuri tridimensionale
Functii auxiliare pentru reprezentari grafice
Cateva functii auxiliare ce pot controla proprietatile modului de
reprezentare:
title - inserarea unui titlu pentru reprezentarea grafica
axes, axis - controlul aparitiei si stabilirea lungimii unitatilor de
reprezentare pe axele sistemului de coordonate
xlabel, ylabel, zlabel - inserarea etichetelor axelor sistemului de
coordonate
text, gtext - plasarea unui text pe grafic la o anumita pozitie, sau
selectata cu mouse-ul.
hold- pastrarea graficului curent si al proprietatilor sale
subplot - impartirea ferestrei de reprezentare grafica in mai multe
regiuni grafice.
grid - suprapunerea unei retele de linii pe grafic
meshgrid -definirea sub forma de retea de puncte a domeniului de
reprezentare 3D a suprafetelor.
colormap - stabilirea sau returnarea matricei de culoare
shading- stabilirea modului de umbrire pentru suprafetele 3D
Bibliografie
Stormy Attaway, Matlab, A Practical Introduction to
Programming and Problem Solving, 3rd Edition, 2013 Elsevier
Inc.
Calcul numeric-grafica-aplicatii M. Ghinea, V Fireteanu.
Mathlab. Ed. Teora 2001
http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf
http://www.mathworks.com/academia/student_center/tutorials/
launchpad.html
Documentatie Octave in format HTML
https://www.gnu.org/software/octave/doc/interpreter/