Sunteți pe pagina 1din 31

Dr.

Pedro Gonzlez

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

Elementos bsicos del escritorio de Matlab

Directorio Actual
(Current directory)

Historia de los Comandos


(Command History)

Ventanas de comandos
(Command Windows)

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

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 -3 2.23e-3=2.23*10 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 Comandos de ayuda:

help what dir type nombre_fichero delete nombre_fichero

ficheros .m y .mat del directorio actual ficheros del directorio actual Muestra el contenido del fichero Borra el fichero

Constantes caractersticas: pi=, NaN (not a number, 0/0), Inf=. Nmeros complejos: i=sqrt(-1) (slo se puede usar i o j), z=2+i*4, z=2+4i

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

Ejemplo: main_operaciones_numeros.m. Probar el Debugger

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) atanh(x)

Funciones hiperblicas: sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), Otras funciones: abs(x) (valor absoluto), int(x) (parte entera),

round(x) (redondea al entero ms prximo), sign(x) (funcin signo) (parte imaginaria), abs(z) (mdulo), angle(z) (ngulo), conj(z) (conjugado)

Funciones para nmeros complejos: real(z) (parte real), imag(z)

Ejemplo: main_operaciones_numeros.m

Vectores y matrices
Definicin de vectores:
>> v =[2 3 4]
Vectores columna: elementos separados por punto y coma (;) Vectores fila; elementos separados por blancos o comas

>> w =[2;3;4;7;9;8]
Dimensin de un vector w: length(w) Generacin de vectores fila:
Especificando el incremento h de sus componentes v=a:h:b

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 de vectores y matrices con escalares: Operaciones


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.)

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.

Ejemplo: main_dibujos.m, y ver en Demos: Graphics

LISTA DE CARACTERES
COLOR y amarillo m magenta c cyan r rojo g verde b azul w blanco k negro ^ MARCADOR . punto o circulo x marca x + ms * asterisco s cuadrado d diamante v triangulo(hacia abajo) triangulo (hacia arriba) ESTILO DE LINEA continua : punteada -. guin-punto -- guionada

Superposicin de graficas
Para dibujar varias graficas en una misma figura, se utiliza la funcin hold on. Para dejar de dibujar en la misma figuragura, se utiliza hold off.

Ejemplo:
x = 0:0.1:2*pi; y1 = sin(x); y2 = cos(x); plot(x,y1) hold on; plot(x,y2, 'r') hold off;

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.


x = 0:0.1:2*pi; y1 = sin(x); y2 = cos(x); subplot(2,1,1) plot(x,y1) title('y = sin(x)'); subplot(2,1,2) plot(x,y2) title('y = cos(x)');

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

plot3(X,Y,Z, opcin)
figure(n): Llamar una nueva figura o referirnos a una figura ya hecha

Programacin
Estructuras de control condicionadas

Operaciones lgicas: >, <, >=,<=,== (igual) | (or), & (and) ~ (no), ~= (no igual)

if end

if else end

if elseif else end

Ejemplo: main_condicional

plot es la funcin clave de todos los grficos 2-D en MATLAB. Ya se ha dicho que el elemento bsico de los grficos bidimensionales . Ejemplo1: x=[1 3 2 4 5 3] x= 132453 plot(x)

Figura 5.1. Grfico del vector x=[1 3 2 4 5 3].

FUNCIN PLOT Ejemplo2 x=0:pi/90:2*pi; y=sin(x).*cos(x); plot(x,y) grid on grid off xlabel(eje x (en radianes)) ylabel(eje y) title(y=sen(x)*cos(x))

Mtodos Interpolacin con MatLab

En matlab encontramos las siguientes funciones para interpolar datos:


interp1 interpolacin de datos unidimensionales. spline interpolacin con el mtodo de spline cbica polyfit interpolacin con polinomios

