You are on page 1of 33

Indice

Introduccin
Nmeros y operaciones
Vectores y matrices
Operaciones con vectores y matrices
Funciones para vectores y matrices
Polinomios
Grficos 2D y 3D
Programacin
Anlisis numrico
Introduccin

Qu es Matlab?, MATrix LABoratory

Es un lenguaje de programacin (inicialmente escrito en C) para


realizar clculos numricos con vectores y matrices. Como caso
particular puede tambin trabajar con nmeros escalares, tanto
reales como complejos.

Cuenta con paquetes de funciones especializadas


Introduccin
Elementos bsicos del escritorio de Matlab

Command Windows: Donde se ejecutan todas las instrucciones y


programas. Se escribe la instruccin o el nombre del programa y se da a
Enter.

Command History: Muestra los ltimos comandos ejecutados en


Command Windows. Se puede recuperar el comando haciendo doble

Current directory: Situarse en el directorio donde se va a trabajar

Help (tambin se puede usar desde comand windows)

Workspace: Para ver las variables que se estn usando y sus dimensiones
(si son matrices)

Editor del Matlab: Todos los ficheros de comandos Matlab deben de llevar
la extensin .m
Introduccin
Elementos bsicos del escritorio de Matlab

Current
directory

Command
Windows

Command
History
Introduccin
Elementos bsicos del escritorio de Matlab

Abrir el matlab. Usar View para sacar las ventanas que hagan falta.

Comand Windows: Donde se ejecutan todas las instrucciones y


programas. Se escribe la instruccin o el nombre del programa y se da a
Enter.
Hacer ejemplo en lnea de comandos: x=2*3, y mirar en workspace la
variable x
Current directory: Situarse en el directorio donde se va a trabajar

Help (tambin se puede usar desde comand windows)


(ndice, search, DEMOS).
Workspace: Para ver las variables que se estn usando

Editor del Matlab: Todos los ficheros de comandos Matlab deben de llevar
la extensin .m
En current directoy crear un fichero nuevo main_prueba.m, decirles lo de main.
Correr el programa main_prueba.
Introduccin
Algunos comentarios sobre la ventana de comandos

Se pueden recuperar instrucciones con las teclas

Se puede mover por la lnea de comandos con las teclas . Ir


al comienzo de la lnea con la tecla Inicio y al final con Fin. Con
Esc se borra toda la lnea.

Se puede cortar la ejecucin de un programa con Ctrl+C


Introduccin
Debugger
Set/Clear breakingpoint: Coloca o borra un punto de ruptura
en la lnea en que est colocado el cursor
Clear all breakingpoints:: Borra todos los puntos de ruptura

Step: Avanza un paso en el programa

Step in: Avanza un paso en el programa y si en ese paso se


llama a una funcin, entra en dicha funcin

Step out: Avanza un paso en el programa y si en ese paso se


llama a una funcin, entra en dicha funcin
Continue: Continua ejecutando hasta el siguiente punto de
ruptura
Quit debugging: Termina la ejecucin del debugger
Nmeros y operaciones
Datos numricos:

No hace falta definir variables enteras, reales, etc. como en otros lenguajes
Nmeros enteros: a=2
Nmeros reales: x=-35.2
Mximo de 19 cifras significativas
2.23e-3=2.23*10-3

Precisin y formatos: Por defecto tiene un formato corto, pero se pueden


usar otros
>> format long (14 cifras significativas)
>> format short (5 cifras significativas)
>> format short e (notacin exponencial)
>> format long e (notacin exponencial)
>> format rat (aproximacin racional)

Ver en men de File: Preferences Command Windows


Preferences (en el men de File)
Nmeros y operaciones
Datos numricos:
Son sensibles a las maysculas: x=5, X=7

Informacin sobre variables que se estn usando y sus dimensiones (si son
matrices): Workspace. Tambin tecleando
>> who
>> whos (da ms informacin)

Para eliminar alguna variable se ejecuta


>> clear variable1 variable2
Si se quieren borrar todas las variables: >> clear * o clear all
Para limpiar la pantalla: >> clc
Constantes caractersticas: pi=, NaN (not a number, 0/0), Inf=.

Nmeros complejos: i=sqrt(-1) (slo se puede usar i o j), z=2+4*i, z=2+4i


Cuidado con no usar luego i como contador en un bucle
trabajando con complejos.
Funciones Generales
whos Lista las variables actuales y su tamao

clear Limpia las variables y funciones de la memoria

cd Cambie el directorio actual de trabajo

dir Presenta la lista de archivos en el directorio

pwd Indica el directorio de trabajo actual

clc Limpia el contenido de la lnea de comandos

echo eco de los comandos en m-files

format Asigna el formato de salida (long, shor, etc.)

diary(filename) Graba todos los comandos ingresados en un archivo en el


directivo actual, el nombre es filename.
Nmeros y operaciones
Operaciones aritmticas elementales:

Suma: +, Resta -

Multiplicacin: *, Divisin: /

Potencias: ^

Orden de prioridad: Potencias, divisiones y multiplicaciones y por


