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
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
Hola Món
Aquest és el tradicional exemple Hola món escrit en llengatge MATLAB.
disp('Hola món'); % mostra el missatge
Disseny de filtres digitals
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
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
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
Referències
Bibliografia
Enllaços externs
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.