Introducció al MATLAB

Aquest material està pensat per introduir-vos en les matemàtiques des d'un punt de vista numèric. Per això es necessita una èina com el Matlab (Matrix Laboratory) de MathWorks, que faciliti els càlculs i a la vegada sigui prou flexible i potent per poder resoldre problemes en tots els camps de l'Enginyeria.
Espero que a partir d'ara el Numèric us acompany!!
TS.

La Interfície de Matlab

Una vegada executem el Matlab, s'obre la finestra principal (interficie) que està descomposada en 3 columnes principals:

Instruccions de Matlab

Per comunicar-nos amb el nucli del Matlab i fer els càlculs numèrics que necessitem, ens cal un lleguatge de programació (propi de Matlab) que proporciona les instruccions que ens faran falta per realitzar el càlcul.
Per passar-li instruccions al Matlab, ho podem fer de dues formes
>>x = 2; %si posem punt i coma el resultat no es mostra per pantalla
>>y = 3;
>>x + y
Ja veurem exemples, però es tracta d'escriure totes les instruccions en un fitxer ( també anomenat script ) i fer play. Anem a fer-ho:
  1. Premeu sobre la icona del signe + de la interficie. S'obrirà un full en blanc dins de la finestra de l'editor.
  2. Copieu les 3 linies dins l'espai amb fons gris d'aquí sota
  3. Premeu sobre el botó de run. Us demamarà un nom pel fitxer, podeu posar-li el que volgueu, per exemple: prac0. Automàticament s'executarà i sortirà el resultat al Command Window
x = 2;
y = 3;
x + y
ans = 5

Operacions Elementals

suma = x+y
suma = 5
resta = x-y
resta = -1
producte = x*y
producte = 6
divisio = x/y
divisio = 0.6667
potencia = x^y
potencia = 8

Funcions Matemàtiques Elementals

arrelquad=sqrt(x)
arrelquad = 1.4142
arrelcub=x^(1/3)
arrelcub = 1.2599
 
sinus_a=sin(x)
sinus_a = 0.9093
cosinus_a=cos(x)
cosinus_a = -0.4161
tangent_a=tan(x)
tangent_a = -2.1850
valor_pi=pi %és una variable de matlab pel número pi (no utilitzar aquest nom com a variable!!)
valor_pi = 3.1416
 
% de la mateixa manera: asin,acos,atan,sinh,cosh,asinh,acosh,
% exp i log (que és el logaritme NEPERIA)

Alliberar una variable

si volem esborrar una variable farem us de la comanda clear
clear x;
% si per error assignem una variable de matlab i ho volem tornar a arreglar
% farem servir clear
pi = -1
pi = -1
clear pi;
pi
ans = 3.1416
% COMPTE!! si escribim: 'clear all' o tant sols 'clear' esborrem TOTES les variables del Workspace

Manipulació de Vectors

Per crear un vector podem definir-lo de dues formes:
  1. directament: v=[1,2,3,4] (valors separats per comes o espais en blanc)
  2. per rangs: v=1:4 (el format és v=Inici:pas:Final (per defecte pas=1 i no cal posar-lo))
  3. per valors equiespaiast: linspace(1,4,4) (consulteu la funció linspace)
vectorF = [1,2,3,4]
vectorF = 1×4
1 2 3 4
vectorF = [1 2 3 4] %l'espai en blanc és equivalent a la coma
vectorF = 1×4
1 2 3 4
vecRang = 1:2:8 %rang de valors
vecRang = 1×4
1 3 5 7
vectorC = [1;2;3;4]
vectorC = 4×1
1 2 3 4
vecRang(4) = 19 %accedim a la component 4 i la modifiquem. Noteu els parèntesis rodons.
vecRang = 1×4
1 3 5 19
vecRang(1:3) = 6 %modifiquem els valors de les components 1 a la 3
vecRang = 1×4
6 6 6 19
ind=[4,3];
vecRang(ind) %mostrem les components 4 i 3 del vector vecRang
ans = 1×2
19 6

Altres manipulacions que es poden fer amb vectors

Si , (feu vosaltres exemples amb vectors)

Per exemple:
u = vectorF*vectorC
u = 30
trasP = vectorC' % vector trasposat
trasP = 1×4
1 2 3 4
length(vectorF)
ans = 4
length(vectorC)
ans = 4
pEsc = dot(vectorF,vectorC') %els dos vectors han de ser files
pEsc = 30

Ordenació de les components d'un vector

v = [5,2,-1,9,0];
w = sort(v) %dona els valors ordenats
w = 1×5
-1 0 2 5 9
% de forma equivalent
[vOrdenat,perm] = sort(v) %perm dona les posicions de v amb l'ordre creixent
vOrdenat = 1×5
-1 0 2 5 9
perm = 1×5
3 5 2 1 4
w = v(perm) %ho veiem ordenat sense perdre l'ordre del vector original
w = 1×5
-1 0 2 5 9

Consultar qualsevol funció o comanda en Matlab

Una de les avantatges que te Matlab és que hi ha molta documentació a internet. Podeu googlejar qualsevol pregunta relacionada amb Matlab. De totes formes, si sabem el nom de la funció o instrucció que volem consultar, és suficient utilitzar la comanda doc
doc max %obre la pàgina de la documentació associada a la funció max

Operacions per element

Si tenim un vector i volem els vector que te les mateixes components però elevades al quadrat, no es pot fer v^2, cal fer v.^2
A a quest punt se'l denomina element-by-element operator
v = 1:5
v = 1×5
1 2 3 4 5
vq = v.^2
vq = 1×5
1 4 9 16 25
anàlogament, si volem calcular una operació per totes les components d'un vector farem us d'aquest operador. Per exemple, per calcular w=x*sin(x) per tot un vector x, farem
x = -2:2;
w = x.*sin(x) % les funcions elementals, ja estan preparades per actuar sobre
w = 1×5
1.8186 0.8415 0 0.8415 1.8186
% vectors i per tant no cal escriure w=x.*sin(x.);

Manipulació de Matrius

Per crear una matriu podem definir-la a partir de diversos vectors:
A = [ 1 2 3 2; 0 -2 3 1; 6, 7, 8, -6] %matriu 3x4 definida per files
A = 3×4
1 2 3 2 0 -2 3 1 6 7 8 -6
v = [10 20 30]
v = 1×3
10 20 30
B = [1 2; 3 4; -1 -2]
B = 3×2
1 2 3 4 -1 -2
A = [B,v']
A = 3×3
1 2 10 3 4 20 -1 -2 30
C = [v; B']
C = 3×3
10 20 30 1 3 -1 2 4 -2
% mireu d'entendre els resultats obtinguts
 
Afila1 = A(1,:) %tota la primera fila
Afila1 = 1×3
1 2 10
Acolumna2 = A(:,2) %tota la segona columna
Acolumna2 = 3×1
2 4 -2
Asub = A(1:2, [1,3]) %submatriu formada per les files 1 i 2 i les columnes 1 i 3
Asub = 2×2
1 10 3 20

Operacions d'àlgebra matricial

Ejercici:

Aneu a la pàgina educativa de Mathworks i completeu el curs gratuït MATLAB onramp (max 2h, obtindreu un certificat en completar el curs).
(c) Numerical Factory 2022