Diferencia entre revisiones de «MATLAB»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Akhram (discusión · contribs.)
m Deshecha la edición 27674656 de 190.77.162.187 (disc.)
Línea 32: Línea 32:
'''MATLAB''' es un programa de cálculo numérico orientado a matrices. Por tanto, será más eficiente si se diseñan los algoritmos en términos de matrices y vectores.
'''MATLAB''' es un programa de cálculo numérico orientado a matrices. Por tanto, será más eficiente si se diseñan los algoritmos en términos de matrices y vectores.
<!-- === Variables === --> <!-- === Matrices === --> <!-- === Separador === --> <!-- === Gráficos === -->
<!-- === Variables === --> <!-- === Matrices === --> <!-- === Separador === --> <!-- === Gráficos === -->
=== Ejemplos ===
==== Hello World ====
Éste es el tradicional programa [[Hola mundo|Hello World]] hecho con el lenguaje de MATLAB:
<source lang="matlab">
>> disp('Hola mundo'); % Muestra el mensaje.
Hola mundo
</source>

==== Diseño de filtros digitales ====
En este ejemplo se diseña un [[filtro digital]] paso bajo de [[Butterworth]] y se muestra el módulo de su [[espectro de frecuencias|espectro]]:
<source lang="matlab">
close all % Cierra todas las ventanas.
clear all % Borra todas las variables del espacio de trabajo.
clc % Limpia la pantalla.
Fc=200; % Frecuencia de corte.
Fm=1000; % Frecuencia de muestreo.
BT=100; % Banda de transición.
Rs=40; % Ganancias.
rs=10^(-Rs/20);
Rp=2;
rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);
[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs); % Orden del filtro (función buttord).
[B1,A1]=butter(n1b,wn1); % Coeficientes del filtro (función butter).
h1=freqz(B1,A1); % Respuesta en frecuencia (función freqz).
plot(abs(h1)) % Representación de la respuesta.
</source>

== Cajas de herramientas y Paquetes de bloques ==
== Cajas de herramientas y Paquetes de bloques ==
Las funcionalidades de Matlab se agrupan en más de 35 cajas de herramientas y paquetes de bloques (para Simulink), clasificadas en las siguientes categorías:<ref>[http://www.mathworks.es/products/product_listing/index.html?sec=categorydesc Lista de productos MATLAB por categorías]</ref>
Las funcionalidades de Matlab se agrupan en más de 35 cajas de herramientas y paquetes de bloques (para Simulink), clasificadas en las siguientes categorías:<ref>[http://www.mathworks.es/products/product_listing/index.html?sec=categorydesc Lista de productos MATLAB por categorías]</ref>

Revisión del 11:19 10 jul 2009

MATLAB
Información general
Tipo de programa Software matemático
Desarrollador The MathWorks
Lanzamiento inicial 1984
Licencia Propietario
Información técnica
Programado en
Versiones
Última versión estable R2009a ( Marzo de 2009)
Archivos legibles
Archivos editables
Enlaces

MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows y Apple Mac OS X.

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets).

Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como la de programar directamente procesadores digitales de señal o crear código VHDL.

Historia

Fue creado por The MathWorks en 1984, surgiendo la primera versión con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de álgebra lineal y análisis numérico, sin necesidad de escribir programas en dicho lenguaje. El lenguaje de programación M fue creado en 1970 para proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que usar Fortran.

En 2004, se estimaba que MATLAB era empleado por más de un millón de personas en ámbitos académicos y empresariales.[2]

Sintaxis

MATLAB es un programa de cálculo numérico orientado a matrices. Por tanto, será más eficiente si se diseñan los algoritmos en términos de matrices y vectores.

Ejemplos

Hello World

Éste es el tradicional programa Hello World hecho con el lenguaje de MATLAB:

>> disp('Hola mundo');       % Muestra el mensaje.
Hola mundo

Diseño de filtros digitales

En este ejemplo se diseña un filtro digital paso bajo de Butterworth y se muestra el módulo de su espectro:

close all                                        % Cierra todas las ventanas.
clear all                                        % Borra todas las variables del espacio de trabajo.
clc                                              % Limpia la pantalla.
  
Fc=200;                                          % Frecuencia de corte.
Fm=1000;                                         % Frecuencia de muestreo.
BT=100;                                          % Banda de transición.
Rs=40;                                           % Ganancias.
rs=10^(-Rs/20);
Rp=2;
rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);
  
