Vous êtes sur la page 1sur 24

Generalidades

Ricardo A. Prato Torres, Dr. rer. nat.

Universidad del Atlantico


Facultad de Educacion
Licenciatura en matematicas

2017

Pagina 1 Generalidades 2017 R. Prato


Introduccion

Matlab es una abreviatura de Matrix Laboratory.


Orgenes : Cleve Moler (finales 70) con el proposito de crear un
acceso sencillo y comodo a las bibliotecas LINPACK y EISPACK,
libreras que implementan de una forma altamente eficiente los
algoritmos claves del analisis matricial
Metodo de Gauss
Descomposiciones habituales en algebra matricial numerica (LU, QR)
Manejo de matrices sparse, o matrices dispersas muy habituales por
ejemplo en los elementos finitos, y en la adaptacion optima de los
algoritmos a estos casos particulares

Pagina 2 Generalidades 2017 R. Prato


Introduccion

La implementacion original la llevo a cabo Cleve Moler (finales 70).

Se programo inicialmente en Fortran1 . Actualmente esta escrito en


lenguaje C 2 .

Extension a otras ramas del calculo cientfico, mediante la


implementacion de toolboxes; libreras que utilizan Matlab para
ampliar el rango de problemas que puede cubrir.

Compatiblidad con otros lenguajes ( Fortran , C ++3 , C )

Programacion en Paralelo!
1
Fortran significa Formula translation y es el estandar en la implementacion para
metodos numericos. Nacio como lenguaje de programacion en 1954.
2
Lenguaje de programacion creado en 1972. Es un lenguaje orientado a la
implementacion de Sistemas Operativos, concretamente Unix
3
Lenguaje de programacion creado a mediados de los 80. Permite la programacion
orientada a objetos
Pagina 3 Generalidades 2017 R. Prato
Introduccion

Matlab muestra un gran potencial entre otros:


Algebra lineal numerica.
Diseno de sistemas de control.
Salidas graficas
Estadstica
Simulacion de sistemas dinamicos
La programacion en Matlab resulta ser flexible que en otros lenguajes
de programacion
No es preciso la declaracion inicial de variables, estas se pueden
introducir sobre la marcha.
Vectores y matrices pueden declararse sin especificar sus dimensiones e
incluso cambiar sus dimensiones sobre la marcha.

Pagina 4 Generalidades 2017 R. Prato


Introduccion

Matlab utiliza dos tipos de funciones:


Funciones compiladas (Built in functions): Su codigo esta oculto y no
puede ser modificado por el usuario
Operaciones fundamentales +, *, /, . ..
Las funciones matematicas basicas (sin, cos, exp)
Salidas graficas (plot, surf,...)
Algoritmos basicos del algebra lineal (inv, det, lu,chol, qr,...)

Funciones no compiladas
Estan escritas siguiendo el lenguaje de programacion propio de Matlab.
Se guardan en ficheros *.m que es el estandar de Matlab.

Pagina 5 Generalidades 2017 R. Prato


Introduccion

No vectorizada Vectorizada
y=zeros(1000,1); h=2*pi/999;
for i=0:999 y=sin(linspace(0,2*pi,1000));
y(i+1)=sin(h*i);
end

La orden linspace as aplicada devuelve un array que 1000 valores del


seno en puntos equidistantes entre 0 y 2 . mientras que en la version
sin vectorizar se llama 1000 veces a la funcion sin mientras que en la
vectorizada solo hay una llamada pero con un vector de 1000 componentes.

Pagina 6 Generalidades 2017 R. Prato


Introduccion

La forma inicial de trabajar con Matlab es en modo comando: el


usuario pregunta y Matlab responde.
Dificultad: El interfaz es algo primitivo respecto a otros programas
habituales. As, a modo de ejemplo, es difcil editar varias
instrucciones ejecutadas anteriormente.
Solucion: Este problema se subsana en gran medida trabajando con
ficheros script e implementando funciones.

Pagina 7 Generalidades 2017 R. Prato


Ventanas
En la presentacion de Matlab se distinguen las siguientes ventanas:

Pagina 8 Generalidades 2017 R. Prato


Ventanas de ayuda

Pagina 9 Generalidades 2017 R. Prato


Caractersticas

Entre las caractersticas principales de Matlab se encuentran:


El prompt: >>. El usuario escribe a continuacion. Para ejecutar se
pulsa la tecla Enter.
Se pueden recuperar comandos anteriores navegando con las flechas
y .
Se distinguen mayusculas y minusculas.
El caracter % se utiliza para insertar comentarios. Todo lo que sigue
es ignorado por Matlab.
Si se teclea al final de una orden el caracter ;
esta se ejecuta pero el resultado no se visualiza por pantalla.

Pagina 10 Generalidades 2017 R. Prato


Ejercicios

>> 1+1 % mi primera operacion


>> 3*2 % Muy facil hasta el momento!
>> (2/3)+(1/5)
>> sin((3/2)*pi)
>> linspace(0,2*pi,4);
>> linspace(0,2*pi,4)
>> x=pi;
>> cos(x);

Pagina 11 Generalidades 2017 R. Prato


