Está en la página 1de 28

MATLAB

Matlab es un entorno de trabajo para el clculo cientfico. Programado


originalmente por el matemtico y programador, especialista en anlisis
numrico, Cleve Moler a finales de los aos 70, su finalidad original era
proporcionar una forma sencilla de acceder a las libreras LINPACK y
EISPACK donde estn implementadas, de una forma altamente eficiente, los
algoritmos clave del anlisis matricial. De hecho matlab es una abreviacin
de Matrix Laboratory.
Su primera implementacin se hizo en Fortran que era, y en buena medida
an sigue sindolo, el lenguaje estndar en la implementacin de mtodos
numricos. Posteriormente se reimplement en C++, que es como se
encuentra en la actualidad.
Qu es?
Las aplicaciones de Matlab se fueron extendiendo a otras ramas del clculo
cientfico y de las ciencias aplicadas en general, dotndole de una gran
popularidad en ambientes cientficos, especialmente en Ingeniera. Dichas
extensiones se consiguieron en gran parte mediante la implementacin de
toolboxes, libreras escritas en el lenguaje de programacin propio de
Matlab y que ampliaban el rango de problemas que podan resolverse.
El lenguaje de programacin de Matlab es bastante ms flexible que los
lenguajes tradicionales. No es preciso la declaracin inicial de variables,
stas se pueden introducir en el momento que se necesiten, y por ejemplo,
vectores y matrices pueden declararse sin especificar sus dimensiones e
incluso cambiar sus tamaos sobre la marcha.
Cmo trabaja?
Por otro lado, una gran cantidad de mtodos numricos se encuentran
implementados de una forma muy eficiente y son accesibles como simples
comandos. An as, es conveniente tener una idea de qu mtodos se
estn utilizando para ser conscientes bajo qu condiciones van a funcionar,
cul es en cada caso el mtodo adecuado, y especialmente el significado de
los, posiblemente, numerosos argumentos opcionales que controlan el
funcionamiento del algoritmo.
A priori se pueden distinguir dos tipos de funciones en Matlab:
funciones compiladas (built in functions): estn optimizadas, son
programas ya compilados y con el cdigo no accesible para el usuario.
funciones no compiladas: estn escritas siguiendo el lenguaje de
programacin propio de Matlab. Estos comandos se guardan en
ficheros *.m que es la extensin estndar de los ficheros de Matlab.
Entorno de trabajo
Command window: ventana donde podemos ejecutar los comandos.
El prompt de matlab es >>. El usuario escribe a continuacin.
Para ejecutar se pulsa la tecla enter.
Se pueden recuperar comandos anteriores navegando con las flechas y .
Se distinguen maysculas y minsculas.
Cuando se trabaje en matlab tener en cuenta:
Todos los comandos de matlab se escriben en minsculas y los
argumentos se envan entre parntesis separados por comas
El caracter % se utiliza para insertar comentarios. Todo lo que sigue, en
la misma lnea, es ignorado por matlab.
Si se escribe el smbolo ; al final de una instruccin, sta se ejecuta pero
el resultado no se muestra por pantalla.
Comandos de ayuda
help: muestra una ayuda por pantalla, en la ventana de comandos, con
la informacin esencial sobre un comando concreto.
doc: similar a help pero despliega la ayuda en una ventana auxiliar,
permitiendo as una navegacin, estilo web, muy cmoda.
Variables
Matlab no necesita la declaracin de variables como en un lenguaje
tradicional. En principio todas las variables son reales, y basta hacer uso de
ellas para que queden declaradas.
>>a = 2;b = -3;
Ejemplo
Operadores aritmticos
Operador Descripcin
+ suma
resta
producto
/ divisin
^ potencia
>>c = a*b
Operadores relacionales
Operador Descripcin
== igualdad
~ = desigualdad
> mayor
< menor
>= mayor o igual
<= menor o igual
Operadores lgicos
Operador Descripcin
&& "y" lgico
|| "o" lgico
~ negacin lgica
Vectores y matrices
Un vector o una matriz se puede definir dando sus elementos entre
corchetes y separando filas mediante ;.
>>a = [1,4,-2,0,3];
>>b = [6;-3;2];
vector fila 1x5
vector columna 3x1
>>M = [2,1,3;0,8,-3;4,0,1]; matriz 3x3
Ejemplo
= 1,4, 2,0,3
=
6
3
2