ltimo sumas y restas. Usar () para cambiar la prioridad
Nmeros y operaciones
Funciones de Matlab:

exp(x), log(x), log2(x) (en base 2), log10(x) (en base 10), sqrt(x)

Funciones trigonomtricas: sin(x), cos(x), tan(x), asin(x), acos(x),


atan(x), atan2(x) (entre pi y pi)

Funciones hiperblicas: sinh(x), cosh(x), tanh(x), asinh(x),


acosh(x), atanh(x)

Otras funciones: abs(x) (valor absoluto), int(x)(parte entera),


round(x) (redondea al entero ms prximo), sign(x) (funcin signo)
Funciones para nmeros complejos: real(z) (parte real), imag(z)
(parte imaginaria), abs(z) (mdulo), angle(z) (ngulo), conj(z)
(conjugado)
Vectores y matrices
Definicin de vectores:
Vectores fila; elementos separados por espacio o comas y
encerrado entre corchetes;
>> v =[2 3 4]
Vectores columna: elementos separados por punto y coma (;)
>> w =[2;3;4;7;9;8]
Si los datos son nmeros complejos deben encerrarse entre
parantesis
Dimensin de un vector w: length(w)
Generacin de vectores fila:
Especificando el incremento h de sus componentes v=a:h:b

Especificando su dimensin n: linspace(a,b,n) (por defecto


n=100)
Componentes logartmicamente espaciadas logspace(a,b,n) (n
puntos logartmicamente espaciados entre 10a y 10b. Por defecto
n=50)
Resumen de Declaracin
Vectores y matrices
Definicin de matrices:
No hace falta establecer de antemano su tamao (se puede definir
un tamao y cambiarlo posteriormente).

Las matrices se definen por filas; los elementos de una misma fila
estn separados por blancos o comas. Las filas estn separadas
por punto y coma (;).
M=[3 4 5; 6 7 8; 1 -1 0]

Matriz vaca: M=[ ];

Informacin de un elemento: M(1,3), de una fila M(2,:), de una


columna M(:,3).

Cambiar el valor de algn elemento: M(2,3)=1;

Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];


Vectores y matrices
Definicin de matrices:

Generacin de matrices:

Generacin de una matriz de ceros, zeros(n,m)


Generacin de una matriz de unos, ones(n,m)
Inicializacin de una matriz identidad eye(n,m)
Generacin de una matriz de elementos aleatorios rand(n,m)

Aadir matrices: [X Y] columnas, [X; Y] filas


Operaciones con vectores y matrices
Operaciones de vectores y matrices con
escalares:

v: vector, k: escalar:
v+k adicin o suma
v-k sustraccin o resta

v*k multiplicacin

v/k divide cada elemento de v por k

k./v divide k por cada elemento de v

v.^k potenciacin de cada componente de v a k

k.^v potenciacin k elevado a cada componente de v


Operaciones con vectores y matrices
Operaciones con vectores y matrices:

+ adicin o suma
sustraccin o resta
* multiplicacin matricial
.* producto elemento a elemento
^ potenciacin
.^ elevar a una potencia elemento a elemento
\ divisin-izquierda
/ divisin-derecha
./ y .\ divisin elemento a elemento
matriz traspuesta: B=A (en complejos calcula la
traspuesta conjugada, slo la traspuesta es B=A.)
Funciones para vectores y matrices
Funciones de matlab para vectores y matrices:
sum(v) suma los elementos de un vector

prod(v) producto de los elementos de un vector

dot(v,w) producto escalar de vectores

cross(v,w) producto vectorial de vectores

mean(v) (hace la media)

diff(v) (vector cuyos elementos son la resta de los elemento de v)

[y,k]=max(v) valor mximo de las componentes de un vector (k indica la


posicin), min(v) (valor mnimo). El valor mximo de una matriz M se
obtendra como max(max(M)) y el mnimo min(min(v))

Aplicadas algunas de estas funciones a matrices, realizan dichas


operaciones por columnas.
Funciones para vectores y matrices
Funciones de Matlab para vectores y matrices
[n,m]=size(M) te da el nmero de filas y columnas

matriz inversa: B=inv(M), rango: rank(M)

diag(M): Obtencion de la diagonal de una matriz. sum(diag(M))


calcula la traza de la matriz A. diag(M,k) busca la k-sima diagonal.

norm(M) norma de una matriz (mximo de los valores absolutos de


los elementos de A)

flipud(M) reordena la matriz, haciendo la simtrica respecto de un


eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simtrica
respecto de un eje vertical

[V, landa]=eig(M) da una matriz diagonal landa con los autovalores


y otra V cuyas columnas son los autovectores de M
Funciones para vectores y matrices
Guardar en ficheros y recuperar datos:

save nombre_fichero nombre_matriz1, nombre_matriz2

load nombre_fichero nombre_matriz1, nombre_matriz2

save nombre_fichero nombre_matriz1 ascii (guarda 8 cifras


decimales)

