Documente Academic
Documente Profesional
Documente Cultură
\
|
=
|
|
|
|
|
.
|
\
|
=
mn m m m
n
n
n
a a a a
a a a a
a a a a
a a a a
A
3 2 1
3 33 32 31
2 23 22 21
1 13 12 11
4 2 0 0
2 4 2 0
0 2 4 2
0 0 2 4
Se observ c diagonala principal are indicii i=j, iar indicii pentru supra
i subdiagonala respecta condiia (i-j)= 1
n=100+1; %k=1
A=zeros(n);
for i=1:n
for j=1:n
if i==j
A(i,j)=4;
elseif abs(i-j)==1
A(i,j)=-2;
else
A(i,j)=0;
endif
endfor
endfor
[A]
Algebra liniar. Matrici speciale. Rezolvarea sistemelor
de ecuaii liniare
= + + +
= + + +
= + + +
b x a x x x a
b x a x a x a
b x a x a x a
m n mn m m
n n
n n
.....
.......... .......... .......... ..........
.....
.....
2 2 1 1
2 2 2 22 1 21
1 1 2 12 1 11
Se scrie matricial : B X A = , unde
|
|
|
|
|
.
|
\
|
=
a a a
a a a
a a a
mn m m
n
n
A
...
... ... ... ...
...
...
2 1
2 22 21
1 12 11
,
|
|
|
|
|
.
|
\
|
=
m
b
b
b
B
...
2
1
, iar
|
|
|
|
|
.
|
\
|
=
m
x
x
x
X
...
2
1
este vectorul care conine
soluia sistemului.
Sistemul poate fi compatibil determinat (det(A)0)
nedeterminat
incompatibil (nu are soluii)
Conform teoremei Kronecker Capelli sistemul este compatibil
dac rangul matricii sistemului este egal cu rangul matricii extinse.
>> rank(A) == rank([A B])
>> if det(A)~=0
B X A = solutia sistemului se obtine B A X
1
=
>> X=inv(A)*B
>>X=A\B
Exist situaii practice, n care un sistem care descrie un
fenomen fizic are mai multe ecuaii dect necunoscute sau mai
multe necunoscute dect ecuaii sau care din punct de vedere
strict matematic nu are soluii, caz n care se caut o soluie
aproximativ care verific cel mai bine sistemul (prin metoda
celor mai mici ptrate).
Operatorul \ sau pinv rezolv astfel de situaii.
Intruct A este dreptunghiular (deci nu i se poate calcula
inversa), ecuaia matricial se nmulete la stnga cu
transpusa acesteia:
B A X A A
T T
=
( ) ( ) ( ) B A A A X A A A A
T T T T
1 1
=
Matrice ptratic
I (matricea identic)
pinv(A) = pseudoinversa
>> X=pinv(A)*B
>> X=A\B
Matrici speciale:
- matricea nul zeros(n) = creeaz o matrice ptrat nxn cu elemente
nule, iar zeros(n,m) are dimensiunea nxm
- matricea unitate ones(n), respectiv ones(n,m)
- matricea identic eye(n), eye(n,m)
-matricea Hilbert
- matricea magica
>> magic(n)
Melancolia, gravur de Albrecht Drer,1514
3. Calcul simbolic in MATLAB
In MATLAB pot fi efectuate in mod simbolic o serie de calcule matematice cum ar
fi calculul unor derivate, integrale, limite sau serii Taylor; in cadrul algebrei liniare
determinarea inversei, valorilor proprii, determinantului sau descompunerii unei matrici
simbolice, metode de simplificare a expresiilor algebrice, rezolvarea simbolica si
numerica a ecuatiilor algebrice si diferentiale, functii speciale s.a.
Inainte de a incepe calculul simbolic trebuie declarate variabilele respective cu
instructiunea syms.
Exemplul 1:
Dac S este o expresie simbolic, solve(S) determin valorile variabilei simbolice
din expresia S, pentru care S este zero (0).
>>syms a b c x
>>S=a*x^2+b*x+c;
>>solve(S)
Rezult cele dou soluii:
1/2/a*(-b+(b^2-4*a*c)^(1/2))
1/2/a*(-b-(b^2-4*a*c)^(1/2))
Exemplul 2:
>>syms a b c d e f g h i
>>A=[a b c; d e f; g h i]
>>D=det(A)
Exemplul 3:
Functia symsum
- Fie seria lui Riemann 1+1/2^2+1/3^3+.
>>syms x k
>>s1 = symsum(1/k^2,1,inf)
- Fie seria geometrica 1+x+x^2+.
>>syms x k
>>s2 = symsum(x^k,k,0,inf)
A = [ a, b, c]
[ d, e, f]
[ g, h, i]
D = a*e*i - a*f*h - b*d*i + b*f*g + c*d*h - c*e*g
s1 = 1/6*pi^2
s2 = -1/(x-1)
- Calculul sumei patratelor primelor n numere naturale
syms k n x
symsum(k^2)
returneaza: 1/3*k^3-1/2*k^2+1/6*k
- Calculul sumei patratelor primelor 10 numere naturale
symsum(k^2,0,10) returns
385
- Calculul produsului polinoamelor f(x) = ax + 3 i g(x) = x + b
>> syms a b x f g
>> f = a * x + 3
f =
a*x+3
>> g = x + b
g =
x+b
>> f * g
ans =
(a*x+3)*(x+b)
4. Grafica 2D i 3D
n general, pentru a realiza o reprezentare grafic, trebuie parcurse
etapele urmtoare:
Etapa
Instruciuni
1.Pregtirea
datelor
x = 0:0.2:12;
y1=f1(x)
y2=f2(x)
plot
ezplot
plot
polar(teta,r
)
y3=f3(x)
2. Apelarea
unei
funcii
elementare
de plotare
h = plot(x,y1,x,y2,x,y3);
4. Selectarea
caracteristicilo
r liniei i
markerului.
set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'})
set(h,{'Color'},{'r';'g';'b'})
5. Setarea
limitelor
axelor, afisare
grid
axis([0 12 -0.5 1])
grid on
6. Completarea
graficului cu
etichete pe
axe, legend,
text
xlabel('x')
ylabel('y')
legend(h,'First','Second','Third')
title('titlul graficului')
text('alte_notaii')
Funciile pentru realizarea graficelor:
Funcie Utilizare
plot Genereaz grafice 2-D cu scalare liniar a axelor
loglog Genereaz grafice cu scalare logaritmic a axelor
semilog
x
Genereaz grafice cu scalare liniar a axei y i cu scalare logaritmic
a axei x
semilog
y
Genereaz grafice cu scalare liniar a axei x i cu scalare logaritmic
a axei y
plotyy Genereaz grafice cu dubl reprezentare a axei y (pe stnga i pe
dreapta)
ezplot Se utilizeaz pentru reprezentarea funciilor date sub form
parametric. De exemplu:
>> ezplot('x.^2/16+y.^2/3=6',[-15 15])
polar Pentru cazul n care variabilele sunt exprimate n coordinate polare
Reprezentarea mai multor curbe pe acelai grafic
t = 0:pi/100:2*pi;
y1= sin(t);
y2 = sin(t-0.25);
y3 = sin(t-0.5);
plot(t,y1,'-',t,y2,'--',t,y3,':') SAU plot(t,y1)
hold on
plot(t,y2)
plot(t,y3)
hold off
Funciile de plotare accept deci argumente de tip caracter care specific
stilul liniei, simbolurile utilizate pentru marker, culoarea etc. Forma general
este:
plot(x,y,'linestyle_marker_color')
unde linestyle_marker_color este un ir de caractere construit din:
- Un stil de linie (de exemplu linie punctat, plin etc.)
- Un tip de marker (de exemplu x, *, o, etc.)
- Un specificator de culoare ('r' rosu (red), 'b' albastru (blue), 'k'
negru (black; neimplementat in versiunile vechi, 2.x.xx, de GNU
Octave), 'g' verde (green; de fapt este verde fluorescent), 'm'
ciclamen (magenta), 'c' bleu ciel (cyan), 'w' alb (white) si 'y' galben
(yellow).
Se poate folosi un specificator sau mai muli, n orice ordine. De exemplu,
'ro--'
definete o linie ntrerupt, cu markere circulare, ambele colorate rosu.
Specificarea culorii i dimensiunii liniilor
Caracteristicile liniilor se pot controla prin specificarea unor valori pentru
proprietile linilor:
- LineWidth specific limea unei linii.
- MarkerEdgeColor seteaz culoarea markerului sau culoarea marginilor
markerului n cazul anumitor forme (cerc, ptrat etc.)
- MarkerFaceColor seteaz culoarea interiorului markerelor.
- MarkerSize specific dimensiunea markerului.
Exemplu:
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2, 'MarkerEdgeColor','k', 'MarkerFaceColor','g',
'MarkerSize',10)
Plotarea cu axa Y dubl
Comanda plotyy permite crearea unor grafice pentru dou seturi de date i
cu reprezentare dubl a axei Y, pe partea stng i pe partea dreapt.
Exemplu:
t = 0:pi/20:2*pi;
y = exp(sin(t));
plotyy(t,y,t,y,'plot','stem')
Setarea parametrilor axelor
La apelarea comenzii plot, sunt setate automat limitele axelor i gradarea
acestora. Se pot ns folosi i setrile utilizatorului:
axis
axis('auto')
axis([x_left, x_right,
y_infer, y_sup])
axis equal sau
axis('equal')
axis square sau
axis('square')
axis off sau axis('off')
Permite scalarea automata a axelor si
afiseaza limitele axelor.
Permite scalarea automata a axelor.
Exemplu:
axis([0, 100, -5, 10]) scaleaza
graficul de la 0 la 100 pe axa Ox si de
la -5 la 10 pe axa Oy
Scaleaza axele cu unitatea pe axa Ox
egala cu unitatea de pe axa Oy.
Scaleaza axele astfel incat graficul sa
se incadreze intr-un patrat.
Nu mai afiseaza axele graficului
Afiarea unor grafice multiple n aceeai fereastr grafic
Funcia subplot(m,n,i) desparte fereastra de tip figur ntr-o matrice m x n
de mici subploturi (subgrafice) i selecteaz subplotul i ca grafic curent.
Exemplu:
t = 0:pi/20:2*pi;
[x,y] = meshgrid(t);
subplot(2,2,1)
plot(sin(t),cos(t))
axis equal
subplot(2,2,2)
z = sin(x)+cos(y);
plot(t,z)
axis([0 2*pi -2 2])
subplot(2,2,3)
z = sin(x).*cos(y);
plot(t,z)
axis([0 2*pi -1 1])
subplot(2,2,4)
z = (sin(x).^2)-(cos(y).^2);
plot(t,z), axis([0 2*pi -1 1])
Comenzi pentru personalizarea graficelor
MATLAB-ul furnizeaz comenzi de etichetare a fiecrei axe i de plasare a
unui text n orice loc din grafic. Comenzile sunt prezentate n tabelul urmtor.
Comand
Descriere
title Adaug un titlu
xlabel Adaug o etichet pe axa x
ylabel Adaug o etichet pe axa y
zlabel Adaug o etichet pe axa z
legend Adaug o legend
text Afieaz un text la o locaie specificat
gtext Plaseaz textul pe grafic utiliznd mouse-ul
MATLAB-ul interpreteaz caracterele care urmeaz dup backslash
"\" ca i comenzi TeX. Aceste comenzi permit inserarea unor simboluri
cum ar fi literele greceti sau sgeile.
Adugarea textelor
Prin utilizarea funciei text se poate plasa un text (ir de caractere) oriunde
pe grafic. Exemplu:
text(3*pi/4,sin(3*pi/4),...
'\leftarrowsin(t) = .707',...
'FontSize',16)
text(pi,sin(pi),'\leftarrowsin(t) = 0',...
'FontSize',16)
text(5*pi/4,sin(5*pi/4),'sin(t)=-.707
\rightarrow',...
'HorizontalAlignment','right',...
'FontSize',16)
Plasarea textului n mod interactiv
(doar in Matlab!)- cu ajutorul mouse-ului
>> gtext
GRAFICA 3D (funcii reale de dou variabile reale)
- surf, mesh, surfc, meshc
- ezsurf, ezcontour, ezmesh
- plot3
pentru indicaii privind utilizarea lor se tasteaz help comanda, de exemplu
help surf n linia de comand a MATLAB/ Octave
Vizualizarea funciilor de dou variabile
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
- functia colormap('paleta') care are ca efect setarea paletei de culori, codul de culori presetate
pentru 'paleta' fiind: 'jet', 'hsv', 'hot', 'spring', 'summer', 'autumn', 'winter', cool', 'copper', 'gray',
'bone', 'pink'; vezi help colormap. Implicit, colormap este setat pe 'jet'.
colormap(winter) sau culormap(hot)
1
2
3
Crearea de grafice tip contur
Funciile contour i contour3 afieaz contururi 2-D i 3-D. Pentru a seta
numrul de niveluri de contur (implicit se realizeaz automat pe baza valorilor
minime i maxime) se folosete un argument suplimentar opional. De
exemplu,
[X,Y,Z] = peaks;
contour(X,Y,Z,20)
afieaz 20 de contururi ale funciei
ntr-o vedere bidimensional.
Pentru o reprezentare 3 D:
[X,Y,Z] = peaks;
contour3(X,Y,Z,20)
h = findobj(`Type','patch');
set(h,'LineWidth',2)
title('Twenty Contours')
Sa se reprezinte grafic suprafaa descris de ecuaiile: