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:
- Current Folder (esquerra): És la carpeta de treball (es pot cambiar des de la línia superior) on han d'estar TOTS els fitxers
- Command Window (centre): Espai de comunicació amb el Matlab. Aquí escriurem totes les intruccions que necessitem per fer càlculs.
- Workspace (dreta): Lloc on visualitzem totes les variables que tenen a veure amb els nostres càlculs
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
- Una a una per línia de comandes (escriure i premer return )
>>x = 2; %si posem punt i coma el resultat no es mostra per pantalla
>>y = 3;
>>x + y
- Moltes a la vegada utilitzant un fitxer ( els fitxers de Matlab tenen extensió .m)
Ja veurem exemples, però es tracta d'escriure totes les instruccions en un fitxer ( també anomenat script ) i fer play. Anem a fer-ho:
- Premeu sobre la icona del signe + de la interficie. S'obrirà un full en blanc dins de la finestra de l'editor.
- Copieu les 3 linies dins l'espai amb fons gris d'aquí sota
- 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
Operacions Elementals
Funcions Matemàtiques Elementals
valor_pi=pi %és una variable de matlab pel número pi (no utilitzar aquest nom com a variable!!)
% 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
% si per error assignem una variable de matlab i ho volem tornar a arreglar
% 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:
- vector fila: Es pot definir generalment de tres formes:
- directament: v=[1,2,3,4] (valors separats per comes o espais en blanc)
- per rangs: v=1:4 (el format és v=Inici:pas:Final (per defecte pas=1 i no cal posar-lo))
- per valors equiespaiast: linspace(1,4,4) (consulteu la funció linspace)
- vector columna: v=[1;2;3;4]
vectorF = [1 2 3 4] %l'espai en blanc és equivalent a la coma
vecRang = 1:2:8 %rang de valors
vecRang(4) = 19 %accedim a la component 4 i la modifiquem. Noteu els parèntesis rodons.
vecRang(1:3) = 6 %modifiquem els valors de les components 1 a la 3
vecRang(ind) %mostrem les components 4 i 3 del vector vecRang
Altres manipulacions que es poden fer amb vectors
Si
, (feu vosaltres exemples amb vectors) - length(u) : torna el número de components de u
- sum(u) : torna la suma de les components de u.
- prod(u) : torna el producte de les components de u.
- max(u) : torna el valor de la màxima component
- abs(u) : torna el vector dels valors absoluts.
- sort(u) : torna el vector u ordenat en ordre creixent.
- dot(u,v) : torna el producte escalar de u i v.
- cross(u,v) : torna el producte vectorial de u i v (restringit a vectors de
) - cumsum(u) : torna un vector on cada component és la suma acumulada de les components de u de la primera fins la component esmentada.
- cumprod(u) : anàlogament al cas anterior però amb productes.
Per exemple:
trasP = vectorC' % vector trasposat
pEsc = dot(vectorF,vectorC') %els dos vectors han de ser files
Ordenació de les components d'un vector
w = sort(v) %dona els valors ordenats
[vOrdenat,perm] = sort(v) %perm dona les posicions de v amb l'ordre creixent
w = v(perm) %ho veiem ordenat sense perdre l'ordre del vector original
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
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
w = x.*sin(x) % les funcions elementals, ja estan preparades per actuar sobre
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
1 2 3 2
0 -2 3 1
6 7 8 -6
% mireu d'entendre els resultats obtinguts
Afila1 = A(1,:) %tota la primera fila
Acolumna2 = A(:,2) %tota la segona columna
Asub = A(1:2, [1,3]) %submatriu formada per les files 1 i 2 i les columnes 1 i 3
Operacions d'àlgebra matricial
- Producte per escalars:

- Suma:
(atenció amb les dimensions) - Producte matricial:
- Producte matriu vector:
(el vector ha de ser columna) - Potència: A^3 és el mateix que

Ejercici:
(c) Numerical Factory 2022