save nombre_fichero nombre_matriz1 ascii double (guarda 16


cifras decimales)
Formatos
Programacin
Comandos de entrada y salida:
input: permite introducir datos: ae=input(Teclee valor de a);
disp: muestra un texto por pantalla: disp(El algoritmo no ha convergido)
fprintf: permite imprimir textos y contenido de variables(vectores,
matrices).
Su forma general es: fprintf(formato,variable)
El modo formato contiene el texto y las especificaciones que son:
%e indica que los valores de la matriz seran expresa en notacin
exponencial
%f indica que los valores de la matriz seran impresos en notacin
decimal o en notacin fija, esto es, el usuario puede especificar el
nmero de cifras significativas.
%g puede indicar las dos formas arriba, dependiendo de cual de ellas
ser la mas corta.
Ejemplo: >>fprintf(La temperatura es %f grados Celsius, temp)
Resulta en: La temperatura es 40 grados Celsius
>>fprintf(La temperatura es %2.2f grados Celsius, temp)
Resulta en: La temperatura es 40,23 grados Celsius
Programacin
Ejercicios

1) Hacer un algoritmo que lea dos nmeros y


a continuacin los imprima en pantalla.
2) Hacer un programa que calcule la
potencia de un nmero elevado a otro
nmero introducidos por el usuario.
3) Desarrolle un algoritmo que lea un
nmero y calcule el cuadrado y el cubo del
mismo. Imprima el nmero ledo y los
resultados calculados.
Ejercicios

4) Disear un algoritmo que realice la


siguiente conversin: una temperatura dada
en grados Celsius a grados Fahrenheit. Nota:
La frmula de conversin es F=(9/5)C+32.
5) Leer un nmero N entero y positivo,
mayor que cero y un nmero A y calcular e
imprimir las siguientes sumas:
S1 = 1 - + 1/3 - +......+1/N
S2 = 1 + 1/A + 1/2*A + 1/3*A + .....+ 1/N*A
Grficos 2D y 3D
Funciones grficas 2D y 3D elementales

2D: plot() crea un grfico a partir de vectores con escalas lineales


sobre ambos ejes,

>> plot(X,Y,opcin) (opcin: permite elegir color y trazo de la


curva)

hold on: permite pintar ms grficos en la misma figura (se


desactiva con hold off)
grid activa una cuadrcula en el dibujo. Escribiendo de nuevo grid
se desactiva.

2D: loglog() escala logartmica en ambos ejes, semilogx(): escala


lineal en el eje de ordenadas y logartmica en el eje de abscisas,
semilogy(): escala lineal en abscisas y logartmica en ordenadas
Grficos 2D y 3D
Funciones grficas 2D y 3D elementales

2D: subplot(n,m,k) subdivide una ventana grfica se puede en m


particiones horizontales y n verticales y k es la subdivisin que se
activa.

2D: polar(ngulo,r) para pintar en polares

2D: fill(x,y,opcin) dibuja una curva cerrada y la rellena del color


que se indique en opcin

3D: plot3 es anloga a su homloga bidimensional plot.


plot3(X,Y,Z, opcin)
Grficos 2D y 3D
Eleccin de la escala de los ejes

axis([x0 x1 y0 y1]) (2D), axis([x0 x1 y0 y1 z0 z1]) (3D)

axis auto: devuelve la escala a la de defecto

axis off: desactiva los etiquetados de los ejes desapareciendo los ejes, sus
etiquetas y la malla, axis on: lo activa de nuevo

axis equal: los mismos factores de escala para los dos ejes

axis square: cierra con un cuadrado la regin delimitada por los ejes de
coordenadas actuales.

Para elegir las etiquetas que aparecen en los ejes:

set(gca, XTick,-pi:pi/2,pi) %gca:get current axis


set(gca, XTicklabel,{-pi,-pi/2,0,pi/2,pi})
Grficos 2D y 3D
Funciones para aadir ttulos a la grfica
title('ttulo') aade un ttulo al dibujo. Para incluir en el texto el valor
de una variable numrica es preciso transformarla mediante :

int2str(n) convierte el valor de la variable entera n en carcter


num2str(x) convierte el valor de la variable real o compleja x en
carcter. Ejemplo: title(num2str(x))

xlabel(texto) aade una etiqueta al eje de abscisas. Con xlabel


off desaparece. Lo mismo ylabel(texto) o zlabel(texto)

text(x,y,'texto') introduce 'texto' en el lugar especificado por las


coordenadas x e y. Si x e y son vectores, el texto se repite por cada
par de elementos.

gtext('texto') introduce texto con ayuda del ratn.


Grficos 2D y 3D
Funciones de Matlab para grficos 2D y 3D

Imprimir grficos: Print (botn File en ventana grfica)

Guardar grficos: Save (botn File en ventana grfica): Se crea un


fichero .fig que podr volver a editarse y modificarse

Exportar grficos: Export (botn File en ventana grfica)

figure(n): Llamar una nueva figura o referirnos a una figura ya


hecha

close all borra todas las figuras, close(figure(n)) una en concreto


Ejercicio I
Representar las funciones:
y1= sin(3 x)/ex
y2=cos(3 x)/ex
con x variando entre 0 y 3 ,obteniendo una nica figura de la forma:

You might also like