[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs);   % Orden del filtro (función buttord).
[B1,A1]=butter(n1b,wn1);                         % Coeficientes del filtro (función butter).
h1=freqz(B1,A1);                                 % Respuesta en frecuencia (función freqz).
plot(abs(h1))                                    % Representación de la respuesta.

Cajas de herramientas y Paquetes de bloques

Las funcionalidades de Matlab se agrupan en más de 35 cajas de herramientas y paquetes de bloques (para Simulink), clasificadas en las siguientes categorías:[3]

MATLAB (Cajas de herramientas) Simulink
Matemáticas y Optimización Modelado de punto fijo
Estadística y Análisis de datos Modelado basado en eventos
Diseño de sistemas de control y análisis Modelado físico
Procesado de señal y comunicaciones Gráficos de simulación
Procesado de imagen Diseño de sistemas de control y análisis
Pruebas y medidas Procesado de señal y comunicaciones
Biología computacional Generación de código
Modelado y análisis financiero Prototipos de control rápido y SW/HW HIL
Desarrollo de aplicaciones Tarjetas integradas
Informes y conexión a bases de datos Verificación, validación y comprobación

Limitaciones y alternativas

Durante mucho tiempo hubo críticas porque MATLAB es un producto propietario de The Mathworks, ya que los usuarios están sujetos a un vendor lock-in. Recientemente se ha proporcionado una herramienta adicional llamada MATLAB Builder bajo la sección de herramientas Application Deployment para utilizar funciones MATLAB como archivos de biblioteca que pueden ser usados con ambientes de construcción de aplicación .NET o Java. Pero la desventaja es que el computador donde la aplicación tiene que ser utilizada necesita MCR(MATLAB Component Runtime) para que los archivos MATLAB funcionen correctamente. MCR puede ser distribuido libremente con archivos de biblioteca generados por el compilador MATLAB.


Llamar funciones C y Fortran

MATLAB puede llamar funciones y subrutinas escritas en C o Fortran. Se crea una función envoltorio que permite que sean pasados y devueltos tipos de datos de MATLAB. Los archivos objeto dinámicamente cargables creados compilando esas funciones se denominan "MEX-files", aunque la extensión de nombre de archivo depende del sistema operativo y del procesador.

function [fa,dfa]=funcion_y_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

Historial de Versiones

Versión [4]​ Nombre de la versión Año
MATLAB 1.0 R? 1984
MATLAB 2 R? 1986
MATLAB 3 R? 1987
MATLAB 3.5 R? 1990
MATLAB 4 R? 1992
MATLAB 4.2c R7 1994
MATLAB 5.0 R8 1996
MATLAB 5.1 R9 1997
MATLAB 5.1.1 R9.1
MATLAB 5.2 R10 1998
MATLAB 5.2.1 R10.1
MATLAB 5.3 R11 1999
MATLAB 5.3.1 R11.1
MATLAB 6.0 R12 2000
MATLAB 6.1 R12.1 2001
MATLAB 6.5 R13 2002
MATLAB 6.5.1 R13SP1 2003
MATLAB 6.5.2 R13SP2
MATLAB 7 R14 2004
MATLAB 7.0.1 R14SP1
MATLAB 7.0.4 R14SP2 2005
MATLAB 7.1 R14SP3
MATLAB 7.2 R2006a 2006
MATLAB 7.3 R2006b
MATLAB 7.4 R2007a 2007
MATLAB 7.5 R2007b
MATLAB 7.6 R2008a 2008
MATLAB 7.7 R2008b
MATLAB 7.8 R2009a 2009

Referencias

Notas

  1. Requisitos del sistema para MATLAB.
  2. Richard Goering, "Matlab edges closer to electronic design automation world," EE Times, 10/04/2004 online (en inglés)
  3. Lista de productos MATLAB por categorías
  4. Cleve Moler (January de 2006). «El crecimiento de Matlab en las ultimas dos décadas» (PDF). Consultado el 11 de junio de 2009.  Parámetro desconocido |dateformat= ignorado (ayuda)


Enlaces externos