MATLAB

De Viquipèdia
Dreceres ràpides: navegació, cerca
MATLAB
MATLAB
Desenvolupador(s) MathWorks
Versió estable

R2014a

/ Març 6, 2014; fa 4 mesos (2014-03-06)
Sistema operatiu Multiplataforma (llista) (anglès)
Tipus Programari d'anàlisi numèrica
Llicència Programari propietari
Lloc web Web del producte

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 | modifica el codi]

MATLAB va ser inventat 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 de 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 | modifica el codi]

Hola Món[modifica | modifica el codi]

Aquest és el tradicional exemple Hola món escrit en llengatge MATLAB.

 disp('Hola món');       % mostra el missatge

Disseny de filtres digitals[modifica | modifica el codi]

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 | modifica el codi]

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. Pero 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 | modifica el codi]

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 | modifica el codi]

Referències[modifica | modifica el codi]

  1. Richard Goering, "Matlab edges closer to electronic design automation world," EE Times, 10/04/2004 enllaç
  2. Cleve Moler, the creator of MATLAB. «The Origins of MATLAB», December 2004.

Bibliografia[modifica | modifica el codi]

  • 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 | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: MATLAB