=
2 1 3
0 8 3
4 0 1

Otra forma de definir un vector/matriz es insertando sus elementos en
cada posicin.
>>Q(1,1) = 2;Q(1,2) = 5;Q(2,1) = 1;Q(2,2) = -3;
Ejemplo
Esto define una matriz Q de 2x2
=
2 5
1 3

Acceso a elementos de matrices
Ejemplo Sea la matriz =
1 0 4
0 3 2
5 6 2

>>a = P(1,3);
asigna el elemento (1,3) de P a la variable a
>>P = [1,0,4;0,3,2;5,6,2];
Dimensiones de vectores y matrices
El comando size devuelve la dimensin de un vector/matriz en un
vector de tamao 21 con el nmero de filas y columnas.
El comando length devuelve la longitud (nmero de elementos) de un
vector.
a : b : c construye el vector de valores [a a+b a+2*b .... a+k*b]
donde a+k*b es el mayor nmero natural que cumple a+k*b c. La
instruccin a : c toma b = 1.
Definicin de vectores con distribucin regular
linspace(a,b,n) devuelve una particin uniforme de [a,b] en n puntos
Algunas propiedades vectoriales
Ejemplo Sea el vector = 1,3, 2
>>s = norm(v,2)
>>s = norm(v,inf)
Norma euclideana
2
:
Norma infinita

:
Ejemplo Sean los vectores
1
= 1,3, 2 y
2
= 4,1,5
=
1

2

>>c = dot(v1,v2)
Producto interno :
Matrices especiales
eye(n) es la matriz identidad de orden n.
ones(m,n) es una matriz m x n de 1s.
zeros(m,n) es una matriz m x n de 0s.
=
1 0 0
0 1 0
0 0 1

=
1 1 1
1 1 1
1 1 1

=
0 0 0
0 0 0
0 0 0

Ejemplo
Ejemplo
Ejemplo
>>P = eye(3)
>>Q = ones(3,3)
>>R = zeros(3,3)
Estructuras de control
Estructuras
de control
Selectiva
Selectiva switch
Condicional if
Repetitiva
Bucle for
Bucle while
Funciones
function [out1,out2] = algorithm(in1,in2)
declaration line
documentation
reserved word
output arguments
identifier
input arguments
implementation
%
% algorithm :
%
% INPUT
% in1 :
% in2 :
% OUTPUT
% out1 :
% out2 :
%


Grficos 1D
x = linspace(-4*pi,4*pi,100);
-15 -10 -5 0 5 10 15
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
y = sin(x)./x;
figure
plot(x,y,b.-)
x = linspace(-pi,pi,100);
-4 -3 -2 -1 0 1 2 3 4
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Superposicin de grficos
y1 = sin(x);
figure
plot(x,y1,b.-,x,y2,r.-)
y2 = cos(x);
x = linspace(-pi,pi,100);
-4 -3 -2 -1 0 1 2 3 4
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
y1 = sin(x); y2 = cos(x);
figure
hold on
plot(x,y1,b.-), plot(x,y2,r.-)
hold off
x1 = linspace(-pi,pi,100);
-4 -3 -2 -1 0 1 2 3 4
-1
-0.5
0
0.5
1
-4 -3 -2 -1 0 1 2 3 4
-1
-0.5
0
0.5
1
x2 = linspace(-pi,pi,200);
y1 = sin(x1); y2 = cos(x2);
figure
subplot(2,1,1),plot(x1,y1,b-)
subplot(2,1,2),plot(x2,y2,r-)
t1 = linspace(-pi,pi,100);
t2 = linspace(-pi,pi,200);
x = sin(x1);
v = cos(x2);
figure
subplot(2,1,1)
title(Posicion)
plot(t1,x,b-)
xlabel(t),ylabel(x),grid
subplot(2,1,2)
title(Velocidad)
plot(t2,v,r-)
xlabel(t),ylabel(v),grid
-4 -3 -2 -1 0 1 2 3 4
-1
-0.5
0
0.5
1
Posicion
t
x
-4 -3 -2 -1 0 1 2 3 4
-1
-0.5
0
0.5
1
Velocidad
t
v

También podría gustarte