MATLAB

From Wikipedia, the free encyclopedia

MATLAB
Remove ads

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.

Dades ràpides Tipus, Versió inicial ...
Remove ads

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.

Remove ads

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]

Remove ads

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
Remove ads

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
Remove ads

Alternatives

Referències

Bibliografia

Loading content...

Enllaços externs

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads