MATLAB
MATLAB és un entorn de computació numèrica i un llenguatge de programació. Creat per la companyia MathWorks, MATLAB permet manipular fàcilment matrius, dibuixar funcions i dades, implementar algorismes, crear interfícies d'usuari, i comunicar-se amb altres programes en altres llenguatges. Tot i que s'especialitza en computació numèrica, una caixa d'eines opcional (toolbox) permet usar el motor simbòlic de Maple.
El 2004, MATLAB era utilitzat per més d'un milió de persones en la indústria i l'àmbit acadèmic.[1]
El nom MATLAB prové de "Matrix laboratory", és a dir, Laboratori de Matrius.
Història
[modifica]MATLAB va ser desenvolupat a finals dels 70 per Cleve Moler, que en aquell temps era el cap del departament d'informàtica de la Universitat de Nou Mèxic. El va dissenyar per donar accés als seus estudiant a LINPACK i EISPACK sense haver d'aprendre Fortran. Aviat es va distribuir per altres universitats i va trobar una gran acceptació en la comunitat de la matemàtica aplicada. Jack Little, un enginyer, el va veure durant una visita que Moler va fer a la Universitat Stanford el 1983. En reconèixer el seu potencial comercial, va agrupar-se amb Moler i Steve Bangert. Van reescriure MATLAB en llenguatge C i van fundar MathWorks el 1984 per continuar el seu desenvolupament. Aquestes llibreries reescrites es coneixien amb el nom de JACKPAC.
Primer MATLAB va ser adoptat pels enginyers de disseny de control, l'especialitat de Little, però ràpidament es va expandir a altres dominis. Ara és també utilitzat en educació, en particular en l'ensenyament d'àlgebra lineal i anàlisi numèrica, i és popular entre els científics involucrats en el processament d'imatge.[2]
Programes d'exemple
[modifica]Hola Món
[modifica]Aquest és el tradicional exemple Hola món escrit en llengatge MATLAB.
disp('Hola món'); % mostra el missatge
Disseny de filtres digitals
[modifica]En aquest exemple es dissenya un filtre digital passa baix de Butterworth i es mostre el mòdul del seu espectre.
close all % tanca totes les finestres que puguin estar obertes clear all % esborra totes les variables clc % neteja la pantalla
Fc=200; % freqüència de tall Fm=1000; % freqüència de mostreig BT=100; % banda de transició Rs=40;rs=10^(-Rs/20); Rp=2;rp=(10^(Rp/20)-1)/(10^(Rp/20)+1); % guanys
[n1b, wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs); % ordre del filtre [B1,A1]=butter(n1b,wn1); % coeficients del filtre h1=freqz(B1,A1); % resposta en freqüència plot(abs(h1)) % dibuixa la resposta
Limitacions i alternatives
[modifica]Durant molt de temps va tenir moltes crítiques perquè MATLAB és un producte propietari de Mathworks, ja que els usuaris estan subjectes a un venedor lock-in. Recentment s'ha proporcionat una eina addicional dita MATLAB Builder sota la secció d'eines Application Deployment per a fer servir funcions MATLAB com a arxius de biblioteca que poden ser utilitzats en ambients de construcció d'aplicació .NET o Java. Però el desavantatge és que el computador on l'aplicació s'ha d'executar necessita MCR (MATLAB Component Runtime) perquè els arxius MATLAB funcionin correctament. MCR poden ser distribuïts lliurement amb arxius de biblioteca generats pel compilador MATLAB.
- LabVIEW
- GNU Octave
- SAS
- Scilab
- Mathcad
- Llenguatge de programació Python|SciPy & Numerical Python
- llenguatge R
- Àlgebra computacional
Crida de funcions C i Fortran
[modifica]MATLAB pot cridar funcions i subrutines escrites en llenguatge C o en Fortran per a la realització de prototipatges ràpids en molts àmbits de l'enginyeria. Es crea una funció envolupant que permet que siguin passats i retornats tipus de dades de MATLAB. Els arxius objecte dinàmicament carregables creats, compilant aquestes funcions, s'anomenen "MEX-files", encara que l'extensió de nombre d'arxius depengui del sistema operatiu i del processador.
function [fa,dfa]=funcio_i_derivada(x)
fa=0;
n=1;
h=1;
dfa=0;
while (n <= (10*(x-(1/2))^2) + 10)
fa=fa+(((-x^2)^n)/factorial(2*n));
h=h/2;
dfa=dfa+(((((-(x+h)^2)^n)/factorial(2*n))-(((-x^2)^n)/factorial(2*n)))/h);
n=n+1;
end
function v=aproxima_derivada2(funci,a)
syms x;
i=1;
h=1;
v(i)=(subs(funci,a+h)+subs(funci,a-h)-(2*subs(funci,a)))/(h^2);
error=1;
while(error>1e-10)
h=h/2;
i=i+1;
v(i)=(subs(funci,a+h)+subs(funci,a-h)-(2*subs(funci,a)))/(h^2);
error= abs(v(i)-v(i-1));
end
Alternatives
[modifica]Referències
[modifica]- ↑ Richard Goering, "Matlab edges closer to electronic design automation world," EE Times, 10/04/2004 enllaç
- ↑ Cleve Moler, the creator of MATLAB. «The Origins of MATLAB», December 2004. Arxivat de l'original el 2006-03-18. [Consulta: 17 juny 2007].
Bibliografia
[modifica]- RECERCA i TALENT JOVE.Premis Consell Social URV als millors treballs de recerca de secundària 2007 – 2009. Publicacions URV, ISBN 9788484241461
- BURGHES D., BORRIE M. (1981). Modelling with differential equations. Ed. Ellis horwood limited, London
- CHENEY Ward, KINCAID David (1985). Numerical mathematics and computing. Ed. Brooks/Cole Publishing Company, Monterey.
- CLEVE, Moler (2004). Numerical Computing with Matlab. Ed. Siam, Philadelphia.
- PRESS William, FLANNERY Brian, TOUKOLSKY Saul, VETTERLING William (1986). Numerical Recipies - the art of Scientific Computing. Ed. Cambridge University Press, Cambridge.
- GERALD Curtis, WHEATLEY Patrick (1970). Applied Numerical Analysis. Ed Addison-Wesley publishing company, California.
Enllaços externs
[modifica]- Descripció del MATLAB, a la pàgina de MathWorks (anglès)
- Tutorial per a novells (anglès)
- MATLAB Central: Comunitat d'usuaris (anglès)