Upload
jose-rosario
View
225
Download
4
Embed Size (px)
DESCRIPTION
programa
Citation preview
Seminario Introduccin aMATLAB - SIMULINKDr. Jess Fraile ArdanuyETSI Caminos, Canales y PuertosUniversidad Politcnica de MadridDpto. de Ingeniera Civil: Hidrulica y Energtica
Introduccin a MATLAB: Aplicaciones a la ingeniera*Guin del SeminarioIntroduccin.Primeras instrucciones con MATLAB.Entorno de trabajo.Vectores.Matrices.Ficheros con extensin M.Operaciones lgicas y de relacin.Control de flujo.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Guin del SeminarioFunciones de MATLAB.Grficos en dos dimensiones.Grficos en tres dimensiones.Anlisis de datos.Polinomios.Ajuste de datos e interpolacin.Ecuaciones diferenciales con MATLAB.Sistemas de control.Anlisis de sistemas dinmicos con SIMULINK.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Qu es MATLAB?MATLAB es un entorno de programacin orientado al clculo numrico. Especialmente indicado para:Anlisis numrico.Clculo matricial.Procesamiento de seales.Grficos.MATLAB = MATrix LABoratoryCreado en las universidades de New Mexico y Stanford (en Fortran) para teora de matrices y lgebra lineal.En 1984 se crea Mathworks y se reescribe en C.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*ToolboxesMATLAB, TOOLBOXES, SIMULINK y BLOCKSETSMATLABSIMULINK
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Abriendo el programa..Haced clic sobre el icono
Se abre la siguiente ventana:
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*MATLAB funcionando como una calculadoraDesde el prompt de MATLAB >>, se introducen las operaciones a realizar:>> 3+6>> 5*5-4/3+2^2
Qu ocurre al pulsar ENTER?El resultado aparece en ans
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Variables en MATLABMATLAB permite utilizar en cualquier momento variables:>> eCinetica=10>> ePotencial=20 >> eTotal=eCinetica+ePotencial
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Caractersticas de las variablesNo es necesario definir previamente las variables.Son sensibles a maysculas o minsculas.Mximo nmero de caracteres: 31 Deben comenzar por letra, seguida de letra, nmero o guin de subrayado.NO SE PUEDEN UTILIZAR SIGNOS DE PUNTUACIN
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Variables definidas por defectoans respuesta por defecto.i,j representan el nmero imaginario puro.inf representa infinito.NaN representa a las indeterminaciones del tipo 0/0.pi 3,1415927
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Visualizacin de las variablesDesde Command Window: >> whos Name Size Bytes Class eCinetica 1x1 8 double array ePotencial 1x1 8 double array eTotal 1x1 8 double arrayGrand total is 3 elements using 24 bytesDesde Workspace:
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Eliminando variablesclear nombreVariableclear allComentarios y signos de puntuacin El punto y coma ; impide mostrar los resultados parciales. Tambin permite combinar varias instrucciones en la misma lnea:>> alfa=2;beta=1;gamma=alfa+beta Se pueden aadir comentarios con %
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 1Calcular el valor de la resistencia del circuito, conocidas las medidas de tensin y corriente. (V=10 V, A= 20 A). Calcular la potencia elctrica disipada.Observe las variables utilizadas
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*MATLAB como calculadora cientficaFunciones trigonomtricas:cos, sin, tan, acos, etc.NOTA: Los ngulos deben expresarse en RADIANES!
Funciones exponenciales:^, exp, log, log10, etc.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Formatoformat:short formato de coma fija con 4 decimales (opcin por defecto)long formato de coma fija con 15 decimalesrat Aproxima por un nmero racionallong e Notacin cientfica 15 decimalesshort e Notacin cientfica 4 decimaleshex Hexadecimal
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Funciones sobre nmeros complejosZ1=complex(3,4)Z2=8-j*9;abs(Z1) Mdulo.angle(Z1) Argumento.conj(Z1) Conjugado.compass([Z1 Z2])
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Funciones de redondeofix redondea hacia cero.floor redondea hacia abajo (-)ceil redondea hacia arriba (-)round redondea hacia el entero ms prximo.sign Indica el signo positivo o negativo.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Entorno de trabajoCommand Window
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Entorno de trabajo (II)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ayuda en MATLABDesde el espacio de trabajo: help NombreFuncion Probad: help sinSeleccionando Help en el escritorio de MATLAB
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*VectoresFormas de definir un vector:Directamente: >>x=[0,0.1*pi 0.2*pi...];Formas compactas:>> x=[primero:incremento:ultimo];>>x=[0:0.1*pi:2*pi];
>>x=linspace(primero,ultimo,numeroElementos);>>x=linspace(0,2*pi,21);
>>x=logspace(10ValorInicial,10ValorFinal,numElement)
X= 00.1 0.2 0.3 0.4 0.5 0.6 0.7
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Manipulacin de VectoresX= 00.1 0.2 0.3 0.4 0.5 0.6 0.7X= 00.1 0.2 0.3 0.4 0.5 0.6 0.7X(3:5)X(8)length(X) size(X)
Se pueden construir nuevos vectores a partir de los anteriores:Y=X(3:end)Par=X(2:2:end)Impar=X(1:2:end)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Operaciones con vectoresOperaciones escalar-vector:A=[1:5];B=[1:2:9];A-12*BOperaciones vector-vector:2*A-BA*BA.*BA./BOtras operaciones:sum(A)prod(B)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos simplesGrficos 2D:t=[0:.1:2*pi];x=sin(t);y=cos(t);plot(t,x)plot(t,x,t,y);
Grficos 3D:plot3(t,x,y)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 2Descomposicin de una funcin cuadrada peridica en series de Fourier:t=[-2:.01:2];w=2*pi;x1=cos(w*t);x2=-cos(3*w*t)/3;x3=cos(5*w*t)/5;x4=-cos(7*w*t)/7;x=(x1+x2+x3+x4);xFin=(4/pi)*x;plot(t,xFin)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*MATRICES123A=456789
A=[1,2,3;4 5 6;7 8 9];
A(fila,columna)
B=ATransposicin B=A(columna,fila)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 3Construir las matrices A y B, conocidas las matrices C y D.C=[1 2 3];D=[4;5;6];A=1 2 3 B= 1 4 3 6 4 5 62 5 2 5 3 2 13 6 1 4C=[1 2 3];D=[4;5;6];A=[C;D;C(3:-1:1)];B=[C D]B=[B B(3:-1:1,:)]
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Matrices especialesMatriz nula: ceros(filas,columnas)Matriz unidad: ones(filas,columnas)Matriz identidad: eye(filas,columnas)Matriz diagonal: diag(vectorDiagonal)Matriz aleatoria uniforme entre 0,1: rand(filas,columnas)Matriz aleatoria gaussiana med. 0, var1: randn(filas,columnas)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Manipulacin de matricesA=[1 2 3;4 5 6;7 8 0];
rot90(A) fliplr(A) flipud(A) triu(A) tril(A)Probad las siguientes instrucciones
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Operaciones con MatricesEscalar por matriz: 2*ASumas y Restas: A-BProducto: A*BDeterminante: det(A)Divisin: B/ARango: rank(B)Traza: trace(A)Inversa: inv(A), A^-1Autovalores: [AutoVector,AutoValor]=eig(A)A=[1 2;4 5]B=[-1 0;2 3];
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ficheros *.MSon grupos de instrucciones de MATLAB que se ejecutan en bloque.Evitan realizar tareas repetitivas.Para ejecutar este fichero, basta con llamarlo (sin extensin!) desde el Espacio de Trabajo.Es un fichero ASCII pero MATLAB dispone de un editor propio.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ficheros *.M
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ficheros *.M
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Operaciones lgicas y de relacinMayor que: >Menor que: =Menor o igual que:=3Vector==2(Vector>3)&(Vector
Introduccin a MATLAB: Aplicaciones a la ingeniera*Control de flujoBucles for-end. Repiten un grupo de instrucciones un nmero fijo de veces:for n=1:4x(n)=n.*n;end;
NO UTILIZAR i,j como ndices!
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Control de flujo IIBucles while-end. Repiten un grupo de instrucciones hasta que se cumpla una condicin:
a=0;for a
Introduccin a MATLAB: Aplicaciones a la ingeniera*Creacin de FuncionesSimilares a los archivos *.MSe comunican con MATLAB a travs de las variables que se pasan a la funcin.
Su estructura es:function[VarSalida]=NombrFun(VarEntrada) Se edita la funcin con el editor de archivos *.M y se graba. El nombre de la funcin, NombrFun, y el nombre del archivo deben coincidir.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Creacin de Funciones IIEl nombre est limitado a 31 caracteres y debe comenzar por una letra.El nombre no es sensible a las letras maysculas / minsculas, en Windows.La primera lnea: DECLARACIN DE FUNCIN (debe contener la palabra function).Las siguientes lneas son comentarios y sirven para explicar el funcionamiento cuando se solicita a travs de help NombrFun.Las variables definidas dentro de una funcin son locales. Para acceder a ellas desde el espacio de trabajo, hay que definirlas como variables globales: global Variable1 Variable2Se pueden agrupar para formar una TOOLBOX personalizada.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ejemplo Creacin de Funciones% Funcion CUBO% Esta funcion eleva al cubo cualquier escalar, % vector o matriz.% % Jesus Fraile Ardanuy%function y=cubo(x)y=x.*x.*x;
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ejemplo Creacin de Funciones (II)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ejemplo Creacin de Funciones (III)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionesLa instruccin principal es plot.x=linspace(0,2*pi,20);y=sin(x);z=cos(x);plot(x,y,b:,x,z,rv);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionesTratamiento del TEXTO sobre los grficos.xlabel(EjeX);ylabel(EjeY);title(Curvas);gridtext(pX,pY,Texto)gtext(Texto);legend(Curva1,Curva2)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionesUtilizacin de la ventana grfica de MATLAB:
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionesModificacin de:Tipo de letra.Tamao de letra.Anchura de las lneas.Letras griegas.t=0:.05:2*pi;w=1;x=cos(w*t);plot(t,x,r,LineWidth,4);title(Grafica x_1 con \omega=1);text(2,0.2,COS,fontname,arial,fontsize,14);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensioneshold on/off Se pueden dibujar varias grficas en las misma pantalla.x=[0:.1:2*pi];y=sin(x);z=cos(x)subplot(2,1,1);plot(x,y);subplot(2,1,2);plot(x,z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionessemilogxsemilogyloglogx=[0.1:.1:2*pi];y=sin(x);z=2+sin(5*x);subplot(2,1,1);semilogx(x,y);subplot(2,1,2);loglog(x,z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionesGrficos polares:T=0:0.01:2*pi;R=sin(2*T).*cos(2*T);polar(T,R);T=0:pi/90:2*pi;R=2*sin(T).^2;polar(T,R);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 2 dimensionesOtras instrucciones de dibujos en dos dimensiones:pieRepresenta grficos de tarta. barGrficos de barras. bar3Grficos de barras en 3 D. stairs Grficos de escalera. histHistogramas.plotyyRepresenta en la misma grfica2 funciones con el mismo eje X.Complejos:compassfeather
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos 3 dimensionesplot3(x,y,z)t=0:0.2:10*pi;E=exp(-0.05*t);Dib1=E.*sin(t);Dib2=E.*cos(t);plot3(Dib1,Dib2,t);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 4Dibujar la siguiente curva tridimensional. Con los siguientes parmetros a=10, b=1,c=0.3, 0t2.
a=10;b=1;c=0.3;t=0:.05:2*pi;x=b*cos(t);y=b*sin(t);z=c*cos(a*t);plot3(x,y,z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Dibujo de superficiesEvala la funcin Z=f(x,y).
La fila i-sima de la matriz Z ser f(x,y(i)), donde se mantiene constante la variable x durante toda la evaluacin de la fila.
Del mismo modo, la columna j-sima corresponde a f(x(j),y), donde se mantiene constante la variable y.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Dibujo de superficiesZ=f(x,y)x = [-2 1 0]y=[1 2 3]Z debe evaluarse en:Z=f(-2,1)f(-2,2) f(-2,3)Constante la variable xf(-1,1)f(-1,2)f(-1,3)f(0,1)f(0,2)f(0,3)
Constante la variable y
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Dibujo de superficiesDados los mrgenes de variacin de las variables independientes x e y, es necesario construir una red de pares a travs de la funcin:[X,Y]=meshgrid(x,y)x=[-2 1 0]y=[1 2 3][X,Y]=meshgrid(x,y)X = -2 -1 0 -2 -1 0 -2 -1 0
Y = 1 1 1 2 2 2 3 3 3
POSTERIORMENTE, SE EVALA LA FUNCIN MEDIANTE LA INSTRUCCIN mesh(Z), donde Z=f(X,Y).
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 5Dibujar mediante una malla tridimensional la superficie generada por la expresin: en el intervalo (7.5, +7.5). x=-7.5:.5:7.5;y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z);title('Sombrero mexicano');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 5Z=sin(R)./R; mesh(X,Y,Z);title('Sombrero mexicano');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*SuperficiesEl color de la superficie est relacionado con el valor de la variable Z (azul, valores pequeos y rojo para los mayores).
meshc(Z)Dibuja la malla tridimensional y las curvas de nivel.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Superficieswaterfall(Z)Genera la malla tridimensional con las lneas dispuestas a lolargo del eje x.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Otras funciones para crear volmenessphere(n)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*[X,Y,Z]=cylinder(1,15);mesh(X,Y,Z); Otras funciones para crear volmenescylinder(n)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Superficies tridimensionales slidassurf(Z)x=-1.5:.1:1.5;y=x;[X,Y]=meshgrid(x,y);Z=sqrt(9-X.^2-Y.^2);figure(1);surf(Z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Tabla de colorescolormap(hot)colormap(cool)colormap(pink)colormap(flag)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Otras instrucciones para crear vlmenes slidossurfc(Z)Crea el volumen slido y las lneas de nivel.t=0:.2:2*pi;y=2-sin(t);[X,Y,Z]=cylinder(y,20)surfc(X,Y,Z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Otras instrucciones para crear vlmenes slidossurfnorm(X,Y,Z)Crea el volumen slido y los vectores perpendiculares a la superficie.t=0:.2:2*pi;y=2-sin(t);[X,Y,Z]=cylinder(y,20)surfnorm(X,Y,Z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Grficos de contornoMuestran las lneas de nivel en 2 y 3 D.
contour(X,Y,Z,numLin)contour3(X,Y,Z,numL)
[X,Y,Z]=peaks(25); contour(X,Y,Z,20); [X,Y,Z]=peaks(25); contour3(X,Y,Z,20);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Cambio del punto de visinAntiguas versiones de MATLAB: view(Azimuth,Elevacion) Ahora se hace directamente desde la ventana de figura.r=[0:0.05:1]';phi=0:pi/20:2*pi;x=r*cos(phi);y=r*sin(phi);z=besselj(1,3.8316*r)*cos(phi);surf(x,y,z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Cambio del punto de visinAntiguas versiones de MATLAB: view(Azimuth,Elevacion) Ahora se hace directamente desde la ventana de figura.r=[0:0.05:1]';phi=0:pi/20:2*pi;x=r*cos(phi);y=r*sin(phi);z=besselj(1,3.8316*r)*cos(phi);surf(x,y,z);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Anlisis de datosMATLAB dispone de una serie de instrucciones para realizar anlisis estadsticos bsicos.Adems, dispone del Statistics Toolbox.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 6 Se dispone de la medida de la cotizacin (media mensual) de la bolsa en los ltimos 12 meses. Para introducir las funciones especficas de anlisis de datos y como se desconoce los valores exactos de los niveles burstiles, se crea un vector con valores aleatorios comprendidos entre 6000 y 8000 meses=1:12;aleat=rand(1,12)*2e3;bolsa=aleat+6e3;plot(meses,bolsa);title('Cotizacin');xlabel('Meses');ylabel('Valor');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Instrucciones bsicas de estadsticaValor mediomean(bolsa)Desviacin tpicastd(bolsa)Mximomax(bolsa)Mnimomin(bolsa)Suma acumuladacumsum(bolsa)Histogramashist(bolsa)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*PolinomiosMATLAB representa los polinomios como vectores cuyos elementos son los coeficientes del polinomio dispuestos en orden descendente.Polinomio=[1 2 3 4 5];
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*PolinomiosRaces:roots(polinomio)Construccin del polinomio a partir de sus races: poly([raices]) p1=-1;p2=-3;p3=-3+4*j;p4=conj(p3);polinomio2=poly([p1 p2 p3 p4])
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Operaciones bsicas sobre PolinomiosSuma:Deben ser polinomios del mismo orden.polin1+polin2Producto: conv(polin1,polin2)
pol1=[1 2 3 4];pol2=[1 2 1];polMul=conv(pol1,pol2)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Operaciones bsicas sobre PolinomiosDivisin: deconv(polin1)Derivada: polyder(polin1)Integral: polyint(polin1)Descomposicin en fracciones simples:
polNum=[1 4 3 1];polDer=[1,0,-1];[r,p,k]=residue(polNum,polDer)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Evaluacin del polinomio Si se desconoce el orden del polinomioy1=polyval(pol,x);plot(x,y1);xlabel('x');ylabel('y=x{^3}+2x{^2}+3x+1');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ajuste de datos e interpolacinAjuste de curvas mediante polinomios:polyfit(x,y,ordenPolinomio)x=-3:.5:3;y=3*x.^2+2*x+2*randn(1,length(x)); n1=1;n2=2;pol1=polyfit(x,y,n1)pol2=polyfit(x,y,n2)
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ajuste de curvas mediante polinomiosDibujando los resultados:xi=-3:.1:3;z1=polyval(pol1,xi);z2=polyval(pol2,xi); plot(x,y,'*r');hold on;plot(xi,z1,':b','LineWidth',2);plot(xi,z2,'-.g','LineWidth',2);hold off;legend('Seal inicial','Ajuste Lineal','Ajuste Cuadrtico');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Interpolacin unidimensionalDada una serie de muestras medidas, se pretende estimar el valor del eje de ordenadas, en los puntos intermedios.interp1(datoX,datoY,puntoIntermedioEstimado)horas= 1:12; temps =[ 5 8 9 15 25 29 31 30 22 25 27 24 ];
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Ecuaciones DiferencialesLa resolucin de ecuaciones diferenciales con MATLAB se realiza en tres pasos:Se define, mediante una funcin de MATLAB, la ecuacin diferencial.
Se resuelve la ecuacin diferencial, empleando uno de los mtodos de integracin numrica disponibles.-Se representa la evolucin temporal de las variables de estado.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Resolucin de ecuaciones diferencialesSe quiere resolver el sistema de ecuaciones diferenciales ordinarias siguientes:PRIMER PASO. CREACIN DE LA FUNCIN ec1.mfunction yprima=ecuacion1(t,u)yprima=zeros(2,1);% Predimenvect.estados.yprima(1)=-u(1).*u(1)-u(2);yprima(2)=2*u(1)-u(2);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Resolucin de ecuaciones diferenciales (II)SEGUNDO PASO. RESOLUCIN DE LA FUNCIN ec1.mTini=0;Tfin=10;Cond_Inic=[1;1]; % Las cond. ini. son un vector [t,y]=ode23(@ecuacion1,[Tini,Tfin],Cond_Inic); ode23 es un mtodo de integracin de paso variable!
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Resolucin de ecuaciones diferenciales (III)TERCERO PASO. DIBUJANDO las variables de ec1.mx_t=y(:,1);y_t=y(:,2);plot(t,x_t,'b',t,y_t,'r');legend('x(t)','y(t)');xlabel('Tiempo');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*Resolucin de ecuaciones diferenciales (IV)DIBUJANDO el plano de fase de ec1.mplot(x_t,y_t,'b','LineWidth',2);xlabel('x(t)');ylabel('y(t)');title('Plano de fase de la ec. dif.');
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 7Resolver la ecuacin del atractor de Lorentz definida por el sistema de EDOs:
con las condiciones iniciales x(0)=z(0)=0 e y(0)=1. Integrar en el periodo (0,20) segundos.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 7 (resolucin)function yprima=caos(t,u)yprima=zeros(3,1);x=u(1);y=u(2);z=u(3);xprima=-3*(x-y); yprima=-x*z+26.5*x-y;zprima=x*y-z;yprima=[xprima;yprima;zprima];
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 7 (resolucin)Tini=0;Tfin=20;Cond_Inic=[0;1;0];[t,y]=ode23(@caos,[Tini,Tfin],Cond_Inic); x_t=y(:,1);y_t=y(:,2);z_t=y(:,3);plot3(x_t,y_t,z_t);
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 8Este ejemplo de ecosistema fue propuesto por el italiano Vito Volterra (1860-1940). Considrense dos poblaciones; una de conejos (c(t)) y otra de zorros (z(t)), que estn relacionadas mediante las siguientes ecuaciones diferenciales:
El tiempo se mide en aos. Resolver el sistema de ecuaciones diferenciales anterior y dibujar la solucin para =0.01, y la condicin inicial, nmero de conejos c(0)=300 y nmero de zorros z(0)=150 en el intervalo de tiempo de 0 a 25 aos.
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 8 (resolucin)function yprima=ecosistema(t,y)alfa=0.01;yprima=zeros(2,1);c=y(1);z=y(2);yprima(1)=2*c-alfa*c*z;yprima(2)=-z+alfa*c*z;
Introduccin a MATLAB: Aplicaciones a la ingeniera
Introduccin a MATLAB: Aplicaciones a la ingeniera*EJERCICIO 8 (resolucin)[t,y]=ode23(@ecosistema,[0,25],[300;150]);conejos=y(:,1);zorros=y(:,2);plot(t,conejos,'b',t,zorros,'r');legend('Conejos','Zorros');
Introduccin a MATLAB: Aplicaciones a la ingeniera