El comando interp1
El comando interp1 se emplea para interpolar una serie de datos. El formato de este comando es: yi = interp1(x, y, xi, mtodo) Donde: x : abscisa de los puntos a interpolar, expresada como vector fila. y : ordenada de los puntos a interpolar, expresada como vector fila. xi : abscisas para construir la funcin de interpolacin, expresada como vector fila. Si es un solo valor, calcular el valor interpolando con la funcin declarada en mtodos. mtodo: determina el mtodo de interpolacin, entre: interp1 interpolacin de datos unidimensionales. spline interpolacin con el mtodo de spline cbica polyfit interpolacin con polinomios nearest interpolacin asignado el valor del vecino ms cercano. linear interpolacin lineal (default) spline interpolacin con spline cbica pchip interpolacin con polinomios de Hermite cubic (igual que 'pchip') v5cubic interpolacin Cbica usada in MATLAB 5

ejemplos de implementacin: >> t = [1 2 3 4 5]; >> p = [3 5 7 5 6]; >> x = 1:0.1:6; >> y = interp1 (t, p, x, 'spline'); >> plot (t, p,'o',x, y)

Para calcular el valor interpolado, se puede proceder as: y = interp1 (t, p, 2.5, 'spline') y= 6.42187500000000

Graficando todos los mtodos en una sola figura puede servir para su comparacin. Ejecute la siguiente serie de comandos, ya sea a travs de la lnea de comandos o mediante un archivo m. t = [1 2 3 4 5 6 7 8]; p = [3 5 7 5 6 7 7 5]; % t=linspace(-1,1,10); % p=1./(1+25*t.^2); x = 1:0.1:8; %x = linspace(-1,1,100); y = interp1 (t, p, x, 'spline') ; plot (t, p,'o',x, y); hold on y = interp1 (t, p, x, 'linear') ; plot (x, y,'r') y = interp1 (t, p, x, 'nearest') ; plot (x, y,'g') y = interp1 (t, p, x, 'pchip') ; plot (x, y,'b') y = interp1 (t, p, x, 'cubic') ; plot (x, y,'c') y = interp1 (t, p, x, 'v5cubic') ; plot (x, y,'m') hold off %

Otra manera de realizar una interpolacin de tipo spline, es invocando el comando spline, cuyo formato se muestra a continuacin: yy = spline (x, y, xx) Donde: x : abscisa de los puntos a interpolar, expresada como vector fila. y : ordenada de los puntos a interpolar, expresada como vector fila. xx : abscisas para construir la funcin de interpolacin, expresada como vector fila. Si es un solo valor calcular el valor interpolando. Ejemplo: x = 0:10; y = sin(x); xx = 0:.25:10; yy = spline (x, y, xx); plot (x, y, 'o', xx, yy) % el grfico no se muestra en este ejemplo

Calcula los coeficientes de un polinomio de grado n que ajustan, mediante mnimos cuadrados, a unaserie de datos. El formato de este comando se resume, as: yy = polyfit (x, y, orden) x : abscisa de los puntos a interpolar, expresada como vector fila. y : ordenada de los puntos a interpolar, expresada como vector fila. orden: indica el orden del polinomio que se utilizar en el ajuste. Adems, se usa el comando polyval para calcular el valor de un polinomio para un dado valor de x, segn la forma: y = polyval ( p , x ) donde: p es el polinomio, ingresado como vector fila y x es el valor de la incgnita cuya imagen se desea calcular

Ejemplo: >> t = [1 2 3 4 5]; >> m = [3 5 7 5 6]; >> p = polyfit (t, m, 2); >> f = polyval (p, x); >> plot (t, m, 'o', x, f)

ANLISIS DE DATOS______________________________

Ejercicio7.2 Se ha medido experimentalmente la conductividad elctrica del acero a distintas temperaturas, recogindose los siguientes valores: Obtener los polinomios de regresin de primero y segundo grado. Calcular para los polinomios obtenidos cul sera el valor estimado de la conductividad elctrica a los 600 y a los 1000C. T(C) K(cm)-1
100 300 500 700 900 51813 28571 17483 11696 9116

ANLISIS DE DATOS______________________________

ANLISIS DE DATOS______________________________

Ejercicio7.3: [x,y]=meshgrid(-3:1:3); z=peaks(x,y); Dada esta funcin ver la diferencia entre la interpolacin nearest, bilinear y bicubic

S-ar putea să vă placă și