Format long, short,bank, rat
los resultados numericos se presentan con cuatro cifras decimales correctas,
aunque todas las operaciones se ejecutan en doble precision.
Si se desean otro tipo de salidas estan disponibles las instrucciones
>> format long : Se obtienen salidas con 16 cifras significativas.
>> format long
>> pi
>> ans =
>> 3.141592653589793
>> format short : Se obtienen salidas con 4 cifras significativas.
>> format short
>> pi
>> ans =
>> 3.1416
>> format bank : Se obtienen salidas con 2 cifras significativas.
>> format bank
>> pi
>> ans =
>> 3.14
Pagina 12 Generalidades 2017 R. Prato
Help: II
Las instrucciones a tener en cuenta son:

help: muestra una ayuda


por pantalla, en la ventana
principal, con la informacion
esencial sobre un comando
Pagina 13 concreto.
Generalidades 2017 R. Prato
Ejercicios

Utilizando las funciones de ayuda, obtener informacion de alguna de estos


comandos
cos exp
log2 asin
atan log
abs sign
Bessel sinh
cosh acosh

Pagina 14 Generalidades 2017 R. Prato


Ejercicios

En Matlab la declaracion de variables se


lleva a cabo de una forma muy flexible. En >> a=1; b=2; c=3;
principio todas las variables son reales de >> a-b
doble precision, aunque se puede cambiar
ans = -1
facilmente de tipo si as se precisa.

Pagina 15 Generalidades 2017 R. Prato


Ejercicios

>> who
El comando who informa de las vari- >> Your variables are:
ables declaradas.
a b c
Si se desea informacion mas precisa
sobre una variable se puede utilizar la
instruccion whos. >> whos a

Para borrar una variable se utiliza


la instruccion clear >> clear a

Pagina 16 Generalidades 2017 R. Prato


Ejercicios
Vectores Columnas: Punto y coma para separar filas

1
>> a=[1; 3 ;-1] produce: 3
1
Vectores Filas: Espacios o comas para separar columnas

>> a2=[1 3 -1] produce: 1 3 1

Traspuesta: basta utilizar el apostrofe



>> c=a produce: 1 3 1

Matrices:
1 3 1
>> A=[1 3 -1; 2 3 4; 4 5 1] produce: 2 3 4
4 5 1
Pagina 17 Generalidades 2017 R. Prato
Ejercicios

>> C=[-1 , 0 ,4 ; 9 ,3,8 ]

  C =
1 0 4
C=
9 3 8 -1 0 4
9 3 8

>> C

1 9 ans =

C = 0 3
-1 9
4 8
0 3
4 8

Pagina 18 Generalidades 2017 R. Prato


Ejercicios

>> a(1,2)=4
a =
0 4
>> a(1,2)=4 ;a(3,1)=-2
a =
0 4
0 0
-2 0

>> a(1,2)=4 ;a(3,1)=-2;a(2,4)=9


a =
0 4 0 0
0 0 0 9
-2 0 0 0

Pagina 19 Generalidades 2017 R. Prato


Matrices predefinidas

a2 =
0 0 0 0
>> a2=zeros(3,4)
0 0 0 0
Matriz cero en R34 .
0 0 0 0

a3 =
1 0 0
>> a3=eye(3)
0 1 0
Matriz identidad en R33 .
0 0 1

Pagina 20 Generalidades 2017 R. Prato


Ejercicios

diag se utiliza para construir matrices diagonales dando la diagonal


de la matriz.
eye(n) matriz identidad de orden n.
ones(m,n) matriz m x n donde todos sus elementos son uno
zeros(m,n) Matriz cero en Rmn
sparse inicializa una matriz sparse.
hilb, invhilb, pascal, magic
Ejercicio: Utiliza las funciones de ayuda para ver como funcionan
las instrucciones anteriores.

Pagina 21 Generalidades 2017 R. Prato


Funciones aplicadas a matrices

>> a=[0 pi/3; -pi/3 0]; cos(a)


Se pueden aplicar funciones
ans =
sobre matrices. El resultado
es equivalente a aplicarlo ele-
1.0000 0.5000
mento a elemento.
0.5000 1.0000

Pagina 22 Generalidades 2017 R. Prato


Dimensiones de una matriz
>> C=[-1 , 0 ,4 ; 9 ,3,8 ] ;

>> length(C)

ans =

>> size(C)

ans =

2 3
Las ordenes size y length
son las instrucciones usadas
>> size(C,1)
Pagina 23 Generalidades 2017 R. Prato
Vectores con patrones

a:b:c construye el vector de


valores >> 0:2.5:10
  ans =
a, a+b, a+2b, . . . , a+kb 0 2.50 5.00 7.50 10.00

donde a + k b es el mayor
numero natural que cumple
a + k b < c. La instruccion
>> linspace(0,10,5)
a:c toma b = 1.
ans =
linspace(a,b,n) devuelve 0 2.50 5.00 7.50 10.00
una particion uniforme de
[a, b] en n puntos.

Pagina 24 Generalidades 2017 R. Prato

Vous aimerez peut-être aussi