Documente Academic
Documente Profesional
Documente Cultură
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
Directorio Actual
(Current directory)
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)
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)
>> clear variable1 variable2 Si se quieren borrar todas las variables: >> clear Comandos de ayuda:
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
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),
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)
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
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)
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
sustraccin o resta
* multiplicacin matricial .* producto elemento a elemento ^ potenciacin
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,
con hold off ) grid activa una cuadrcula en el dibujo. Escribiendo de nuevo grid se desactiva.
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
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)');
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
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)
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))
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