_MATLAB_2012_S2.docx

172
SEMINARIO DE MATLAB BÁSICO. MANUAL DE PRÁCTICAS. Marzo – Abril 2011. Políticas del Curso y Plan de Evaluación: Los participantes del seminario se comprometen a: Asistir puntualmente al curso, con un atraso máximo de 15 minutos. Asistir por lo menos al 50% del curso. Participar y resolver las prácticas planteadas en el manual. Utilizar correctamente el internet en el laboratorio. Atender en todo momento las explicaciones del seminario. No chatear, ni utilizar las redes sociales en las clases del seminario. Las actividades realizadas se evaluarán así: Asistencia puntual a clases 30%. PRÁCTICAS desarrollada en clases 20%. TALLERES en el Laboratorio 20%. Deber FINAL del curso 30%. Metodología del seminario: La modalidad del curso será teórico–práctico dictado a un máximo de 20 personas, con una duración mínima total de 32 horas, haciendo uso de herramientas de proyección, pizarra de tiza líquida y computadoras. La parte teórica se desarrollará en forma paralela con la práctica, puesto que se elaboraran ejemplos y ejercicios prácticos. Parte de las tareas se desarrollarán en el Laboratorio, en las horas correspondientes al curso, a manera de TALLER. Se dispone de un “Manual Digital de Prácticas” y si la Dirección de Carrera lo considera, será impreso. En este manual se expone una ligera base conceptual de cada tema, ejemplos para las prácticas y ejercicios para los talleres a realizar. El curso se desarrollará dando a conocer una visión global del software como un soporte directo para la resolución de problemas, Ing. Teddy Negrete Página 1

description

Curso Completo de Matlab

Transcript of _MATLAB_2012_S2.docx

SEMINARIO DE MATLAB BÁSICO.

MANUAL DE PRÁCTICAS.Marzo – Abril 2011.

Políticas del Curso y Plan de Evaluación:

Los participantes del seminario se comprometen a:

• Asistir puntualmente al curso, con un atraso máximo de 15 minutos.• Asistir por lo menos al 50% del curso.• Participar y resolver las prácticas planteadas en el manual.• Utilizar correctamente el internet en el laboratorio.• Atender en todo momento las explicaciones del seminario.• No chatear, ni utilizar las redes sociales en las clases del seminario.

Las actividades realizadas se evaluarán así:

• Asistencia puntual a clases 30%.• PRÁCTICAS desarrollada en clases 20%.• TALLERES en el Laboratorio 20%.• Deber FINAL del curso 30%.

Metodología del seminario:

La modalidad del curso será teórico–práctico dictado a un máximo de 20 personas, con una duración mínima total de 32 horas, haciendo uso de herramientas de proyección, pizarra de tiza líquida y computadoras.

La parte teórica se desarrollará en forma paralela con la práctica, puesto que se elaboraran ejemplos y ejercicios prácticos. Parte de las tareas se desarrollarán en el Laboratorio, en las horas correspondientes al curso, a manera de TALLER. Se dispone de un “Manual Digital de Prácticas” y si la Dirección de Carrera lo considera, será impreso. En este manual se expone una ligera base conceptual de cada tema, ejemplos para las prácticas y ejercicios para los talleres a realizar.

El curso se desarrollará dando a conocer una visión global del software como un soporte directo para la resolución de problemas, las capacidades y los alcances que tiene alrededor de varias ciencias, principalmente las de ingeniería.

Las bases conceptuales se proyectaran en un archivo de presentación entregada a los estudiantes en forma digital. Se proyectará, se explicará y se ejecutarán algunos ejemplos que están en el “Manual de Prácticas” y que será entregado a cada estudiante del curso.

En general nos referiremos a una PRÁCTICA aquel programa o problema que está desarrollado en el manual y el estudiante tiene que analizarlo, comentarlo o confirmar los resultados que proporciona.

Ing. Teddy Negrete Página 1

NORMA PARA LA EJECUCIÓN DE LAS PRÁCTICAS:

1. Si se hace referencia solo a un comando, operación o función, esta debe ser ejecutada en la línea de comandos.

2. Si se hace referencia a un bloque, ejecute el bloque indicado, señalando desde %inicio de bloque hasta %fin de bloque.

3. Algunas veces se deja una línea con el símbolo % dentro del bloque para entender la programación, pero igualmente se ejecuta todo el bloque.

4. En algunos fragmentos de los programas se han colocado comentarios para que los agregue en su archivo *.m, de tal manera que registre definiciones, observaciones o detalles importantes sobre el tema.

5. Generalmente se asocia un NÚMERO a cada archivo *.m, el mismo que tiene un NOMBRE CARACTERÍSTICO, que se refiere al tema tratado en ese numeral.

NORMA PARA LA PRESENTACIÓN DE LAS PRÁCTICAS:

1. Cada estudiante debe realizar las prácticas diarias y serán presentadas semanal o quincenalmente, en forma individual.

2. En el Cronograma de Actividades se establece la Fecha Máxima en la que se receptarán las PRÁCTICAS.

3. Como una guía, se indica paso a paso lo que el estudiante debe realizar para presentar y entregar una práctica. Por ejemplo, si el estudiante va a desarrollar la PRÁCTICA_3, debe escribir:

PRÁCTICA # 3 – MATLAB.FECHA MÁXIMA DE ENTREGA: LUNES, 31 de FEBRERO del 2011.

1. Lea el Manual de Prácticas y consulte con la Ayuda de MATLAB lo que no ha quedado claro. Con respecto a los temas de las páginas 11, 12, 13 y 14.

2. Del Manual de Prácticas, realizar los siguientes archivos:a. #5 tiempo.m página 11 Tema: Tiempos de Ejecución.b. #6 logicas.m página 13 Tema: Variables Booleanas.

3. Ejecute en MATLAB, cada BLOQUE de instrucciones correspondientes a un archivo *.m.

4. Comente lo que realiza cada BLOQUE de instrucciones de cada archivo, en el mismo. Al finalizar el archivo realice un comentario o una conclusión general sobre el tema tratado.

5. Imprima y entregue en clases, los archivos comentados con la explicación de la ejecución de cada bloque y de la conclusión general por archivo *.m.

Ing. Teddy Negrete Página 2

6. Cree una carpeta llamada con SU_NOMBRE_PRÁCTICA_#, por ejemplo. Creamos la carpeta con el nombre NEGRETE_TEDDY_Pn, esto significa que son los archivos de la Práctica # n, del estudiante Teddy Negrete.

7. Dentro de la carpeta creada colocamos los archivos *.m que ha comentado la ejecución y los archivos o directorios que se crean en la CARPETA DE TRABAJO DE MATLAB, durante la ejecución, como constancia de haber realizado las ejecuciones.

8. Al finalizar todas las ejecuciones y comentar todos los archivos ya guardados en la carpeta de trabajo creada, proceda a EMPAQUETARLA, en cualquier formato disponible en la internet. No cambie el nombre del archivo empaquetado, por omisión el nombre es el mismo de la carpeta, es decir SU_NOMBRE_PRÁCTICA_#.zip.

9. Envíe adjuntando al mensaje el archivo empaquetado, a la dirección de correo electrónico: [email protected], colocando como ASUNTO DEL MENSAJE, la asignatura, paralelo, número de la práctica y si su correo usa algún alias que no identifica su nombre, entoces debe colocarlo en el ASUNTO, o en el contenido del mensaje envíado.

10.Tanto el documento impreso como el archivo digital enviado al correo deberá ser entregado hasta la FECHA MÁXIMA DE ENTREGA.

NORMA PARA EL DESARROLLO Y PRESENTACIÓN DE LOS TALLERES:

1. Los TALLERES son Ejercicios Propuestos, planteados en el Manual de Prácticas, que se deben realizar en forma individual o en equipos de dos estudiantes.

2. En general son archivos *.m que satisface el requerimiento planteados en los Ejercicios Propuestos.

3. Se debe adoptar la misma norma utilizada en las PRÁCTICAS para la presentación de este trabajo (TALLER), con la diferencia que debe realizar un solo archivo *.m, por cada Taller Resuelto.

4. Si la ejecución de los Ejercicios del Taller generan carpetas o archivos, debe agregarlos a su carpeta empaquetada de trabajo.

5. Los archivos *.m que resuelven los Ejercicios del Taller también deben ser impresos igualmente como se realizó con las Prácticas.

6. En el Cronograma de Actividades se establece la Fecha en la que se receptaran los TALLERES.

NORMA PARA EL DESARROLLO DEL DEBER FINAL:

Políticas de la Elaboración:

Ing. Teddy Negrete Página 3

• Plantear un tema o problema que sea de su preferencia: matemático, estadístico, eléctrico, electrónico o de otra área del conocimiento.

• En un documento impreso, coloque el nombre del tema o problema y explique el objetivo de utilizar MATLAB para resolverlo. Justifique su complejidad con un soporte teórico sobre las soluciones del problema o una base científica de tema relacionados.

• Como guía del DEBER FINAL tenemos, (PROBLEMA): La elaboración de un programa que ingrese una función periódica f(t) y solicite el número de armónicos N que utilizará para encontrar la representación de FOURIER. Mostrará una función con los N armónicos, su grafico en la serie aproximada y su gráfico en la variable continua real.

• Como guía del DEBER FINAL tenemos, (TEMA): El tema también puede ser de investigación y desarrollo, por ejemplo: La utilización de TOOLBOX diseñados por MATHWORKS o terceros en la resolución de un problema particular, o la ejecución de archivos *.m con la utilización de programas realizados en GUIDE o SIMULINK.

• Solicitar la aprobación del tema o del problema hasta la segunda semana de clases.

Políticas de la Presentación:

• Puede ser realizado en forma individual o entre dos estudiantes, después de la aprobación del tema.

• El formato de presentación IMPRESA será en documento anillado A4, lo concerniente a los archivos *.doc, *.m, *.mdl y adicionales que considere necesarios.

• El formato de presentación DIGITAL será en DVD (no en PENDRIVE), todos los archivos del trabajo, en su formato original, descomprimir si alguno esta empaquetado.

• Fecha máxima de entrega: El penúltimo día de clases. Aunque la revisión se la realizará en la última semana del seminario.

Políticas de la Evaluación:

• [5 puntos] Desarrollo y explicación analítica del tema en un documento en Ms Word, archivo *.doc

• [10 puntos] Desarrollo (con documentación del programa) utilizando MATLAB o SIMULIMK, archivos *.m, *.mdl, u otro formato.

• [10 puntos] Preparar una exposición en Ms Power Point *.ppt del contenido de los archivos anteriores.

• [5 puntos] Puede incluir videos, gráficos, imágenes y/o archivos adicionales que completen su exposición.

MATLAB BÁSICO

INDICE:

1ª SEMANA

Ing. Teddy Negrete Página 4

PRELIMINARES. INTRODUCCION A MATLAB.

Características generales de MATLAB.

Editor de MATLAB.

Elementos básicos para la programación en MATLAB.

PRACTICA #1

TALLER # 1

2ª SEMANA

CAPÍTULO # 1. 1 OPERACIONES NUMÉRICAS

1.1 Operaciones básicas en MATLAB. (17)1.2 Archivos utilizados en MATLAB. (28)

PRACTICA #2

TALLER # 2

3ª SEMANA

3ª SEMANA

1.3 Funciones y comandos básicos en MATLAB. (36)

Funciones Matemáticas

Funciones Estadísticas

1.4 Control de flujo de instrucciones en MATLAB. (37)

Condicional simple

Condicional múltiple

Repetición condicionada

Repetición automática

PRACTICA #3

TALLER # 3

Ing. Teddy Negrete Página 5

4ª SEMANA

CAPÍTULO # 2. FUNCIONES Y ARREGLOS2 FUNCIONES DEL USUARIO, ARREGLOS, GRÁFICOS,

VARIABLE SIMBÓLICA

2.1 Funciones definidas por el usuario. (46)

2.2 Arreglos (Vectores, Matrices e Hiper–Matrices) en MATLAB.

Estructuras en MATLAB. (51)

PRACTICA #4

TALLER # 4

5ª SEMANA

2.3 Funciones con variables simbólicas en MATLAB. (71)

2.4 Gráficos (72)

Gráficos en 2D (bidimensionales)

Gráficos en 3D (tridimensionales)

PRACTICA #5

TALLER # 5

6ª SEMANA

CAPÍTULO # 3. 3 SIMULINK

3.1 Características generales de SIMULINK (72)

Ing. Teddy Negrete Página 6

3.2 Ejemplos de Simulaciones con SIMULINK (72)

PRACTICA #6

TALLER # 6

7ª SEMANA

3.3 Ecuaciones Diferenciales (75)

3.4 Funciones de Transferencia (75)

PRACTICA #7

TALLER # 7

1ª SEMANA

Características generales de MATLAB.

Editor de MATLAB.

Elementos básicos para la programación en MATLAB.

Ing. Teddy Negrete Página 7

MATLAB es una de las aplicaciones más útiles que existen para poner a punto métodos numéricos en distintas asignaturas de ingeniería. Por ser una herramienta de alto nivel, el desarrollo de programas numéricos con MATLAB puede requerir hasta un orden de magnitud menos de esfuerzo que con lenguajes de programación convencionales, como Fortran, Pascal, C/C++, Java o Visual Basic.

El escritorio de MATLAB, tiene 3 ventanas:

1. La ventana de comandos

2. El directorio actual

3. La historia de comandos

Ing. Teddy Negrete Página 8

Actualización de su directorio personal:

Ejecute los siguientes comandos en el PROMPT de la ventana de comandos:

dirhelp dirlsclcclearclear allclose

close alldateclockhelp clock3-215/63-1,4*5

3;pi/4sqrt(2)5^38*9flecha direccional ↑exit

ARCHIVO M-File

Haga clic en el botón “Página en Blanco” llamada “New M-File” del Toolbar, y se mostrará el “Editor de MATLAB, tal como se muestra en la figura adyacente.Escriba aqui las siguientes líneas:

%PRÁCTICA DE VARIOS COMANDOS GENERALES

%inicio de bloquehelp dir3+53*5clear alldateclock

Ing. Teddy Negrete Página 9

help clock%fin de bloque

Este archivo se puede ejecutar de las siguientes formas:

Haga clic en el botón de “Save and run”, en el Toolbar, antes de la ejecución, el programa le pedirá guardar el archivo, debe ponerle el nombre comandos_generales.m. lo guarda e inmediatamente se ejecuta, debe verificar la ejecución regresando al escritorio de MATLAB, en la ventana de comandos, si tiene errores el programa emitirá un sonido.

Otra forma es: Seleccione todas las líneas de edición y luego pulse la tecla funcional [F9], en este caso se ejecuta y no se guarda. Para guardarlo debe dar un clic en el botón “Diskette”, que es “Save”, escriba el nombre antes indicado.

NOTA: Como una norma de programación vamos a documentar los ejercicios indicando que hacen o cuál es el objetivo de la práctica, además en la primera línea de cada programa se debe esribir su nombre, la fecha y el número del ejercicio. Recuerde los comentarios en MATLAB empiezan con el símbolo %.

EJERCICIOS DE COMANDOS GENERALES:

1. Aumente los siguientes comandos al archivo anterior, a partir de la línea 13 o 14, y comente el bloque de instrucciones después de la ejecución del mismo, cada comentario debe empezar con el signo %.

(Se sugiere ejecutar cada uno de los bloques de instrucciones, analizar cuales son los resultados y luego realizar el comentario por bloque).

%inicio de bloquerandrand(1)rand(2)rand(3)%fin de bloque

%inicio de bloquerealminrealmaxintminintmaxroots([1 2 1])roots([1 -2 1])%fin de bloque

%inicio de bloquedir *.mattype matlab.mat%¿Por que se presenta error?%fin de bloque

Ing. Teddy Negrete Página 10

%inicio de bloquesavedirtype matlab.mat%fin de bloque

%inicio de bloquemkdir SU_NOMBREcd SU_NOMBREsave archivo_texto.txtsave archivo_excel.xlsdirpwdcd ..pwd%fin de bloque

(Recuerde que tiene una ayuda usando el comando “help + COMANDO”, donde COMANDO es la función de Matlab que usted quiere conocer).

2. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el nombre constantes.m, usando el Editor de archivos M-File y ejecute las siguientes líneas de programación, comente cada línea explicando el significado del resultado:

%inicio de bloque%Números reales1/2 + 3/4 2+3*4-6/5^2+12e32*10^34e-14*10^-1sqrt(3)/piexp(1)%fin de bloque

%inicio de bloque%Números complejos2i*(5-4i)(2-i)/(6i-4)sqrt(1-i)(1-5i)^2(1+5i)^33*exp(i)2*exp(i*pi)4*exp(i*pi/4)%fin de bloque

Ing. Teddy Negrete Página 11

%inicio de bloque%Formas simbólicas1/0-5/0infInfinf+inf0/infinf/0%fin de bloque

%inicio de bloque%Formas indeterminadasnanNaNinf*00*inf 0/00^0inf^0inf/infinf-inf1^inf%fin de bloque

%inicio de bloque%Forma infinitesimaleps sin(0)/0sin(eps)/eps%fin de bloque

Recordemos la expresión de cálculo diferencial

¿En qué casos usaríamos este valor real, que más parece variable?En matemáticas, si escribimos x→0 , x se acerca a cero pero no es cero.En programación, si escribimos x=0, x toma el valor de cero.

Entonces en programación podríamos escribir x=eps , que significaría que x tiende a cero pero no es cero, es decir estaríamos utilizando una variable infinitesimal (que aqui es una constante) para resolver un problema de asignación en programación.

%IMPORTANTE: i es un número, que representa al igual que eps, pi, e, exp, un valor, por lo tanto no pueden ser usados como nombres de variables. Además los nombres de formas simbólicas o indeterminadas como inf, Inf, nan, NaN tampoco pueden ser usados como variables.

Ing. Teddy Negrete Página 12

%Formato de los números

%inicio de bloqueformat short5/7Format long5/7format short1/2 + 3/4 format rat1/2 + 3/4%fin de bloque

%inicio de bloqueformat short10.239 + 23.89675format bank10.239 + 23.89675%fin de bloque

format short %dejemos este estándar de formato numérico

NOTA IMPORTANTE: REPASE conceptos de aritmética tales como: números decimales, números racionales, números irracionales, cifras significativas, notación científica y notación punto flotante.

Ejercicios usando: clear, close, who, whos.

3. Elabore un archivo, verifique que se guarde en su carpeta personal, con el nombre que_variable_limpiar_cerrar.m, usando el Editor de archivos M-File, ejecute los siguientes comandos, interprete resultados:

%PRUEBAS CON CLOSE - CLOSE ALL

%inicio de bloqueclear allwhowhos%fin de bloque

%inicio de bloquea=2+3b=2*3datewhowhos%fin de bloque

Ing. Teddy Negrete Página 13

%inicio de bloqueclear b answhowhos%fin de bloque %inicio de bloquesqrt(8)8^(1/2)whowhos%fin de bloque

%inicio de bloqueclear allnthroot(27,3)whowhos%fin de bloque

%PRUEBAS CON VENTANAS TÍTULOS, GRILLAS Y CERRAR

%inicio de bloqueclcfigurefigureclosefigure(3)closefigure%fin de bloque

%inicio de bloqueclose figure%¿Por que se presenta error?close figure(1)%¿Por que se presenta error?%fin de bloque

%inicio de bloqueclose(1)figureclose allclose allclcf1=figure(1)f2=figure(2)close(f1)%fin de bloque

Ing. Teddy Negrete Página 14

%inicio de bloqueclose allclear allwhofigure(10)title('UPS - GUAYAQUIL')grid%fin de bloque

Los nombres de las variables no pueden ser comandos, funciones o nombres de valores definidos en MATLAB. No se puede usar espacios en blanco. Los nombres de variables se diferencian entre MAYÚSCULAS y minúsculas. ans no debe usarse como nombre de variable, ya que este nombre se asigna a la respuesta de una operación ejecutada.Los nombres de las variables deben empezar con caracteres, es decir letras.

4. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el nombre variables.m. Usando el Editor de archivos M-File, ejecute y comente cada bloque de instrucciones:

%Variables, nombres, tipo%Tipos: %Numéricas o escalares%Vectores numéricos%Matrices numéricas

%inicio de bloquea=4*5A=2*3aA=a+AaB=a-Av1=[1 2 3 4]v2=[5 6 7 8]v3=v1+v2v4=v1-v2Ma=[1 2;3 4]MA=[5 6;7 8]MaA=Ma+MAMaB=Ma-MA%fin de bloque

NOTA IMPORTANTE: En el editor de MATLAB, los caracteres o las cadenas de caracteres deben estar encerrados entre los ‘apóstrofes’ (tecla [? ‘]). La cadena toma, de un color ROJO (al abrirla) a un color VIOLETA (al cerrarla). Esta indicación le servirá para aplicar el ‘apóstrofe’ correcto usado por MATLAB.

%Caracteres%Cadena de caracteres, equivalente a vector de caracteres%Matrices de cadenas

Ing. Teddy Negrete Página 15

%inicio de bloqueclear alla=34a=aa='a'b='b'a+b%¿Que significa este resultado?%double(a)double(b)double(a+b)%%Este es el mismo resultado anterior, pero no se unen los caracteres%fin de bloque

%inicio de bloquec='u'd='p'e='s'strcat(c,d,e)c+d+e%fin de bloque

%inicio de bloquef='matlab ups'g=' oso'h=' ups'strcat(f,g,h)f+g%¿Por que se produce un error?%fin de bloque

%inicio de bloquef+h%¿Por que se produce un error?%fin de bloque

%inicio de bloqueg+h%¿Por que NO sale error, ahora?strcat(f,g)strcat(f,h)%fin de bloque

%inicio de bloqueMa=['ab' 'cd';'ef' 'gh']Mb=['teddy ' 'jhennse ';'negrete ' 'peña ' ]

Ing. Teddy Negrete Página 16

%¿Por que se produce un error?%fin de bloque

%inicio de bloqueMc=['teddy ' 'jhenn ';'negre ' 'peña_ ' ]%¿Por que no sale error, ahora?%fin de bloque

NOTA IMPORTANTE: El estudio de caracteres – cadenas será más profundo en capítulos posteriores, por ahora solo es una introducción al concepto de variables. Así mismo también se analizará en detalle los conceptos de vectores y matrices en otro capítulo.

EJERCICIOS PARA LOS TALLERES:

TALLER # 1

1.1 Usando el programa MATLAB, calcule EN LA LÍNEA DE COMANDOS:

1.1.1 4√81+102−e3

1.1.2 Las raices del polinomio 2 x5−3 x3+4 x−11.1.3 En forma racional ¾ - ½ +3/5 – 1/10 1.1.4 En forma monetaria 23,34 – 45,67 + 100,12

1.1.5 Presente con presición de al menos 8 dígitos e+π 1.1.6 log2(128)+log3(243)+ln(e5)+log(1000)-3√27+42

1.2 En un SCRIPT de MATLAB, genere diferentes operaciones con números reales y guárdelos en 4 variables, use el comando adecuado para limpiar 2 de las 4 variables cargadas, en la memoria.

1.3 En un SCRIPT de MATLAB, genere 2 matrices cuadradas de 5X5, con valores aleatrorios entre 0 y 1, muéstrelas, luego presente la suma y el producto de las mismas.

1.4 En un SCRIPT de MATLAB, genere una matriz cuadrada 10x10 con números aleatorios. Utilice la función round para que los elementos de la matriz generada tenga números enteros entre 5 y 15.

1.5 En un SCRIPT de MATLAB, genere una matriz cuadrada 10x10 con números aleatorios. Utilice la función fix para que los elementos de la matriz generada tenga números enteros entre 1 y 10.

1.6 En un SCRIPT de MATLAB, genere una matriz cuadrada 10x10 con números aleatorios, tal que los elementos de la matriz generada tenga números enteros entre 5 y 10.

1.7 En un SCRIPT de MATLAB, utilice la constante matemática infinitesimal eps en un límite para calcular la base del logaritmo natural.

Ing. Teddy Negrete Página 17

1.8 En un SCRIPT de MATLAB, muestre una ventana que vizualice una cuadrícula, con el título "PULSE UNA TECLA PARA CERRAR ESTA VENTANA" usando la función pause() logrará hacer una pausa al programa, y luego automáticamente cierre esta ventana generada.

1.9 En un SCRIPT de MATLAB, compruebe y comente línea por línea los pasos que debe seguir un usuario para hallar el BLOCKSET de Comunicaciones "Multipath Rician Fading Channel" (Start/Blocksets/Communications/Block Library/Channels). Además, en el FUNCTION BLOCK PARAMETERS, indique los valores por omisión de los 3 primeros parámetros (K-factor/Doppler shift(s)/Initial phase(s)).

1.10 En un SCRIPT de MATLAB, cree un vector fila y otro vector columna cuyos elementos sean sus nombres o sus apellidos, si es necesario llene sus nombres o apellidos con espacios en blanco.

2ª SEMANA

CAPÍTULO # 1. 1 OPERACIONES NUMÉRICAS1.1 Operaciones básicas en MATLAB.

5. Elabore otro archivo, verifique que se guarde en su carpeta personal, llámelo tiempo.m, ejecute las siguientes líneas de programación, comente cada bloque y concluya con los resultados:

COMANDO etimeAnalice la función etime, ejecutando las siguientes líneas:

exit %Pedimos que salga y lo primero que hará es este ejemplo

%inicio de bloqueclear allt0=clock7-34*5t1=clocketime(t1,t0)%Aproximadamente 30 – 40 milésimas de segundo%fin de bloque

%inicio de bloqueformat long et0=clock7-34*5t1=clocketime(t1,t0)%Aproximadamente 0 – 5 milésimas de segundo%fin de bloque

Ing. Teddy Negrete Página 18

%inicio de bloqueclcclear allt0=clockMa=rand(20)Mb=rand(20)Mc=Ma*Mbt1=clocketime(t1,t0)%Aproximadamente 200 – 220 milésimas de segundoformat short%fin de bloque

%CUIDADO!!! En la siguiente ejecución su PC podría %parecer inhibida, después de 15 – 20 segundos.%Tenga paciencia y verifique que está trabajando %y no está inhibida, accionando la tecla [Bloq Num]

%inicio de bloque%EJECUCIÓN MOSTRANDO LAS MATRICESclear allt0=clockMa=rand(1000)Mb=rand(1000)Mc=inv(Ma*Mb)t1=clocketime(t1,t0)%Aproximadamente 18 – 19 segundoswhos%fin de bloque

%inicio de bloque%EJECUCIÓN SIN MOSTRAR LAS MATRICESclcclear allt0=clockMa=rand(1000);Mb=rand(1000);Mc=inv(Ma*Mb);t1=clocketime(t1,t0)%Aproximadamente 3 – 4 segundoswhos%fin de bloque

COMANDO cputimeAnalice la función cputime, ejecutando las siguientes líneas:

exit %Pedimos que salga y lo primero que hará es este ejemplo

Ing. Teddy Negrete Página 19

%inicio de bloqueclear alln=3Ma=rand(n)Mb=rand(n,1)t0=cputimeMc=Ma*Mbt1=cputime-t0%Aproximadamente 31 – 32 milésimas de segundo%fin de bloque

%inicio de bloque%Note este resultadoclear Mct=cputime; Mc=Ma*Mb; cputime-t%Exactmente 0 segundos%fin de bloque

COMANDO tic tocAnalice la función tic; OPERACIONES; toc o también tic, OPERACIONES, toc ejecutando las siguientes líneas:

exit %Pedimos que salga y lo primero que hará es este ejemplo

%inicio de bloquetic4*5sqrt(9)toc%Aproximadamente 16 milésimas de segundo%fin de bloque

%inicio de bloquetic; 4*5;sqrt(9); toc%Exactamente 0 segundos%fin de bloque

%inicio de bloqueclear alltic, 4*5, sqrt(9), toc%Exactamente 0 segundos

Los resultados de los tiempos que nos entregan las funciones etime cputime tic toc dependerán del hardware, sistema operativo y aplicaciones cargadas en la PC al momento de solicitar estos tiempos. El espacio libre en el WORKSPACE es fundamental, además la configuración del formato de las variables en la asignación de los tiempos nos permite mayor precision.

Ing. Teddy Negrete Página 20

VARIABLES LOGICAS (BOOLEANAS)

6. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el nombre logicas.m, comente cada línea explicando el significado de la ejecución y concluya en forma general por cada bloque:

Es importante que usted revise y memorice las reglas de las operaciones lógicas básicas: Negación, Conjunción, Disyunción. Así como también propiedades y leyes, por ejemplo Ley de "D'Morgan", la propiedad de la Identidad, etc.

%inicio de bloqueclc%El ASCII de ~ es 126, es decir debe pulsar las teclas [ALT]+[126]~1 ~00&01|0%fin de bloque

%inicio de bloqueclc La=5<4Lb=6>1Lc=3==(1+2)%Explique la diferencia entre el operador = y el ==%Revise lo que es un operador relacional, aritmético y lógicoLd=not(Lc)Le=and(La,Lb)Lf=or(La,Lb)%fin de bloque

%inicio de bloqueclcLg=falseif(Lg) ver='verdadero'else ver='falso'end%fin de bloque %inicio de bloqueLh=trueif(Lh) anotar='verdadero'else anotar='falso'end%fin de bloque

Ing. Teddy Negrete Página 21

%inicio de bloqueclcn=input('ingrese un número positivo: ')if(n<0) display('POSITIVO DIJE...') pause()end%fin de bloque

NOTA: El estudio de funciones para las variables, vectores y matrices lógicas será desarrollado en unidades posteriores, por ahora solo es una introducción al concepto de variables.

ESCALAR - VECTOR – MATRIZ:

MATLAB es el nombre abreviado de “MATrix LABoratory”. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares (tanto reales como complejos), con cadenas de caracteres y con otras estructuras de información más complejas.

Es con grandes matrices o grandes sistemas de ecuaciones como MATLAB obtiene toda la potencia del ordenador. Por ejemplo, las siguientes instrucciones permiten calcular la potencia de cálculo del ordenador en Megaflops (millones de operaciones aritméticas por segundo).

7. Elabore otro archivo, con el nombre vector_matriz.m, comente cada línea explicando el significado de la ejecución y concluya en forma general por cada bloque:

%Los ESCALARES son números reales.%Los ESCALARES son considerados vectores 1X1%Los números complejos son considerados vectores 1X2%Los escalares son un caso particular de los vectores %Los VECTORES%Vector(1xn) = Vector(1-Fila x n-Columnas), n>1%Vector(1xn) = Vector Fila%Vector(nx1) = Vector(n-Filas x 1-Columna), n>1%Vector(nx1) = Vector Columna

%Si n=1, entonces es un escalar%En Algebra Lineal a estos arreglos los llamabamos %Matriz Fila o Matriz Columna

%inicio de bloqueclcclear allVa=[0 1 2 3 4 5 6 7 8 9]Vb=[0; 1; 2; 3; 4; 5; 6; 7; 8; 9]

Ing. Teddy Negrete Página 22

Vc=Va*VbVd=Vb*VaVa'Vb'%fin de bloque

%inicio de bloqueclcclear allVa=zeros(3,1)Vb=zeros(1,3)Vc=ones(5,1)Vd=ones(1,5)Vd=rand(6,1)Ve=rand(1,6)%fin de bloque

%inicio de bloqueclcclear allV1=[1 2 3 4];dimension1=size(V1)longitud1=length(V1)V2=[1; 2; 3; 4];dimension2=size(V2)longitud2=length(V2)%fin de bloque %Las MATRICES son considerados como arreglos de más%de un vector que tienen la misma dimensión.%Por ejemplo: La matriz M(3x4)%La matriz M puede ser considerada por 3 vectores de (1x4) o%La matriz M puede ser considerada por 4 vectores de (3x1)%Las matrices son una extensión de los vectores. %Las MATRICES%Matriz(mxn) = Matriz(m-Filas x n-Columnas), n>1, m>1%Si n=1 y m=1, entonces es un Escalar%Si n=1 y m>1, entonces es un Vector Fila%Si n>1 y m=1, entonces es un Vector Columna

%inicio de bloque%Ingreso de Matrices en una Línea: Filas separadas por (;)clcclear allMa=[1 2;3 4]Mb=[5 6;7 8]Mc=Ma*MbMd=Ma+MbMe=-3*Md

Ing. Teddy Negrete Página 23

%Matriz INVERSAMi=inv(Me)%fin de bloque

%inicio de bloque%Matriz TRANSPUESTA %Use ' el apóstrofe de las cadenas de caracteresMt1=(Me)'Mt2=(Mt1)'%DETERMINANTE de una matriz CUADRADAdet(Md)%fin de bloque %inicio de bloque%Ingreso de Matrices en varias Líneas: Fila X Líneaclear allMA=[1 2 3 4 5 6 7 8 9]MB=[1 2 3]MC=[1 2 3]MD=MA*MBME=MB*MC%fin de bloque

%inicio de bloque%NOTE QUE ESPECIAL TIENE ESTA OPERACIONMF=MD-7 %7 es tomado como una Matriz compatible con MDMG=ME-7 %7 es tomado como una Matriz compatible con ME%fin de bloque

%inicio de bloqueA=rand(3)B=rand(3)C=10*AD=A*BE=10+BF=A+B%fin de bloque

%inicio de bloquex=[1 2 3 4 5]y=x^2%¿Por que se obtiene un error?%Elevar al cuadrado es un operador asignado a escalares%¿Será necesario utilizar otro operador?%fin de bloque

Ing. Teddy Negrete Página 24

OPERACIONES ARITMÉTICAS:

Con la tabla y los ejemplos dados a continuación vamos a comprender las operaciones de los vectores y matrices en MATLAB. Se definirán 2 operaciones nuevas que no se conocían en algebra común, la DIVISIÓN VECTORIAL. Esta operación será analizada posteriormente como funciona matemáticamente, pero por ahora, con los ejemplo analizaremos la dimensión de los resultados y la compatibilidad de los operandos.

%OPERACIONES ARITMETICAS: (ESCALARES, MATRICES Y VECTORES)

%inicio de bloque%ESCALARES2+35-68*72^39/39\39'%fin de bloque

%inicio de bloque%MATRICES (2X2) [1 2;3 4]+[5 6;7 8][-1 6;4 5]-[0 2;-3 4]2*[1 2;3 4][1 2]*[3;4][1; 2]*[4 5][1 2]*[3 4;5 6][1 2;3 4]^2[1 2;3 4]^(1/2)[1 2;5 6]/[1 0;0 1][1 0;0 1]\[3 4;7 8][1 2;3 4]'%fin de bloque

Ing. Teddy Negrete Página 25

ESCALAR MATRIZ VECTOR DESCRIPCIÓN+ + + Adición- - - Sustracción* * .* Multiplicación^ ^ .^ Potencia/ / . / División hacia la derecha\ \ .\ División hacia la izquierda‘ ‘ .’ Transposición

%inicio de bloque%VECTORES %%INTERVALOS (Arreglos horizontales Auto-Definidos)clcclear allVx=-10:2:10Vy=linspace(-5,5)Vz=linspace(-5,5,10)Vu=linspace(-5,5,11)Vv=Vu'%SUMA, DIFERENCIA Y PRODUCTOclcclear allVx=-2:1:2Vy=linspace(-2,2)Vz=linspace(-2,2,10)Vu=linspace(-2,2,5)Vv=Vu'%Dimensión de Vx es 1x5 y (Vx)' es 5x1%Dimensión de Vv es 5x1 y (Vv)' es 1x5Vx+VuVx-VuVx*Vv %(1x5)*(5x1)(Vx)'*(Vv)' %(5x1)*(1x5)%fin de bloque

%DIVISIÓN DE VECTORES%En las fracciones tenemos p/q, p=numerador q=denominador%En los vectores la división derecha / se define p/q%En los vectores la división izquierda \ se define q\p%La dimensión de los vectores p y q pueden ser IGUALES. %Las operaciones / y \ son distintas.%Las operaciones / y \ son NO CONMUTATIVAS.

%REGLA DE OPERACIÓN:%Considerando a q en ambos casos, el denominador y%manteniendo el orden p->q o el orden q->p, es el vector %q el que intercambia su dimensión y p la mantiene.%Recuerde que el PRODUCTO DE VECTORES no es conmutativo.%En la división vectorial podemos aplicar como regla%dimensional del resultado, la siguiente:%nume/deno es equivalente en dimensión a nume*(deno)'%deno\nume es equivalente en dimensión a (deno)'*nume

%inicio de bloqueVx/Vx %(1x5)/(1x5)=(1x5)*(5x1)

Ing. Teddy Negrete Página 26

Vv/Vv %(5x1)/(5x1)=(5x1)*(1x5)Vx\Vx %(1x5)\(1x5)=(5x1)*(1x5)Vv\Vv %(5x1)\(5x1)=(1x5)*(5x1)%fin de bloque %inicio de bloque[1 2]/[3 4][3 4]/[1 2][1 2]\[3 4][3 4]\[1 2]%fin de bloque

VARIABLES VECTORIALES

Si se van a operar escalar y vectores asignando el resultado en vectores, entonces no se olvide de incluir el “.” antes de los operadores (' * / ^ \) le indica a MATLAB que es una operación aritmética de asignación vectorial.

Revisemos ahora un ejemplo pendiente,

%inicio de bloquex=[1 2 3 4 5]y=x.^2%¿Por que ahora NO se obtiene un error?%Elevar al cuadrado es un operador asignado a escalares%El operador .^ tambien eleva al cuadrado, pero asigna un vector %fin de bloque

%inicio de bloqueclear allVx=0:1:10Vm=Vx+VxVn=Vx-VxVo=2.*Vx+1Vp=-3.*Vx-2Vq=5*Vx.^2-2Vr=3./Vx+2 %Note la división para CEROVs=Vx.\3 %Note la división para CEROVt=3.\VxVu=Vx.'Vw=Vx'Vx=(2.*Vx+1).'%fin de bloque %inicio de bloque%Otra forma equivalente: Vectores Auto-Definidos (INTERVALOS)clcclear all

Ing. Teddy Negrete Página 27

[Vx]=-10:2:10[Vy]=linspace(-5,5)[Vz]=linspace(-5,5,10)[Vu]=linspace(-5,5,11)[Vv]=[Vu]'%fin de bloque

GRAFICOS EN EL PLANO XY

Considerando que la Graficación de Funciones o relaciones matemáticas son tratadas como la graficación de pares ordenados tomados de 2 vectores, en esta parte ejecutaremos dos funciones utilizadas en MATLAB, para alcanzar este objetivo.

8. Elabore otro archivo, verifique que se guarde en su carpeta personal, con el nombre vector_grafico.m, comente cada línea explicando el significado de la ejecución y concluya en forma general por cada bloque:

%inicio de bloqueclear allx=-10:0.1:10y=x.*(2-x)plot(x,y)grid%fin de bloque

%inicio de bloqueclear allezplot('x*(2-x)'), grid%fin de bloque

%inicio de bloqueclear allx=-10:0.1:10y=x.*(2-x)figure(10)plot(x,y)grid%fin de bloque

%Graficos de Funciones Implícitas, o Relaciones Matemáticas%inicio de bloqueclear allezplot('x^2+y^2-1',[-2,2,0,2])%fin de bloque

%inicio de bloque%Dos graficos en 2 ventanas diferentesx=0:0.1:1y1=2.*x+1figure(10)

Ing. Teddy Negrete Página 28

plot(x,y1)gridtitle('GRAFICO No. 1')y2=2.*x-1figure(11)plot(x,y2)gridtitle('GRAFICO No. 2')%fin de bloque

%inicio de bloque%Dos graficos en la misma ventana%USO DE LA FUNCION SUBPLOTclcclose allclear allx=0:0.1:10y1=sin(x)subplot(2,1,1)plot(x,y1)gridtitle('GRAFICO No. 1')y2=cos(x)subplot(2,1,2)plot(x,y2)gridtitle('GRAFICO No. 2')%fin de bloque

%inicio de bloque%Dos graficos en los mismos ejes de la misma ventanaclear allx=0:0.01:2y1=x.^2plot(x,y1)hold ony2=x.^(1/2)plot(x,y2)gridhold off%fin de bloque

1.2 Archivos utilizados en MATLAB.

TIPOS DE ARCHIVOS:En muchas ocasiones puede resultar interesante interrumpir el trabajo

con MATLAB y poderlo recuperar más tarde en el mismo punto en el que se dejó (con las mismas variables definidas, con los mismos resultados intermedios, etc.). Hay que tener en cuenta que al salir del programa todo el contenido de la memoria se borra automáticamente.

Ing. Teddy Negrete Página 29

ARCHIVO DE DATOS Y DE EJECUCIÓN:Los archivos *.mat son archivos de DATOSLos archivos *.m son archivos de EJECUCIÓN

9. Elabore otro archivo, con el nombre archivos_varios.m, comente cada línea explicando el significado de la ejecución y concluya en forma general por cada bloque:

%inicio de bloque%GUARDADO DE UNA VARIABLE z EN UN ARCHIVO vector_z.matz=[1 2 3 4 5 6 7 8 9 0]save vector_z.mat zclear zx=z*2%¿Por que se produce error?%fin de bloque %inicio de bloque%CARGADO DE UN ARCHIVO vector_z.mat A UNA VARIABLE zload vector_z.mat zx=z*2%¿Por que NO se produce error, ahora?%fin de bloque %inicio de bloque%TIPOS DE ARCHIVOS: TEXTO Y HOJA DE CÁLCULOy=[1 3 5 7 9]'save texto.txt y –ASCII save hoja.xls y –ascii%fin de bloque

%Desde el NOTEPAD DE WINDOWS abra el archivo texto.txt%El archivo texto.txt se guardo en su carpeta personal%%Luego vaya ARCHIVO / GUARDAR del Notepad%INTERPRETE EL CONTENIDO DE ESTE ARCHIVO

%Recuerde que en el formato de MATLAB%El . equivale a la , decimal en formato MS-WINDOWS LA%La , equivale a la . millar en formato MS- WINDOWS LA

Ing. Teddy Negrete Página 30

%%Desde el MS-EXCEL abra el archivo hoja.xls%El archivo hoja.xls se guardo en su carpeta personal%%MS-EXCEL 2007 presenta una ADVERTENCIA%Leala con cuidado, la pregunta final dice ¿Desea abrir el archive ahora?%SI%%La importación es por omisión%Proceda con la IMPORTACIÓN de texto a hoja desde MS-EXCEL%%Siga los siguientes pasos:%

%%VENTANA: PASO 1 de 3%Tipos de los datos originales: DELIMITADOS%Comenzar a importar en la fila: 1%Origen del archivo: MS-DOS(PC-8)%

Ing. Teddy Negrete Página 31

%SIGUIENTE%

%%VENTANA: PASO 2 de 3%Separadores: TABULACIÓN%Calificador de texto: "%%SIGUIENTE%

%%VENTANA: PASO 3 de 3%Formato de datos en columna: GENERAL %%IMPORTANTE: Aquí, sí después de los números enteros 1, 3, ...%le sigue el punto(.), entonces va tener un error, ya que la %cantidad a importar será 10 millones (10 000 000) y no 1

Ing. Teddy Negrete Página 32

%tal como había sido definido el vector z, entonces deberá %realizar el siguiente ajuste, caso contrario (si tiene una ,)%es decir, el número se muestra 1,0 000 000 déle %%FINALIZAR%

Esta parte será efectuada siempre y cuando el resultado obtenido sea INCORECTO, puesto que la configuración del MS – Windows LA difiere a la configuración anglosajona de MATLAB.

%%Teniendo (.) déle:%AVANZADAS%En la nueva ventana de diálogo verifique:%Separador decimal: . (PUNTO)%Separador de miles: , (COMA)%Esta es la configuración del texto a importar%Por omisión aparecerá la configuración de MS-WINDOWS LA%es decir: (,) decimal y (.) millar, por lo tanto deberá%intercambiar la configuración.%%FINALIZAR%

Ing. Teddy Negrete Página 33

RESULTADO INCORRECTODebido a la configuración de (.) para miles y (,) para decimales

RESULTADO CORRECTOAqui podemos ver que (,) es decimal y se sobreentiende que (.) es miles

Ing. Teddy Negrete Página 34

%%Luego vaya ARCHIVO / GUARDAR del MS – EXCEL 2007%Se presentara un cuadro de confirmación para mantener el formato%del libro%%SI% %INTERPRETE EL CONTENIDO DE ESTE ARCHIVO

ARCHIVO STARTUP.M

El archivo startup.m es un archivo de ejecución automática y debe ser creado dentro de la carpeta “unidad:\matlab_root\toolbox\local”, si usted desea establecer configuraciones automáticas.

10. Elabore otro archivo, verifique que se guarde en la carpeta especifica “unidad:\matlab_root\toolbox\local” con el nombre específo startup.m, comente cada línea explicando el significado de la ejecución y concluya en forma general por cada bloque

%inicio de bloque%%====TEDDY NEGRETE=======dirdate3*6%fin de bloque

Note que si usted guarda este archivo, con el mismo nombre en:“unidad:\matlab_root\work”. El resultado es el mismo.

NOTA: Otros archivos de MATLAB, tales como: *.mex, *.mdl, *.fig, serán estudiados en próximas unidades, ya que forman parte de los módulos como MatLab Compiler, Simulink y MatLab GUI´s.

CÁLCULO DE EXPRESIONES NUMÉRICAS:

Considerando:

Ing. Teddy Negrete Página 35

(. punto) como un SEPARADOR DECIMAL, (, coma) como un SEPARADOR DE INSTRUCCIONES con salida por pantalla (; punto coma) como un SEPARADOR DE INSTRUCCIONES sin salida por pantalla, (esta es la configuración por omisión del MATLAB):

Para clarificar la diferencia entre “. , ;” y la notación numérica, utilizados en MATLAB, efectuaremos las siguientes prácticas. 11. Elabore otro archivo, verifique que se guarde en la carpeta personal con

el nombre calculo_expresion_num.m, calcule el valor de las siguientes expresiones aritméticas, en formato corto y extendido.

12. Elabore otro archivo, verifique que se guarde en la carpeta personal con el nombre en_una_linea.m, indique cuál es el resultado y que se muestra durante la ejecución.

%inicio de bloquex=1:3,x’*x%fin de bloque

%inicio de bloqueA=rand(10);B=rand(10);C=A*B%fin de bloque

Ing. Teddy Negrete Página 36

EJERCICIOS PARA LOS TALLERES:TALLER # 2

2.1 Realice un programa que muestre por pantalla, 2 matrices de 1000 x 1000 con números aleatorios reales entre 1 y 5. Calcule y muestre el producto de las 2 matrices y el determinante de este resultado. Optimícelo, calculando cuánto tiempo se demora su ejecución (comente el tiempo aproximado en ms).

2.2 Realice un programa que muestre por pantalla la Tabla de Multiplicar Del 20, es decir que en la 1ª Fila y la 1ª Columna tenga los números del 1 al 20, y en las posiciones interiores el resultado del producto. Use el concepto de vectores. Optimícelo, calculando cuánto tiempo se demora su ejecución (comente el tiempo aproximado en ms).

2.3 Realice un programa que muestre 6 ventanas diferentes enumeradas del 1 al 6, cada una debe presentar en un dominio 0 < t < 10, los gráficos de funciones básicas de una variable: t3, 4√ t , sen(t), ln(t), et, arctg(t).

2.4 Usando la función SUBPLOT realice un programa que muestre en una sola ventana TODAS los gráficos del ejercicio anterior.

2.5 Realice un programa que ejecute y pruebe las siguientes funciones básicas con vectores y matrices. Primero defina varios vectores o matrices luego obtenga el resultado de una de las operaciones aritméticas (+ - * ^ / \ ‘) compatibles con los vectores o matrices definidos, luego sobre este resultado aplique la function indicada. Comente el resultado obtenido en cada función, después de la ejecución de cada bloque.

2.5.1 norm2.5.2 sumsqr2.5.3 minmax2.5.4 fix2.5.5 round

2.6 Realice un programa que genere una matriz de 20X2 con números enteros aleatorios del 1 al 20, el resultado lo guarde en un archivo tipo hoja electrónica, llamado temp.xls para posteriormente convertir el texto en columna de este archivo, en información válida para Microsoft Excel. Guarde el archivo convertido con el nombre LISTAS.xls. Desde Microsoft Excel, cambie el formato de las 2 columnas de datos, De Científica a Normal, luego inserte un gráfico LINEA 2D, tipo Línea, en el mismo archivo LISTAS.xls y confirme que son 20 datos, con valores entre 1 y 20.

2.7 Realice un archivo StartUp.m que realice las siguientes instrucciones cuando inicie el programa: limpie la pantalla, guarde en una variable la hora de inicio de trabajo, muestre un mensaje de bienvenida con su nombre, la fecha y la hora de inicio de trabajo.

Ing. Teddy Negrete Página 37

3ª SEMANA

1.3 Funciones y comandos básicos en MATLAB.

Funciones Matemáticas

Funciones Estadísticas

Para cada asignatura estudiada a continuación, elabore un archivo *.m con el nombre de la asignatura, analice los resultados obtenidos de las funciones ejecutados en la línea de comandos o la ejecución de los bloques en un script y conteste las preguntas planteadas en cada sección.

13. ARITMÉTICA

MÁXIMO COMÚN DIVISOR – MÍNIMO COMÚN MÚLTIPLO

Ejecute en el PROMPT las siguientes instrucciones:

>>gcd(24, 64) %greatest common divisor >>lcm(10,100) %least common multiple>>factor(24)>>factorial(5)>>mod(5,2)>>rem(7,3)

En un archivo SCRIPT ejecute las siguientes líneas:

%inicio de bloqueformat rat1/2+3/40.1+3.4+3/5format short%fin de bloque

14. ALGEBRA BÁSICA

PRODUCTOS ALGEBRAICOS:

Dadas las expresiones

Al efectuar el producto tenemos: ,

ahora probemos una función de MATLAB:

Ing. Teddy Negrete Página 38

%inicio de bloque%MULTIPLICACION ALGEBRAICAsyms x y1 y2y1=expand((2*x-1)*(4-3*x))y2=expand((2*x-1)*(x-3))%fin de bloque

FACTORIZACIÓN:

Dada la expresión Al realizar la factorización de esta expresión tenemos:

ahora probemos una función de MATLAB:

%inicio de bloque%FACTORIZACIONsyms x, factor(x^7-x)%fin de bloque

SIMPLIFICACIÓN ALGEBRAICA:

Dada la expresiones algebraicas: procedamos a la simplificación natural:

ahora probemos otras funciones de MATLAB:

%inicio de bloque%SIMPLIFICACIÓN ALGEBRAICAsyms x f gf=1/(x+4)+2/(x-3)-4/(x-1)g=simplify(f)pretty(g)expand((x+4)*(x-3)*(x-1))%fin de bloque

Ing. Teddy Negrete Página 39

DESCOMPOSICIÓN ALGEBRAICA:

Dada la expresión Al efectuar el proceso de la descomposición en fracciones parciales,

donde los coeficientes buscados son:

ahora probemos una función de MATLAB:

% inicio de bloque[numerador denominador entero]=residue([-1 -2 43],[1 0 -13 12])%fin de bloque

% inicio de bloqueclear all[numerador, denominador, entero]=residue([-1 -2 43],[1 0 -13 12])%fin de bloque

Analicemos los datos:

En la función residue:[-1 -2 43]; es el vector de los coeficientes del polinomio del numerador, [1 0 -13 12]; es el vector de los coeficientes del polinomio del denominador.

Analicemos los resultados:

En el resultado, numerador, denominador, entero son vectores que representan: numerador; los coeficientes de los numeradores de cada fracción parcial, denominador; los polos de cada uno de los factores lineales de los denominadores de cada fracción parcial,entero; los coeficientes del polinomio entero, si la fracción es impropia.

Ing. Teddy Negrete Página 40

Dado el siguiente bloque de instrucciones en MATLAB:

%inicio de bloque%DESCOMPOSICIÓN EN FRACCIONES PARCIALESclear allnum=[1 1 -6]den=[1 -1][a b c]=residue(num,den)%fin de bloque

Analice los resultados y escriba la igualdad de la función racional dada e ingresada a la función residue y compruebe el equivalente de la suma de fracciones parciales resultantes. Dado el siguiente bloque de instrucciones en MATLAB:%inicio de bloque%DESCOMPOSICIÓN EN FRACCIONES PARCIALESclear allnum=[0 11/6 -7/6 1/5];den=[1 -31/30 1/3 -1/30];[R,P,K]=residue(num,den)%fin de bloque

Analice los resultados y escriba la igualdad de la función racional dada e ingresada a la función residue y compruebe el equivalente de la suma de fracciones parciales resultantes.

ECUACIONES POLINÓMICAS:

Resolución de una Ecuación Polinómica:

La función de MATLAB que halla las n-raices de un polinomio de grado n es roots() donde se requiere ingresar los coeficientes del polinomio, ejecute estas instrucciones en el PROMPT:

>>roots([1 1 -6])>>roots([1 0 0 -1])

Uso de la función solve() de MATLAB para resolver una ecuación. Ejecute las siguientes instrucciones en el PROMPT:

>>solve('x^2+x-6')>>solve('x^2+x-6=0')>>solve('x^2+x-6=1')>>solve('x^3-1=0')

Resolución de varias Ecuaciones Polinómicas:

Hallar la intersección de la circunferencia x2+y2=1 y la recta x+y=1En el PROMPT, ejecutamos:

Ing. Teddy Negrete Página 41

>>solve('x^2+y^2=1','x+y=1')

Note que no se muestran resultados, sino 2 vectores:

x: [2x1 sym] y: [2x1 sym]

esto se debe que el resultado se presenta en 2 vectores, entonces lo correcto es:

>>[x y]=solve('x^2+y^2=1','x+y=1')

Interprete correctamente los resultados, ya que son 2 puntos y en cada vector se expresan los resultados de cada variable.

SISTEMAS DE ECUACIONES LINEALES (SEL):

Resuelva analíticamente el SEL:

Verifiquemos los resultados con MATLAB:

En el PROMPT, escriba:

>>[x y]=solve('2*x+3*y-7','3*x+2*y-8')

En un SCRIPT, escriba:

%inicio de bloqueclear alls=solve('2*x+3*y-7','3*x+2*y-8','x','y')x1=s.xy1=s.y%fin de bloque

Resuelva analíticamente el SEL:

Verifiquemos los resultados con MATLAB:

En el PROMPT, escriba:

>>[x y z]=solve('x-y+z','x+y-z-1','x-y-z-1')

Ing. Teddy Negrete Página 42

En un SCRIPT, escriba:

%inicio de bloqueclear alls=solve('1*x-1*y+1*z=0','1*x+1*y-1*z=1','1*x-1*y-1*z=1','x','y','z')x1=s.xy1=s.yz1=s.z%fin de bloque

Analice ambas resoluciones, obtenga conclusiones sobre el formato, note la redundancia del coeficiente 1 en las ecuaciones, y la indiferencia de igualar a cero y obviar esta igualdad a cero, en ambos formatos.

GRAFICOS BÁSICOS DE FUNCIONES DE UNA VARIABLE:

Realice el gráfico de la función

Dominio definido

%inicio de bloque%GRAFICACIÓN DE FUNCIONES%clcclear allx=-10:0.1:10y=x.^2figure(1)plot(x,y),grid%fin de bloque

Realice el gráfico de la función

Note que la función está indefinida cuando x=0

Dominio con un valor indefinido en el intervalo

%inicio de bloque% GRÁFICA Y = X + 24/X% GRAFICA DE UNA FUNCIÓN QUE NO EXISTE EN X=0% NO HAY NINGÚN PROBLEMA%clcclear allx=-2:0.1:2y=x+24*x.^(-1)plot(x,y)

Ing. Teddy Negrete Página 43

grid%fin de bloque

%inicio de bloque % GRÁFICA Y = X + 24/X% AUNQUE NO HACE FALTA, SE HA EXCLUÍDO DEL DOMINIO EL VALOR X=0% Y SE HA DIVIDIDO EL DOMINIO DE X%clcclear allx=0.1:0.1:20y1=x+24*x.^(-1)plot(x,y1)hold onx2=-20:0.1:-0.1y2=x2+24*x2.^(-1)plot(x2,y2)gridhold off%fin de bloque

%inicio de bloque% GRÁFICA Y = X + 24/X, FORMA RÁPIDAezplot('x+24/x',[-20 20])%fin de bloque

Gráficos de dos curvas:

%inicio de bloque%GRAFICOS DE 2 CURVAS%USO DE LA FUNCION PLOTclear allx=-10:0.1:10y1=x.*(2-x)plot(x,y1)holdy2=(x-3).*(x+1)plot(x,y2)gridhold off%fin de bloque

Comparemos estos resultados con un gráfico elaborado en un software de aplicación muy utilizado llamado GRAPHMATICA. En este programa solo debemos indicar cuales son las funciones a graficar.

Ing. Teddy Negrete Página 44

%inicio de bloque%GRAFICOS DE 2 CURVAS%USO DE LA FUNCION EZPLOTclose allclear allsyms x A = 9-x^2B = 2*x^2a = ezplot('(9-x^2)')hold onb = ezplot('(2*x^2)')hold off%fin de bloque

Gráficos de funciones IMPLÍCITAS:

%inicio de bloque%Una funcion implicita%close allclear allezplot('(x^2+y^2-1)')grid%fin de bloque %inicio de bloque%Una funcion implicita%clear allezplot('(x^2+y^2-4)')holdezplot('(x^2-y^2-1)')gridhold off%fin de bloque

Gráficos con dominio o conjunto de llegada definidos en intervalos:

%inicio de bloqueclear allezplot('x^2+y^2-1',[-2,2,0,2])%fin de bloque %inicio de bloqueclear allezplot('x^2-x+3', [-5 10])%fin de bloque

Ing. Teddy Negrete Página 45

15. TRIGONOMETRÍA

Ejecute en el PROMPT las siguientes instrucciones:

>>sin(pi/4)>>sinh(1/4)>>sind(45)>>atan(1)>>atand(1)>>atanh(1/2)

Identifique cada una de las funciones utilizadas en el ejemplo anterior.

Para la simplificación de las expresiones trigonométricas utilizamos en MATLAB las funcines simple() o la función simplify() las mismas que se aplican sobre variables simbólicas.

%SIMPLIFICACIÓN TRIGONOMÉTRICA

%inicio de bloquesyms A B CB=(sin(A))^2+(cos(A))^2+(tan(A))^2C=simplify(B)pretty(C)%fin de bloque

%inicio de bloqueN=(sin(120*pi/180))^2-3*(cos(210*pi/180))^2D=5*(tan(315*pi/180))^2+cot(135*pi/180)R=N/Dformat rat Rformat short%fin de bloque

%inicio de bloque syms x a ba=((cos(x))^2-(sin(x))^2)/(cos(3*x)-sin(x))b=simplify(a)pretty(b)%fin de bloque %inicio de bloquesyms x a ba=((cos(x))^2-(sin(x))^2)/(cos(3*x)+cos(x))b=simplify(a)pretty(b)%fin de bloque

Ing. Teddy Negrete Página 46

%inicio de bloquesyms x a ba=((cos(x))^2-(sin(x))^2)/(cos(3*x)+2*(cos(x))^3)b=simplify(a)pretty(b)%fin de bloque %inicio de bloquesyms x a ba=(sin(x)+sin(3*x))/(cos(x)+cos(3*x))b=simplify(a)pretty(b)%fin de bloque %inicio de bloquef=inline('((cos(x))^2-(sin(x))^2)/(cos(3*x)-sin(x))')fa=inline('2*csc(x)')fb=inline('2*sin(x)')fc=inline('2*cos(x)')fd=inline('2*cot(x)')fe=inline('2*sec(x)')x=pi/3f(x)fa(x),fb(x),fc(x),fd(x),fe(x)%fin de bloque

%GRÁFICOS DE LAS FUNCIONES TRIGONOMÉTRICAS

%inicio de bloqueclcclear allsubplot(2,3,1)ezplot('sin(x)')subplot(2,3,2)ezplot('cos(x)')subplot(2,3,3)ezplot('tan(x)')subplot(2,3,4)ezplot('cot(x)')subplot(2,3,5)ezplot('sec(x)')subplot(2,3,6)ezplot('csc(x)')%fin de bloque

%inicio de bloqueezplot('atan(x)')%fin de bloque

16. ALGEBRA LINEAL

Ing. Teddy Negrete Página 47

%OPERACIONES CON MATRICES

%inicio de bloqueclcA=[1 2;3 4]B=inv(A)C=A*B%fin de bloque

%inicio de bloqueclcclear allA=[1 2;3 4]B=A'%fin de bloque

%inicio de bloqueclear allA=rand(3)B=rand(3)C=A*B%fin de bloque %inicio de bloqueclear allA=rand(1000)B=rand(1000)C=A*B%fin de bloque Ejecute esta en la "LÍNEA DE COMANDOS":

>>det([-1 2 0 1;0 -1 0 1;-3 2 0 0;1 1 2 1])>>det([1 -2 3 4 5;0 -1 0 2 0;0 0 1 1 0;-1 0 0 0 2;3 0 -2 0 0])>>A=[1 0 1 2 -1;2 1 2 0 0;3 -1 1 1 1;4 0 0 0 -1;5 0 0 1 0], det(A) Analice y comente los resultados obtenidos. %POTENCIA DE MATRICES %inicio de bloqueclear allA=[1 0 0;2 -1 0;0 0 -2]B=A^2C=A^3%fin de bloque

%inicio de bloqueclear all

Ing. Teddy Negrete Página 48

A=[1 2;-1 0]B=3*A^2C=-2*AD=[1 0;0 1]E=B+C+D%fin de bloque

Evaluación polinómica de matrices: FUNCIÓN poly val m

%Evaluación de un polinomio, utilizando una matriz

%inicio de bloqueA=[1 2;-1 0]p=[3 -2 1]b=polyvalm(p,A)c=polyval(p,2)syms xd=polyval(p,'x')fp=inline('3*x^2-2*x+1')fp(2)%fin de bloque %inicio de bloqueclear allA=rand(5)p=[3 0 0 -2 1]b=polyvalm(p,A)%fin de bloque

Resolución de un SEL: Sistema de Ecuaciones Lineales

%RESOLUCIÓN DE SEL 2X2

%inicio de bloques=solve('2*x+3*y-8','-1*x-4*y-14','x','y')x1=s.xy1=s.y%fin de bloque

%RESOLUCIÓN DE SEL con COEFICIENTES COMPLEJOS:

%inicio de bloques=solve('2*i*x+3*i*y-7+2*i','3*x+2*y-8*i','x','y')x1=s.xy1=s.y%fin de bloque

%RESOLUCIÓN DE SEL 3X3

Ing. Teddy Negrete Página 49

%inicio de bloques=solve('1*x+4*y+5*z-11','3*x-2*y+1*z-5','4*x+1*y-3*z+26','x','y','z')x1=s.xy1=s.yz1=s.z%fin de bloque %inicio de bloques=solve('-4*x-3*y-1*z-19','2*x-3*y+2*z+26','-3*x-4*y-5*z-32','x','y','z')x1=s.xy1=s.yz1=s.z%fin de bloque

MATRICES ESPECIALES EN MATLAB.

Ejecute en la "Línea de comandos" las siguientes instrucciones:

>>ones(2,3)>>zeros(4,5)>>eye(2,3) >>eye(3,2)>>rand(2,3)>>magic(5)>>diag([1 2 3])>>tril([1 2 3;4 5 6;7 8 9]) %lower triangular>>triu([1 2 3;4 5 6;7 8 9]) %upper triangular>>[1 2 3;4 5 6;7 8 9],rot90([1 2 3;4 5 6;7 8 9])

Comente y registre los resultados obtenidos en la ejecución anterior.Memorice estas funciones de MATLAB, para aplicarlas en futuros ejercicios.

Ejecute en la "Línea de Comandos" las siguientes instrucciones:

>>eig([0 2;3 5])>>A=fix(10*rand(2)),eig(A)

Recordemos la ecuación polinómica característica en donde los valores λ se conocen como EIGENVALORES.

%inicio de bloquesyms xp=det([0 2;3 5]-x*[1 0;0 1])solve(p)%fin de bloque

Ing. Teddy Negrete Página 50

UNIVERSIDAD POLITÉCNICA SALESIANA FACULTAD DE INGENIERÍAS ALGEBRA LINEAL

EXAMEN DEL PARCIAL DICIEMBRE 2009

Alumno : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Paralelo # _ _ _ _ _ _ _ _ _ _ _

Firma : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Cédula # _ _ _ _ _ _ _ _ _ _ _ _

TEMA #1 (4 Puntos)

Dados los vectores resuelva los siguientes literales.

V1 = 7i - 5j

V2 = -2i + 7j a) Grafique los vectores en el espacio y obtenga su magnitud.

b) Determine la dirección de cada vector.

c) Determine el ángulo entre los vectores aplicando producto punto.

d) Determine la proyección escalar y vectorial de (V1+2V2) en la dirección de -3V2 .

Tema #2 (4 Puntos) Dado el sistema de ecuaciones lineales no homogéneo adjunto: 10X1-4X2+2X3=48 2X1+5X2-2X3=-14 3X1-12X2+9X3=78

a) Exprese en forma matricial el sistema AX=B

b) Obtenga el determinante de A c) Obtenga la matriz aumentada BA

d) Resuelva el sistema aplicando el método de eliminación Gaussiana.

TEMA #3 (4 Puntos)

Dadas las matrices:

A=

711

25 B=

84

173

Obtenga: a) (A-B)2 b) A2 y B2

Ing. Teddy Negrete Página 51

TEMA #4 (4 Puntos)

Dada la matriz

A=

216

532

453

Obtenga:

a) El determinante de A. b) La matriz de los cofactores o matriz adjunta. c) Obtenga la inversa de A (A-1). d) Realice la comprobación (A)(A-1)= I.

TEMA #5 (4 Puntos) Dados los vectores:

V1(-11,20) V2(13,-17) V3(5,8) Obtenga:

a) Los escalares h y k tales que hV1+kV2=V3

b) Los escalares h y k tales que V2=hV3-kV1

%EXAMEN PARCIAL 09_02 ÁLGEBRA LINEAL

%inicio de bloque%Tema_2det([10 -4 2;2 5 -2;3 -12 9])%fin de bloque %inicio de bloque%Tema_3([5 -2;11 7]-[3 17;4 -8])^2[5 -2;11 7]^2[3 17;4 -8]^3%fin de bloque %inicio de bloque%Tema_4det([-3 -5 4;2 -3 -5;1 -1 2])%fin de bloque

Ing. Teddy Negrete Página 52

17. CÁLCULO DIFERENCIAL

%GRAFICOS DE FUNCIONES

%inicio de bloqueclear allx=-5:.1:0y1=x+2plot(x,y1)hold onx=0:.1:3y2=x.^3-1plot(x,y2)hold onx=3:.1:5y3=1-heaviside(x+3)plot(x,y3)grid%fin de bloque %inicio de bloque% GRÁFICA Y = X + 24/X% GRAFICO SIMPLIFICADO, EN INTERVALO DE DOMINIO PARA X% GRAFICA DE UNA FUNCIÓN QUE NO EXISTE EN X=0% NO HAY NINGÚN PROBLEMA%%ezplot('x+24/x',[-20,20])grid%fin de bloque %inicio de bloqueclear allx=-20:0.5:20y=x+24./xplot(x,y)grid%fin de bloque %inicio de bloque%GRAFICA Y=sen(X)/X%LA FUNCIÓN NO SE DETERMINA PARA X=0%ezplot('sin(x)/x',[-15,15])grid%fin de bloque

%inicio de bloqueclear allx=-15:0.5:15

Ing. Teddy Negrete Página 53

y=sin(x)./(x)plot(x,y)grid%fin de bloque %inicio de bloqueclear allx=-15:0.5:15y=sin(x+eps)./(x+eps)plot(x,y)grid%fin de bloque %FUNCIONES ESPECIALES DE UNA VARIABLE

Ejecute en la "Línea de Comandos" las siguientes instrucciones:

>>ezplot('heaviside(x)',[-1 1 -0.5 1.5])>>ezplot('abs(x)')>>ezplot('sign(x)',[-1 1 -1.5 1.5])

Comente y registre los resultados obtenidos en la ejecución anterior.

%LÍMITES DE UNA FUNCIÓN Ejecute en la "Línea de Comandos" las siguientes instrucciones:

>>syms x,limit('sin(x)',x,0)>>limit('(x-1)/(x^2-1)',x,1)>>limit('tan(3*x)/x',x,0) Comente y registre los resultados obtenidos en la ejecución anterior.

%DERIVACIÓN DE FUNCIONES DE UNA VARIABLE

Ejecute en la "Línea de Comandos" las siguientes instrucciones:

>>diff(sin(x))>>syms a, diff(sin(a*x),x)>>syms x, diff(sin(a*x),a)>>diff(x^3,2)>>diff(log(x),3) Comente y registre los resultados obtenidos en la ejecución anterior.

%inicio de bloqueclear allsyms a xy=a^3*exp(x)-a^2*sin(x);y_prima=diff(y) %Obtiene la derivada de una funcion y

Ing. Teddy Negrete Página 54

y3_prima=diff(y,3) %Deriva y TRES veces con respecto a xy_prima_a=diff(y,a)y2_prima_a=diff(y,a,2)%fin de bloque %GRÁFICO DE FUNCIÓN TRIGONOMETRICA

%inicio de bloqueclear allx=(-6*pi:6*pi)y=sin(x/3)figure(4)plot(x,y)gridtitle('La onda seno, y=sin(x/3)')%fin de bloque

%La DERIVADA de un POLINOMIO

%inicio de bloque%El polinomio es: x^4+x^2+1polyder([1 0 1 0 1])%fin de bloque

%inicio de bloquep=polyder([1 0 1 0 1])polyval(p,1)%fin de bloque

%EXAMEN PARCIAL 09_01 CÁLCULO DIFERENCIAL

%Analice tema por tema de este EXAMEN PARCIAL:%Si es posible desarrolle los gráficos usando matlab, %Determine graficamente los puntos y las características que piden los temas.

%El los temas de límites%Utilicre MATLAB para calculas los valores.%En los límites unilaterales utilice:

>> syms x, limit(heaviside(x),x,0,'right')>> syms x, limit(heaviside(x),x,0,'left')

Ing. Teddy Negrete Página 55

UNIVERSIDAD POLITÉCNICA SALESIANA. ÁREA DE CIENCI AS EXACTAS CÁLCULO DIFERENCIAL

EXAMEN PARCIAL ATRASADO 04/ AGOSTO/ 2009

Alumno : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Paralelo # _ _ _ _ _ _ _

1. [5 Puntos] Dada la ecuación 4y2 – 9 x2 + 54x + 16y – 29 = 0, determinar:

a) Ecuación ordinaria. b) Nombre completo de la cónica. c) Parámetros de la cónica. d) Ecuaciones de las asíntotas. e) Bosquejo del gráfico.

2. [4 Puntos] Dada la inecuación, determine y grafique el conjunto solución:

a)  ,   3x

2x4

33x

Rx

b)          ,    x1x2Rx

3. [2 Puntos] Sea f: RR cuya regla es

xsenx

xx2xf

),    (. 

) ,   cos(  )( , determinar:

a) El bosquejo gráfico. b) Los intervalos de monotonía.

4. [5 Puntos] Sea f: RR y dado su gráfico, determinar:

a) Rg f

b) Intervalos donde f es estrictamente creciente

c)

)()()()(

) (2f34f4f0f2

3f

5. [4 Puntos] Determine los siguientes límites:

a) 1x

1x3

9

1x

  lim

b) ) () (

  limx3senx2sen

x

Ing. Teddy Negrete Página 56

18. CÁLCULO INTEGRAL

%DESCOMPOSICIÓN EN FRACIONES PARCIALES

%inicio de bloquesyms x yy=simplify(1/x^2+3/x-4/(x-1))pretty(y)%fin de bloque %inicio de bloquesyms x yy=simplify((x^4-x)/(x*(x^2-4)))pretty(y)%fin de bloque %inicio de bloquenum=[3 -1]den=[1 1 -6][a b c]=residue(num,den)%fin de bloque

%inicio de bloquenum=[1 0 0 -1 0]den=[1 0 -4 0][a b c]=residue(num,den)[n d]=residue(a,b,c)%fin de bloque

%inicio de bloquesyms x yy=simplify(x+1.75/(x-2)+2.25/(x+2))pretty(y)%fin de bloque %inicio de bloquesyms x yy=simplify((-4/15)/(x+3)+(1/10)/(x-2)+(1/6)/x)pretty(y)%fin de bloque

Ejecute en el PROMPT las siguientes instrucciones:

>>[a b c]=residue([-1 1],[-1 -1 6 0])>>[a b c]=residue([1 1],[1 0 1 0])>>[a b c]=residue([4 -3 23 -11 32],[1 0 8 0 16 0])

Comente y registre los resultados obtenidos en la ejecución anterior.

%inicio de bloquesyms x y z

Ing. Teddy Negrete Página 57

y=(1/x)+simplify((-1/2-1/2i)/(x-i)+(-1/2+1/2i)/(x+i))pretty(y)z=simplify(y)pretty(z)%fin de bloque %inicio de bloque[a b c]=residue([1 0 0 1],[1 0 4 0 4 0])syms x yy=simplify(2/x+(2*x-3)/(x^2+4)+(-x+1)/(x^2+4)^2)pretty(y)%fin de bloque %INTEGRACIÓN DE FUNCIONES DE UNA VARIABLE

Ejecute en el PROMPT las siguientes instrucciones: >>int('cos(x)')>>int('x^2+x-2')>>int('sec(x)')>>int('sqrt(sec(x))')>>int('cos(a*x)',x)>>syms x,int('cos(a*x)',x)>>syms a,int('cos(a*x)',a)

Comente y registre los resultados obtenidos en la ejecución anterior.

%INTEGRACIÓN INDEFINIDA

%inicio de bloqueclear allsyms x y1 y2y1=int(-1*(exp(x))*cos(2*x))y2=int(-1*(exp(x))*sin(2*x))pretty(y1)pretty(y2)%fin de bloque

%La INTEGRAL de un POLINOMIO

%inicio de bloque%El polinomio es: x^5+1polyint([1 0 0 0 0 1])%La integral es el polinomio: x^6/6+x%En formato vectorial: [1/6 0 0 0 0 1 0]%fin de bloque

%INTEGRAL DEFINIDA

Ejecute en el PROMPT las siguientes instrucciones:

Ing. Teddy Negrete Página 58

>>syms x >>int(cos(x),0,pi/4)>>int(x,1,2)>>int((1+x^2)^(-1),0,+inf)>>int(1/sqrt(1-x^2),0,1)

Comente y registre los resultados obtenidos en la ejecución anterior.

%inicio de bloquesyms xf=x^2+x+2A=int(f,0,1)%fin de bloque

%inicio de bloqueclear allsyms x s m nf1=sin(x);f2=sin(s+2*x);integral_1=int(f1)integral_2=int(f2)integral_3=int(f2,s) %integra respecto a sint_definida1=int(f1,pi/2,pi)%fin de bloque %GRÁFICO EN COORDENADAS POLARES

%inicio de bloquetheta=linspace(0,2*pi)rho=2*sin(4*theta);figure(5)polar(theta,rho)title('Rosa de 8 petalos 2*sin(4*theta)')%fin de bloque %inicio de bloqueclear allt=linspace(0,2*pi)r=4*cos(t)polar(t,r)title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE POLAR')%fin de bloque

%inicio de bloqueclear allt=linspace(0,2*pi)r=-4*cos(t)polar(t,r)title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE PI')

Ing. Teddy Negrete Página 59

%fin de bloque

%inicio de bloqueclear allt=linspace(0,2*pi)r=4*sin(t)polar(t,r)title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE PI')%fin de bloque %inicio de bloqueclear allt=linspace(0,2*pi)r=-4*sin(t)polar(t,r)title('CIRCUNFERENCIA, QUE PASA POR EL POLO,CON CENTRO EN EL EJE PI')%fin de bloque %inicio de bloqueclear allt=linspace(0,2*pi)r1=4*cos(t)polar(t,r1)hold onr2=-4*cos(t)polar(t,r2)hold onr3=4*sin(t)polar(t,r3)hold onr4=-4*sin(t)polar(t,r4)hold off%fin de bloque %inicio de bloqueclear allt=0:0.1:2*pir1=2*sec(t)polar(t,r1)%fin de bloque %inicio de bloqueclear allt=0:0.1:2*pir1=1+cos(t)polar(t,r1)title('LIMAZON CARDIOIDE')%fin de bloque %inicio de bloque

Ing. Teddy Negrete Página 60

ezpolar('4*cos(t)')%fin de bloque %inicio de bloquet=linspace(0,2*pi)r=4*cos(t)figure(2)polar(t,r)title('CIRCUNFERENCIA POLAR')%fin de bloque %inicio de bloquesyms x, V=int((2*pi*(10-x)*(x+9-x^2+3)),-3,4)%fin de bloque

%METODOS DE INTEGRACIÓN NUMÉRICA

Hallar la integral utilice el Método de Simpson con una aproximación de 1e(-6).

Resuelva con el método analítico, aplicando la fórmula:

Compruebe estos resultados con los obtenidos utilizando MATLAB:

%inicio de bloque%METODO DE SIMPSON CON ERROR DE 1e(-6)quad('sqrt(sec(x))',0,pi/4)%fin de bloque

%inicio de bloque%METODO DE CUADRATURA DE LOBATO CON ERROR DE "tol"tol=1e-6quadl('sqrt(sec(x))',0,pi/4,tol)%fin de bloque

%inicio de bloque%METODO DE CUADRATURA DE LOBATO CON ERROR DE "tol"tol=1e-16q=quadl('sqrt(sec(x))',0,pi/4,tol)vpa(q,16) %respuesta con 16 digitos de precision%fin de bloque

Ing. Teddy Negrete Página 61

UNIVERSIDAD POLITÉCNICA SALESIANA. ÁREA DE CIENCI AS EXACTAS

CÁLCULO INTEGRAL EXAMEN FINAL

26/ ENERO/ 2010

Alumno : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Paralelo # 01i DI URNO

1. [4 Puntos] Hallar el área encerrada por y=x2; xy=1; y=2.

2. [4 Puntos] Calcule el volumen del Sólido de Revolución formado al rotar la región encerrada por x=y2; x=y, alrededor del eje x=2.

3. [4 Puntos] Determine la longitud del arco de 2cos

,4 42

x tt

y sent

4. [4 Puntos] Grafique las siguientes curvas polares:

a) r=6cosθ

b) r=3–senθ

5. [4 Puntos.] Determine y grafique los puntos de intersección de las curvas polares r=3sen2θ y r2=–9sen2θ.

%EXAMEN PARCIAL 09_02 CÁLCULO INTEGRAL

%inicio de bloqueezpolar('3*sin(2*t)'), hold onezpolar('(9*sin(2*t))^(1/2)'), hold off%fin de bloque

19. CÁLCULO VECTORIAL

Recordemos los límites de funciones de 2 ó 3 variables:

Ing. Teddy Negrete Página 62

%LÍMITES DE FUNCIONES DE UNA O MAS VARIABLES

Ejecute en el PROMPT las siguientes instrucciones:

>>syms x y >>limit(limit(x+y,x,1),y,2)>>limit(limit(cos(x*y),pi/4),y,pi/3)>>limit(limit((x^2-y^2)/(x-y),1),1)>>limit(limit((x^2-2*y^2)/(x-y),1),1)>>limit(limit(limit(x+y+z,x,1),y,2),3)>>syms z,limit(limit(limit(x+y+z,x,1),y,2),3)

Comente y registre los resultados obtenidos en la ejecución anterior.

Recordemos las derivadas de funciones de 2 ó 3 variables:

%DERIVACIÓN DE FUNCIONES DE UNA O MAS VARIABLES

Ejecute en el PROMPT las siguientes instrucciones:

>>syms x y z>>diff(diff(2*x*y/(x-y),x),y)>>diff(diff(exp(-x*y)+cos(x*y),y,2),x)>>diff(3*y-2*x^3,x,2)>>diff(diff(x*y/z^2,z),x)

Comente y registre los resultados obtenidos en la ejecución anterior.

%inicio de bloquesyms x yz=diff(diff(2*x*y/(x-y),x),y)pretty(simplify(z))%fin de bloque

%inicio de bloqueclear allsyms a xy=a^3*exp(x)-a^2*sin(x);y_prima=diff(y) %Obtiene la derivada de una funcion y

Ing. Teddy Negrete Página 63

y3_prima=diff(y,3) %Deriva y TRES veces con respecto a xya_prima=diff(y,a) %Deriva y respecto a la variable aya3_prima=diff(y,a,3) %Deriva TRES veces y con respecto a a%fin de bloque %inicio de bloqueclear allsyms x y zf=z*x^2+y*x+2A=int(f,y,z)%fin de bloque %inicio de bloqueclear allsyms x y zf=sin(x)A=int(f,y,z)%fin de bloque %inicio de bloqueclear allsyms x y zf=sin((x^2)*y)A=int(f,y,x,z)%fin de bloque %inicio de bloqueclear allsyms x y zf=x+y+zA=int(int(int(f,z,0,1),y,0,1),x,0,1)%fin de bloque %inicio de bloqueclear allsyms x y zf=1A=int(int(int(f,z,-sqrt(9-x^2-y^2),sqrt(9-x^2-y^2)),y,-sqrt(9-x^2),sqrt(9-x^2)),x,-3,3)%fin de bloque %inicio de bloqueclear allsyms r t a ba=(r^3)*int((sec(t))^3,t,pi/4,atan(3/r))b=simplify(a), pretty(b)%fin de bloque %inicio de bloque

Ing. Teddy Negrete Página 64

clear allsyms r z b c c=2*pi*int(int(r*sqrt(r^2+z^2),z,r,3),r,0,3)b=simplify(c), pretty(b)%fin de bloque %inicio de bloqueclear allsyms r z b c c=2*pi*int(int(r*sqrt(r^2+z^2),r,0,z),z,0,3)b=simplify(c), pretty(b)%fin de bloque

%SUPERFICIE EN SISTEMA RECTANGULAR

Recordemos algunas superficies cuádricas y cilíndricas estudiadas:

Utilicemos SUPERFICIES, para obtener el lugar geométrico de las ecuaciones:

Cilíndro Paraboloide Elipsoide

Ejecute en el PROMPT las siguientes instrucciones:

>>syms x y >>cylinder>>cylinder(3)>>ezsurf('x^2+y^2')>>ezsurf('x^2+y^2',[-3 3 -3 3])>>ellipsoid(0,0,0,1,1/sqrt(2),1,20)>>ellipsoid(0,0,0,1,1/sqrt(2),1,30)>>ellipsoid(0,0,0,1,1/sqrt(2),1,10)

Ing. Teddy Negrete Página 65

>>sphere>>sphere(20)

Comente y registre los resultados obtenidos en la ejecución anterior.

Superficie CILÍNDRICA en Z, apartir de Curva PARAMETRIZADA:

%inicio de bloque%Cilindro elípticot=(0:0.1:2*pi)'h=-2:0.1:2x=2*cos(t)*ones(size(h))y=3*sin(t)*ones(size(h))z=ones(1,size(t))'*hsurf(x,y,z)%fin de bloque

Superficies de FUNCIÓN EXPLÍCITA:

%inicio de bloqueclcclose allx=-7.5:0.5:7.5; y=x;[X,Y]=meshgrid(x,y) %El agregar eps elimina la división por cero cuando x=y=0. R=sqrt(X.^2+Y.^2)+eps %La matriz R contiene el radio de cada punto en [X,Y].Z=sin(R)./R; %La matriz Z contiene el seno del radio dividido por el radio para cada %punto del plano. Con el comando mesh se genera la gráfica.figure(16)surf(X,Y,Z) %Grafica de superficieholdtitle('Superfice de la ecuación z=[sen(x^2+y^2)]/(x^2+y^2)')%fin de bloque

%inicio de bloqueclose allx=-1:0.1:1;y=x;[X,Y]=meshgrid(x,y)Z=4-X.^2-Y.^2figure(17)surf(X,Y,Z)holdZ=X.^2+Y.^2-4surf(X,Y,Z)

Ing. Teddy Negrete Página 66

%fin de bloque

%inicio de bloqueh=@(x,y)x.*y - x; ezsurf(h) ezsurf(@peaks)%fin de bloque %inicio de bloqueclear allf=@(x,y)(x^2+y^2)ezsurf(f)%fin de bloque %inicio de bloqueclose allezsurf('x^2+y^2') %fin de bloque %inicio de bloqueezsurf('y^2+y+2') %fin de bloque %inicio de bloqueezsurf('sqrt(x^2+y^2)') %fin de bloque %inicio de bloqueezsurf('x*y-x')%fin de bloque

%inicio de bloque%Superficie de la parte Real de un Función de Variable Complejaezsurf('real(atan(x+i*y))')%fin de bloque %inicio de bloque%Superficie Cílindrica Inclinadaezsurf('x^2-y')%fin de bloque %inicio de bloque

Ing. Teddy Negrete Página 67

%Superficie Cilíndrica PARALELA AL EJE Yezsurf('x^2')%fin de bloque %inicio de bloqueezsurf('x^2+y^2-z^2') %¿Por qué se produce un error?%fin de bloque %inicio de bloqueezsurf('6-3*x-2*y') %fin de bloque %Usando Función Potencia %inicio de bloqueezsurf('(x^2+y^2-1)^(1/2)',[-10,10],[-10,10])hold onezsurf('-(x^2+y^2-1)^(1/2)',[-10,10,-10,10])hold off%fin de bloque %Usando Función Raíz Cuadrada SQRT %inicio de bloqueezsurf('sqrt(x^2+y^2-1)',[-10,10],[-10,10])hold onezsurf('-sqrt(x^2+y^2-1)',[-10,10,-10,10])hold off%fin de bloque

%inicio de bloqueezsurf('4-(x^2+y^2)')hold onezsurf('x^2+y^2')hold off%fin de bloque

GRAFICOS DE CURVAS PARAMETRIZADAS ES EL ESPACIO:

Ejecute en el PROMPT las siguientes instrucciones:

>>ezplot3('t-1','2-3*t','1')>>ezplot3('t','t^3-t^2+2','t+1')>>ezplot3('3*cos(t)','3*sin(t)','2*t')

Ing. Teddy Negrete Página 68

>>ezplot3('3*cos(t)','3*sin(t)','2*t',[0,5*pi])

Comente y registre los resultados obtenidos en la ejecución anterior.

CURVAS DE NIVEL

%inicio de bloque[x y]=meshgrid(-1:0.1:1,-1:0.1:1)z=x.^2+y.^2contour(z)%fin de bloque

ECUACIÓN DE LAPLACE:

Dada la función comprobar que satisface la EDP %inicio de bloqueclear allsyms x y z uz=(x^2-y^2)/(x^2+y^2)^2zx2=diff(z,x,2)zy2=diff(z,y,2)u=zx2+zy2%simplify(u) %simplifica la expresión%pretty(zx2) %mejora la presentación de la expresión algebraicapretty(zy2) %mejora la presentación de la expresión algebraica%fin de bloque

Ing. Teddy Negrete Página 69

UNIVERSIDAD POLITÉCNICA SALESIANA. ÁREA DE CIENCIAS EXACTAS

CÁLCULO VECTORIAL EXAMEN PARCIAL DIURNO

_ _ _ / J ULIO/ 2009

Alumno : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Paralelo # _ _ _ _ _

1. [4 Puntos.] Dar el nombre y bosquejar el gráfico de:

a) x2 – y2 + z2 + 1= 0

b) x2 – z2 + y – 2 = 0

c) x + y + z = 5

d) x2 + y2 + z2 = 1

2. [4 Puntos.] Determinar en t=2: k, aT, si 2 3( ) , , ( 1)r t t t t ssssssssssssss

.

3. [4 Puntos.] Calcular los límites, si existen:

a) 22

44

)1,0(),( )1()1(

lim

yxyx

yx

b) zy

yzxyzyx sec

secseclim

),1,3/(),,(

4. [4 Puntos.] Dada la ecuación 2 2 2

2 2 2 0,u u u

x y z

verifique si la función

2 2 2 1 / 2( )u x y z satisface esta ecuación.

5. [4 Puntos.] Dada la función 1tan ; ln ; .ty

u x t y ex

Hallar ut sin

realizar la composición de las funciones.

%EXAMEN PARCIAL 2009_01 CÁLCULO VECTORIAL

%Si es posible utilizando las funciones y comandos de MATLAB, elabore los graficos correspondientes:

%Calcule los límites y derivadas planteadas en este examen.

20. ECUACIONES DIFERENCIALES

Ing. Teddy Negrete Página 70

%RESOLUCIÓN DE EDO DE 1º ORDEN %inicio de bloquedsolve('Dy=y/t+(y/t)^(1/2)')%fin de bloque %inicio de bloquedsolve('D2y=exp(2*t)+5*Dy-4*y,y(0)=1,Dy(0)=0')%fin de bloque %inicio de bloquedsolve('D3y=sin(t)+Dy')%fin de bloque %inicio de bloquedsolve('D2y=exp(-t)*cos(3*t)+Dy-2*y')%fin de bloque %inicio de bloquedsolve('D2y=y+exp(2*t)*cos(3*t)')%fin de bloque

%TRANSFORMADA DE LAPLACE %inicio de bloquesyms A s tF=int((exp(-s*t)*(A-t)),t,0,A)+int((exp(-s*t)),t,A,inf)simplify(F)pretty(F)%fin de bloque %inicio de bloquesyms t aa=laplace(exp(-3*t)*t*cos(2*t))b=simplify(a)pretty(b)%fin de bloque

%ANTITRANSFORMADA DE LAPLACE %inicio de bloquesyms s tr=ilaplace(s/((s^2+4)*(s^2+9)))%fin de bloque

%inicio de bloquesyms s tr1=ilaplace(3*s/((s^2+1)*(s^2+9)))

Ing. Teddy Negrete Página 71

r=inline(r1)t=pi/4r(t)while t<pi/3 t=t+pi/(10*12) r(t)end save r.mat r%fin de bloque %LA INTEGRAL CONVOLUCIÓN %inicio de bloque%f(t)=exp(2*t)*heaviside(t)%g(t)=exp(-3*t)*heaviside(t)%Hallar f*g(t)syms t zconvolucion=int(exp(2*(t-z))*exp(-3*z),z,0,t)%fin de bloque

%inicio de bloque%%PROPIEDAD CONMUTATIVA%%f(t)=exp(2*t)*heaviside(t)%g(t)=exp(-3*t)*heaviside(t)%Hallar g*f(t)syms t zconvolucion=int(exp(2*z)*exp(-3*(t-z)),z,0,t)%fin de bloque

%inicio de bloque%f(t)=cos(t)*heaviside(t)%g(t)=sen(t)*heaviside(t)%Hallar f*g(t)syms t zconvolucion_1=int(cos(t-z)*sin(z),z,0,t)%%PROPIEDAD CONMUTATIVA%%Comprobar g*f(t)convolucion_2=int(cos(z)*sin(t-z),z,0,t)%fin de bloque

Ing. Teddy Negrete Página 72

Nota: Todos los temas tienen igual valor TEMA 1. Encuentre la solución de la ecuación diferencial y'''+y''+4y'+4y=0; y(0)=0, y'(0)=-1, y"(0)=5

TEMA 2. Resuelva la ecuación de Cauchy-Euler

3 2x y'''-x y''-2xy'-2y 0

TEMA 3. Resuelva la ecuación diferencial y'''-7y'+6y=2sen(x) . Utilice el Método

de Variación de Parámetros. TEMA 4. Determine:

a) L t-sen

4

b)

1 L 2

1

s+1 s-3

TEMA 5. Resuelva el problema de valor inicial usando el Método de la Transformada de Laplace.

y''-2y'+10y=0; y(0)=3 , y'(0)=3

UNIVERSIDAD POLI TÉCNICA SALESIANA AREA DE CI ENCIAS EXACTAS

EXAMEN FI NAL DE ECUACI ONES DI FERENCI ALES (ELECTRI CA)

Nombre: __________________________________________

Paralelo: _________________ Firma: ______________

Fecha: ____ de febrero del 2010

Ing. Teddy Negrete Página 73

%EXAMEN FINAL 2009_2 ECUACIONES DIFERENCIALES:

%inicio de bloque% %1dsolve('D3y=-4*y-4*Dy-D2y, y(0)=0, Dy(0)=-1, D2y(0)=5')%fin de bloque

%inicio de bloque% %2dsolve('D3y=2*t^(-3)*y+2*t^(-2)*Dy+t*t^(-1)*D2y')dsolve('D3y=4*t^(-3)*y+2*t^(-2)*Dy+t*t^(-1)*D2y')%este resultado es una función de una hipergeometrica%fin de bloque

%inicio de bloque% %3dsolve('D3y=2*sin(t)-6*y+7*Dy')%fin de bloque %inicio de bloque% %4asyms tlaplace(sin(t/4-pi/4))%fin de bloque %inicio de bloque% %4bsyms silaplace(((s+1)^(-2))*((s-3)^(-1)))%fin de bloque %inicio de bloque% %5dsolve('D2y=-10*y+2*Dy, y(0)=3, Dy(0)=3')%fin de bloque

Ing. Teddy Negrete Página 74

21. MATEMATICAS AVANZADAS

%FUNCIÓN PERÍODICA DEFINICIÓN Y GRÁFICOS

%inicio de bloquef=inline('sin(t)')x=0:pi/100:piy=f(x)plot(x,y)%fin de bloque %inicio de bloque%Función Períodica%clcclear allx=-1:.1:1y=x.*(1-x)for n=-3:3 t=x+n*2 plot(t,y) hold onendgrid hold off%fin de bloque %inicio de bloquet=-1:.1:1f=dirac(t)plot(t,f)%fin de bloque %inicio de bloquet=-1:.1:1f=heaviside(t)plot(t,f,'b+','linewidth',4)%fin de bloque %inicio de bloquet=-1:.1:1f=sign(t)plot(t,f,'b+','linewidth',4)%fin de bloque

%inicio de bloquet=-1:.1:1f=rectpuls(t)

Ing. Teddy Negrete Página 75

plot(t,f,'b+','linewidth',4)t=-1:.1:1g=rectpuls(t)%f=int(g,-inf,inf)plot(t,f,'b+','linewidth',4)%fin de bloque %inicio de bloquet=-2*pi:.1:2*pif=sinc(t)plot(t,f,'b+','linewidth',4)%fin de bloque

%LÍMITE, TRANSFORMADA DE LAPLACE, CONVOLUCIÓN, CONVOLUCIÓN DISCRETA %inicio de bloquesyms xL=limit((sin(x))/x,x,0)%fin de bloque %inicio de bloquesyms sf=ilaplace(3*s/((s^2+9)*(s^2+16)))pretty(f)%fin de bloque %inicio de bloquesyms t z fz gzf=2*exp(-t)g=3*exp(2*t)fz=2*exp(-(t-z))gz=3*exp(2*z)fg=int(fz*gz,z,0,t)simplify(fg)pretty(fg)%fin de bloque %inicio de bloque%y=conv(y1,y2)%fin de bloque

%inicio de bloquesyms t z fz gzf=inline('2*exp(-t)')g=inline('3*exp(2*t)')fz=f(t-z)

Ing. Teddy Negrete Página 76

gz=g(z)fg=int(fz*gz,z,0,t)simplify(fg)pretty(fg)%fin de bloque %inicio de bloquesyms t z fz gzf=inline('cos(2*t)')g=inline('(1/3)*sin(3*t)')fz=f(t-z), gz=g(z)fg=int(fz*gz,z,0,t)simplify(fg)pretty(fg)%fin de bloque %TRANSFORMADA DE FOURIER %inicio de bloquesyms t FF=fourier((heaviside(t))*exp(-t))pretty(F)%fin de bloque %inicio de bloquesyms t GG=fourier(-(heaviside(t))*exp(-t))pretty(G)%fin de bloque %inicio de bloquesyms t HH=fourier((heaviside(-t))*exp(t))pretty(H)%fin de bloque %inicio de bloquesyms t JJ=fourier(-(heaviside(-t))*exp(t))pretty(J)%fin de bloque %inicio de bloquesyms t,F=fourier(heaviside(t)),pretty(F)%fin de bloque %inicio de bloquesyms t,F=fourier(dirac(t)),pretty(F)

Ing. Teddy Negrete Página 77

%fin de bloque %inicio de bloquesyms t, F=fourier((sin(t))*heaviside(t)), pretty(F)%fin de bloque %ANTI-TRANSFORMADA DE FOURIER

%inicio de bloquesyms w f, f=ifourier(1/(1+w)),pretty(f)%fin de bloque

%inicio de bloquesyms w f, f=ifourier(1/(1+i*w)),pretty(f)%fin de bloque

%inicio de bloquesyms w f, f=ifourier(1/(-1+i*w)),pretty(f)%fin de bloque

%inicio de bloquesyms w f, f=ifourier(1/(1-i*w)),pretty(f)%fin de bloque

%inicio de bloquesyms w f, f=ifourier(1/(-1-i*w)),pretty(f)%fin de bloque

%inicio de bloquesyms w ff=ifourier(1/(-w^2+1))pretty(f)%fin de bloque

%inicio de bloquesyms w ff=ifourier(1/(2+i*3*w-w^2))pretty(f)%fin de bloque %PARA MEMORIZAR LA FORMULA F[SGN(t)SEN(wot)]=2wo/((j*w)^2+wo^2)

Ing. Teddy Negrete Página 78

%inicio de bloquesyms t ff=fourier((2*heaviside(t)-1)*sin(3*t))pretty(f)%fin de bloque

%PARA MEMORIZAR LA FORMULA F[SGN(t)COS(wot)]=2jw/((jw)^2+wo^2)

%inicio de bloquesyms t ff=fourier((2*heaviside(t)-1)*cos(3*t))pretty(f)%fin de bloque %PARA MEMORIZAR LA FORMULA F[EXP(at)H(t)SEN(wot)]=wo/((jw+a)^2+wo^2)

%USANDO PROPIEDAD DE PRODUCTO POR SENO

%inicio de bloquesyms t ff=fourier(exp(-2*t)*heaviside(t)*sin(3*t))pretty(f)%fin de bloque %PARA MEMORIZAR %LA FORMULA F[EXP(at)H(t)COS(wot)]=(jw+a)/((jw+a)^2+wo^2)

%inicio de bloquesyms t ff=fourier(exp(-2*t)*heaviside(t)*cos(3*t))pretty(f)%fin de bloque %PARA MEMORIZAR %LA FORMULA F[SGN(t)SEN(wot)]=2wo/((j*w)^2+wo^2) CON%DEZPLAZAMIENTO EN LA FRECUENCIA EL VALOR W=j(W-a), ES DECIR QUE %F[EXP(jat)SGN(t)SEN(wot)]=2wo/(jw-ja)^2+wo^2)

%inicio de bloquesyms t ff=fourier(exp(i*2*t)*(2*heaviside(t)-1)*sin(3*t))pretty(f)%fin de bloque

Ing. Teddy Negrete Página 79

%PARA MEMORIZAR %LA FORMULA F[SGN(t)COS(wot)]=2jw/((j*w)^2+wo^2) CON%DEZPLAZAMIENTO EN LA FRECUENCIA EL VALOR W=j(W-a), ES DECIR QUE %F[EXP(jat)SGN(t)COS(wot)]=2(jw-ja)/(jw-ja)^2+wo^2)

%inicio de bloquesyms t ff=fourier(exp(i*2*t)*(2*heaviside(t)-1)*cos(3*t))pretty(f)%fin de bloque %inicio de bloquesyms w ff=ifourier(1/(2+i*3*w-2*w^2))pretty(f)%fin de bloque %PARA MEMORIZAR %LA FORMULA F[SGN(t)SEN(w0t)] CON DESPLAZAMIENTO EN EL%TIEMPO CON FACTOR IMAGINARIO EXP(-jto)

%inicio de bloquesyms t ff=fourier(exp(-4*i*t)*(2*heaviside(t)-1)*sin(3*t))pretty(f)%fin de bloque %SIN EMBARGO LA FORMULA F[SGN(t)SEN(w0t)] CON DESPLAZAMIENTO EN EL%TIEMPO CON FACTOR REAL EXP(-j*jto), NO ES POSIBLE TENER RESPUESTAsyms t ff=fourier(exp(i*i*2*t)*(2*heaviside(t)-1)*sin(3*t))pretty(f)%fin de bloque

%PERO USANDO LA ANTI TRANSFORMADA O TRANSFORMADA INVERSA

%inicio de bloquesyms w ff=ifourier(6/((i*w+2)^2+(3)^2))pretty(f)%fin de bloque %inicio de bloquesyms w f f=ifourier(i*6*w/(w^2+4))pretty(f)

Ing. Teddy Negrete Página 80

%fin de bloque %inicio de bloquesyms t ff=fourier(2*heaviside(-4*t)-1)pretty(f)%fin de bloque %inicio de bloquesyms w ff=ifourier(exp(i*w*2)/(i*w+5))pretty(f)%fin de bloque %inicio de bloquesyms w ff=ifourier(5/(w^2+4))pretty(f)%fin de bloque %inicio de bloquesyms t FF=fourier((1/2)*cos(4*t)*(-1+2*heaviside(t)))pretty(F)%fin de bloque %inicio de bloquesyms w ff=simplify(((i*w-1)*(i*w+1))/((i*w+2)*(i*w-2)*(i*w+3)*(i*w-3)))pretty(f)%fin de bloque

%inicio de bloquesyms t ff=fourier(5*sin(2*t-4))pretty(f)%fin de bloque %inicio de bloquesyms t ff=fourier(5*sin(t-2))pretty(f)%fin de bloque %inicio de bloque

Ing. Teddy Negrete Página 81

syms t ff=fourier(10*exp(4*t)*heaviside(-t)*cos(5*t))pretty(f)%fin de bloque %inicio de bloquesyms t ff=fourier(7*(2*heaviside(1-t)-1))pretty(f)%fin de bloque %inicio de bloquesyms t ff=fourier(exp(-abs(3*t)))pretty(f)%fin de bloque %inicio de bloquesyms w ff=ifourier(exp(i*4*w)*(1/(i*w+1)))pretty(f)%fin de bloque %inicio de bloquesyms w ff=ifourier(exp(i*2*w)*(1/(i*w+4)))pretty(f)%fin de bloque

%inicio de bloquesyms w ff=ifourier(dirac(w)*(1/(i*w+1)))pretty(f)%fin de bloque

%TRANSFORMADA Y ANTITRANSFORMADA Z

%inicio de bloquesyms t x yx=ztrans(2^t)y=simplify(x)pretty(y)%fin de bloque

Ing. Teddy Negrete Página 82

%inicio de bloquesyms t x y zx=iztrans(z/(z-3))y=simplify(x)pretty(y)%fin de bloque %inicio de bloquesyms z f g hf=z*(3/(z+2)^2-2/(z-2)+3/(z+2))g=simplify(f)pretty(g)h=iztrans(g)pretty(h)%fin de bloque %inicio de bloqueclearclcezplot('4*x*(2-x)',[-3,2,-4,5])%fin de bloque

%inicio de bloqueclear allclcx=-1:0.1:3y=4.*x.*(2-x)plot(x,y)%fin de bloque

Ing. Teddy Negrete Página 83

UNIVERSIDAD POLITÉCNICA SALESIANA. ÁREA DE CIENCI AS EXACTAS

MATEMÁTICAS AVANZADAS EXAMEN FINAL

26/ ENERO/ 2010

Alumno : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Paralelo # 01 NOCTURNO

1. [3 Puntos] Hallar F [µ(x)cos22x – 2sgn(x)sen23x].

2. [3 Puntos] Calcule F -1[(w–1)(w+2)–1 + (w2+4)–1].

3. [3 Puntos] Determine Z [µ(t)(2cost + sent – 2t + e4t)].

4. [3 Puntos] Hallar Z -1 [z/ (z–1) + (z–2)–1 + z/ (z2+4)].

5. [4 Puntos.] Halle la solución de la ecuación 2 2

2 24

u ut x

, con:

a) Condición de frontera: (0, ) 0 ( , ) 0 0u t u t t

b) Condición inicial: ( , 0) 3 2 5 ( ,0) 0 0tu x sen x sen x u x x

6. [4 Puntos.] Halle la solución de la ecuación 2

23

u ut x

, con:

a) Condición de frontera: (0, ) 0 ( , ) 0 0u t u t t

b) Condición inicial: ( , 0) 4 2 6 0u x sen x sen x x

Ing. Teddy Negrete Página 84

%EXAMEN FINAL 2009_02 MATEMÁTICAS AVANZADAS:

%inicio de bloquesyms tF=fourier((exp(-3*t))*heaviside(t))%fin de bloque %inicio de bloquesyms t aF=fourier((exp(-a*t))*heaviside(t),t,w)%NO MUESTRA EN FUNCIÓN DE A%fin de bloque %inicio de bloquesyms tfourier(heaviside(t))%fin de bloque %inicio de bloquesyms tF=fourier((2*heaviside(t)-1)*cos(t))pretty(F)%fin de bloque %inicio de bloquesyms wifourier(1/(1+w))%fin de bloque %inicio de bloquesyms wf=ifourier(1/(w^2+4))pretty(f)%fin de bloque %inicio de bloquesyms tF=fourier((1/2)*heaviside(t)-(2*heaviside(t)-1)+(1/2)*(heaviside(t))*cos(4*t)+(2*heaviside(t)-1)*cos(6*t))G=simplify(F)pretty(G)%fin de bloque

%inicio de bloque

Ing. Teddy Negrete Página 85

syms tF=fourier((2*heaviside(t)-1)*cos(6*t))pretty(F)%fin de bloque %inicio de bloquesyms wifourier(3/(2+w))%fin de bloque %inicio de bloquesyms wf=ifourier(1)%fin de bloque %inicio de bloquesyms tF=fourier(dirac(t))%fin de bloque %inicio de bloquesyms wf=ifourier(1-3/(w+2)+1/(w^2+4))pretty(f)%fin de bloque %inicio de bloquesyms zf=iztrans(z/(z^2+4))%fin de bloque

22. MÉTODOS NUMÉRICOS

INTERPOLACIÓN POLINÓMICA

Ing. Teddy Negrete Página 86

Dados K puntos Pi (xi ,yi ), obtener una función polinómica de grado N, que represente con la mejor aproximación la función.

%inicio de bloquex=[1 2 3]y=[1 4 9]polyfit(x,y,2)%fin de bloqueLa solución es: 1 0 0, es decir p(x)=1x2 + 0x + 0

%inicio de bloquex=[1 2 3 4]y=[1 2 7 9]polyfit(x,y,3)%fin de bloqueLa solución es: -1.1667 9.0000 -17.8333 11.0000, es decir

%inicio de bloquex=[1 2 3 4]y=[1 2 7 9]format ratpolyfit(x,y,3)%fin de bloqueLa solución es: -7/6 9 -107/6 11, es decir

MÉTODO DE NEWTON PARA HALLAR LA RAÍZ APROXIMADA

Dada una función f(x) continua y derivable, y 2 valores xa, xb, tal que cumplan con el Teorema del valor Intermedio. Usando el método de Newton, hallar una raíz aproximada con N cifras de precisión.

Hallar una raíz de la función en el intervalo [0, 1].

Use el Método de Newton con una precisión de 3 cifras decimales.Probemos el Teorema del Valor Intermedio.f(0)= 0 - e0 = -1f(1)= 1- e-1 = 0.6321Por lo tanto en el intervalo [0,1], hay una RAÍZ.

Usemos un SCRIPT para encontrar la raíz, y mostremos el resultado.

Ing. Teddy Negrete Página 87

%inicio de bloqueclear allsyms x yy=x-exp(-x)dy=diff(y)f=inline(y)df=inline(dy)x=0N=3E=10^(-1-N)while(abs(f(x))>E)x=x-f(x)/df(x)endxf(x)%fin de bloque

INTEGRACIÓN NUMÉRICA

Dada la función f(x)=x2 , en el intervalo [a=0, b=10], elaborar un SCRIPT para

calcular aproximadamente la integral definida usando el método:1. TRAPECIOS (con N=5 trapecios, n=5)2. SIMPSON (con N=5 parábolas, n=10)

Aplicando el método analítico a esta integral definida, tenemos:

Este es el valor EXACTO de la Integral Definida solicitada.

Recordemos la fórmula de la REGLA DEL TRAPECIO:

Sabemos que este es un valor aproximado, realicemos el algoritmo con MATLAB.

%METODO DE LOS TRAPECIOS

Ing. Teddy Negrete Página 88

%inicio de bloquea=0, b=10n=5h=(b-a)/nx=a:h:by=x.^2s=0for(i=1:n-1)s=s+(a+i*(b-a)/n).^2endresultado=h/2*(a.^2+2*s+b.^2)%fin de bloque

Recordemos la fórmula de la REGLA DE SIMPSON:

Sabemos que este es un valor aproximado, realicemos el algoritmo con MATLAB.

%METODO DE SIMPSON

%inicio de bloquea=0,b=10,n=10,h=(b-a)/nx=a:h:b,y=x.^2s1=0,s2=0for(i=1:n/2) s1=s1+(a+(2*i-1)*(b-a)/n).^2endfor(i=1:n/2-1) s2=s2+(a+2*i*(b-a)/n).^2endresultado=h/3*(a.^2+4*s1+2*s2+b.^2)%fin de bloque

23. ESTADÍSTICA

Ing. Teddy Negrete Página 89

%GRAFICOS UTILIZADOS EN ESTADISTICA DESCRIPTIVA

%inicio de bloqueclear allx=linspace(-10,10,21);y=exp(-x.*x);bar(x,y)title('CURVA DE GAUSS EN BARRAS')%fin de bloque

%inicio de bloqueclear allx=linspace(-10,10,21);y=exp(-x.*x);stairs(x,y,'s')title('CURVA DE GAUSS EN ESCALERAS')%fin de bloque

%inicio de bloqueclear allx=linspace(-5,5,50)y=randn(5000,1)hist(y,x)title('HISTOGRAMA DE LA CAMPANA DE GAUSS')%fin de bloque

%inicio de bloquet=fix(1+10*rand(1,5))pie(t)title('GRAFICO CIRCULAR')%fin de bloque

%ANALISIS DE DATOS EN ESTADISTICA DESCRIPTIVA

%inicio de bloquex=fix(1+20*rand(40,1))display(' media; mediana; moda; desviacion; varianza; covarianza')display(' ')mean(x),median(x),mode(x),std(x),var(x),cov(x)%fin de bloque

24. SEÑALES Y SISTEMAS

%GRÁFICO DE UNA FUNCIÓN DISCRETA

Ing. Teddy Negrete Página 90

%inicio de bloquen=2:15x=ones(1,5)y=ones(1,10)z=conv(x,y)stem(n,z)%fin de bloque

%ANÁLISIS EN FRECUENCIA USANDO LA FFT DE UNA SEÑAL %y(t) contaminada con un ruido

%inicio de bloqueFs = 1000; T = 1/Fs; L = 1000; t = (0:L-1)*T; x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); y = x + 2*randn(size(t))plot(Fs*t(1:50),y(1:50))%fin de bloque %inicio de bloqueNFFT = 2^nextpow2(L)Y = fft(y,NFFT)/Lf = Fs/2*linspace(0,1,NFFT/2+1)plot(f,2*abs(Y(1:NFFT/2+1))) title('Espectro de y(t)')xlabel('Frecuencia (Hz)')ylabel('|Y(f)|')%fin de bloque

%TRANSFORMADA Z

%inicio de bloqueclcclearsyms k tk=2^t+cos(3*t)-3*t^2tz=ztrans(k)%fin de bloque

25. TEORÍA ELECTROMAGNÉTICA

%CONVERSION DE SISTEMAS COORDENADOS

Ejecute en la "LÍNEA DE COMANDOS":

Ing. Teddy Negrete Página 91

>>[x y]=pol2cart(pi/3,1)>>[x y]=pol2cart(-2*pi/3,-2)>>[t r]=cart2pol(2,2)>>pi/4>>2*sqrt(2)>>[t r]=cart2pol(-1,sqrt(3))>>2*pi/3>>[x y z]=sph2cart(0,0,1)>>[x y z]=sph2cart(pi/2,0,1)>>[x y z]=sph2cart(pi/2,pi,1)>>[x y z]=sph2cart(pi/2,pi/2,1)>>[x y z]=sph2cart(3*pi/2,0,1)>>[t,f,r]=cart2sph(0,1,0)>>pi/2>>[t,f,r]=cart2sph(1,0,0)>>[t,f,r]=cart2sph(0,0,1)>>pi/2 Analice y comente los resultados obtenidos.

%GRÁFICOS EN EL PLANO COMPLEJO (FASORES)

%inicio de bloquex=1compass(x)%fin de bloque

%inicio de bloqueclosey=-3*jcompass(y)%fin de bloque

%inicio de bloqueclosez=1+icompass(z)%fin de bloque

%inicio de bloqueclosex=2feather(x)%fin de bloque

Ing. Teddy Negrete Página 92

%inicio de bloqueclosey=-4*jfeather(y)%fin de bloque

%inicio de bloqueclosez=-2-4*ifeather(z)%fin de bloque

%inicio de bloquecloseclcclearcompass(eig(10*rand(5)))%fin de bloque

%inicio de bloquecloseclearclcfeather(eig(10*rand(5)))%fin de bloque

%inicio de bloque%exponente 0 o 1 para dar el signox=fix(2*rand(1,10))y=1:10%valores alternados, positivos o negativosz=(-1).^x.*y%diagrama de barrasbar(z)%fin de bloque

1.4 Control de flujo de instrucciones en MATLAB.

Condicional simple

Condicional múltiple

Repetición condicionada

Repetición automática

Ing. Teddy Negrete Página 93

CONTROL DE FLUJO DE INSTRUCCIONES

Como ya se ha dicho varias veces (incluso con algún ejemplo) MATLAB es una aplicación que se puede programar muy fácilmente. De todas formas, como lenguaje de programación pronto verá que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas…). Se comenzará viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de variables, que son los elementos básicos de cualquier programa de una cierta complejidad.

Bifurcaciones y bucles:

MATLAB posee un lenguaje de programación que (como cualquier otro lenguaje) dispone de sentencias para realizar bifurcaciones y bucles. Las bifurcaciones permiten realizar una u otra operación según se cumpla o no una determinada condición. La Figura No. 1 muestra tres posibles formas de bifurcación.

Figura No.1

26. Elabore otro archivo, con el nombre control_flujo.m, comente las líneas de la estructura, explicando el significado de la ejecución y concluya en forma general por cada bloque:

%FLUJO DE INSTRUCCIONES: ESTRUCTURAS DE CONTROL

%inicio de bloque %CONDICIONAL: SIclear alldisp('¿Es mayor de edad?')x=input('ingrese su edad en número de años: ');if(x>18) disp('SI es mayor de edad') end%fin de bloque

Ing. Teddy Negrete Página 94

%inicio de bloque%CONDICIONAL: SI .. SINOclear allx=input('ingrese un número entero, del 1 al 10: ');if(x>=5) disp('es mayor o igual que 5')else disp('es menor que 5')end%fin de bloque %inicio de bloque%CONDICIONAL: SI ANIDADOclear allx=input('ingrese una hora desde las 7h00 hasta las 22h00: ');if x>=7 & x<12 disp('horario diurno')elseif x>=12 & x<18 disp('horario vespertino')elseif x>=18 & x<=22 disp('horario nocturno')else disp('ingreso mal la hora')end%fin de bloque Bucles o Repeticiones: %LAZO DE REPETICIÓN AUTOMÁTICA

%inicio de bloqueclear allfor i=1:0.5:10 disp('Hola')end%fin de bloque

%inicio de bloque%índices con pasos predeterminado "1"clear alli=(1:10)%o su equivalenteclear alli=1:10%%fin de bloque

%inicio de bloque clear allt2=clock

Ing. Teddy Negrete Página 95

for i=1:100000 endt3=clocketime(t3,t2)%fin de bloque

%inicio de bloque clear allt2=clockfor i=1:100000 i*1endt3=clocketime(t3,t2)%fin de bloque

%inicio de bloqueclear allt2=clockfor i=1:100000 i*1;endt3=clock etime(t3,t2)%fin de bloque

Figura No.2

La Figura No.2 muestra dos posibles formas de bucle, con el control situado al principio o al final del mismo. Si el control está situado al comienzo del bucle es posible que las sentencias no se ejecuten ninguna vez, por no haberse cumplido la condición cuando se llega al bucle por primera vez. Sin embargo, si la condición está al final del bucle las sentencias se ejecutarán por lo menos una vez, aunque la condición no se cumpla. Muchos lenguajes de programación disponen de bucles con control al principio (for y while en C/C++/Java) y al final (do … while en C/C++/Java).

En MATLAB no hay bucles con control al final del bucle, es decir, no existe construcción análoga a do … while de Lenguaje C, o del repeat … until de la programación en BASIC.

Ing. Teddy Negrete Página 96

%Para quebrar un lazo enredado, presiona [Ctrl]+[C]

%LAZO DE REPETICION INFINITA%inicio de bloqueclcclear alln=0while((n<0)||(n==0))n=input('INGRESE UN NUMERO POSITIVO: ')n=-1 %esta linea convierte en lazo infinito esta estructura end%fin de bloque%Presione [Ctrl]+[C]

%LAZO DE REPETICION CONDICIONAL%inicio de bloqueclear allx=1while ~(x==0) % Con [Alt]+[126] representamos el character ~ x=input('ingrese el CERO para salir '); for i=1:1:abs(x) disp('hola') endend%fin de bloque

%inicio de bloqueclear allnum=0.5while~(fix(num)==num)clcnum=input('ingrese un numero entero: ')end%fin de bloque

%inicio de bloqueclcclear allnum=1;while~(num==fix(num)&(num>1)) num=input('ingrese un numero entero mayor que 1: ')enddisplay('los factores del numero ingresado son: ')factor=1;while(factor<num) if(mod(num,factor)==0) factor end factor=factor+1;endnum

Ing. Teddy Negrete Página 97

%fin de bloque

EJERCICIO DE APLICACIÓN:

Realice un programa en MATLAB que ingrese un nombre (entre apóstrofes y minúsculas) por teclado y muestre por pantalla cuantas vocales a, e, i, o, y u tiene el mismo.

%inicio de bloqueclcdisp(' ')disp('Ingrese un nombre en minuscula y entre apostrofes: ')disp(' ')nombre=input('======== ');disp(' ')vocal='aeiou';%for j=1:5vocales(j)=0; for i=1:length(nombre) if nombre(i)==vocal(j) vocales(j)=vocales(j)+1; end endend%disp('su '),nombredisp('tiene las siguientes: ')vocalesdisplay(' a e i o u')%fin de bloque

Ing. Teddy Negrete Página 98

Figura No. 3. Diagrama de Flujo del ejercicio anterior

Ing. Teddy Negrete Página 99

Observe que el diagrama de flujo es la representación gráfica del algoritmo que se ejecuta para alcanzar el objetivo de contar cuantas vocales ‘a e i o y u’ tiene el nombre. Ademas hemos utilizado una función propia de MATLAB, length que nos ayuda a detener el segundo contador automático i, la bifurcación o desición de contar depende si la letra componente del nombre es o no una vocal. Aquí se utiliza un concepto muy común en programación llamado contador.

NOTA: Con estos ejemplos y explicaciones no se alcanzará el conocimiento de la programación estructurada. Sin embargo los estudiantes que si lo tienen o lo conocen pueden compararlo con otros lenguajes de alto nivel.

%MULTIPLEXOR O CONDICIONAL MÚLTIPLE%INTERRUPTOR

%inicio de bloqueclear alldisp('Ingrese un número entero del 1 al 12')disp('que represente un mes del año')m=input('digite el número: ');switch m case 1 disp('ENERO') case 2 disp('FEBRERO') case 3 disp('MARZO') case 4 disp('ABRIL') case 5 disp('MAYO') case 6 disp('JUNIO') case 7 disp('JULIO') case 8 disp('AGOSTO') case 9 disp('SEPTIEMBRE') case 10 disp('OCTUBRE') case 11 disp('NOVIEMBRE') case 12 disp('DICIEMBRE') otherwise disp('NO CORRESPONDE A UN MES')end%fin de bloque

EJERCICIOS PARA LOS TALLERES:

Ing. Teddy Negrete Página 100

TALLER # 3

3.1 Elabore un programa, que usado las estructuras de CONTROL DE FLUJO resuelva los siguientes problemas:

3.1.1 Ingrese por teclado 3 números reales positivos los que representarán lados de un triángulo cualquiera, por lo tanto, verifique que sean positivos y que puedan ser lados de un triángulo cualquiera. Un ejemplo de 3 valores que no cumple con la condición de ser “lados de un triángulo” son los valores 1, 1, 4

3.1.2 Calcule y muestre por pantalla, el perímetro del triángulo anterior.

3.1.3 Calcule y muestre por pantalla, el area del triángulo anterior.

3.1.4 Indique al usuario que finalice el programa ingresando los valores 0, 0, 0 ó que continué ingresando otro triángulo.

3.2 Dado el circuito eléctrico adjunto:

3.2.1 Halle la Impedancia Equivalente, para la frecuencia f dada

3.2.2 Halle la Admitancia Equivalente, para la frecuencia f dada

3.2.3 Halle los valores del módulo de la Impedancia Equivalente |Z| para frecuencias ω con valores desde ω=1.000 hasta el valor de 20.000, a pasos de 1.000. Guarde en dos vectores los valores encontrados.

3.2.4 Con los valores del módulo de la impedancia equivalente |Z| versus los valores de la frecuencia ω, realice un gráfico que llamaremos "Respuesta de la frecuencia del Circuito" .

3.3 Recuerda la “Libreta de Calificaciones de la Escuela”, ingrese una nota entera del 1 al 20, y muestre según sea el caso: Sobresaliente, Muy Bueno, Bueno, Regular, Insuficiente y Malo. Primero elabore una Tabla de Equivalencias a mano y luego realice el programa.

3.4 Ingrese un nombre o una palabra “en minúsculas y entre apóstrofes” y que muestre la cadena de caracteres al revés, por ejemplo: Si ingresa ‘teddy’, deberá mostrar la cadena ‘yddet’. Si el nombre y la cadena al revés son iguales debe mostrar el mensaje “PALÍNDROME”, caso contrario el mensaje “NORMAL”.

3.5 Ingrese o genere aleatoriamente los coeficientes enteros de un “SEL 3x3”, homogéneo o no homogéneo y muestre los valores que son la SOLUCIÓN. Valide la posibilidad que el Sistema NO TENGA SOLUCIÓN, o que tenga INFINITAS SOLUCIONES.

Ing. Teddy Negrete Página 101

3.6 Dado el circuito eléctrico adjunto, elabore un programa que: ingrese los valores de las resistencias Ri y los valores de los voltajes Vi de las fuentes, luego:

Verifique que los valores de las Ri

ingresadas sean valores positivos y reales.Verifique que los valores de las Vi

ingresadas sean valores reales.Calcule las corrientes de mallas Ii.Si hay incosistencia de los valores o de los resultados debe mostrar los "mensajes" correspondientes al error.

3.7 Realice un programa que ingrese un valor xA y una función continua en este valor f(x), determine la derivada de la función f(x) en el punto xA, derf(xA). Utilice el concepto de la derivada de una función en un punto por el cálculo del límite,

.

3.8 Realice un programa que ingrese 2 valores reales xA y xB, los coeficientes de un polinómio p(x) hasta 5to grado, tal que cumpla el Teorema del Valor Intermedio en este intervalo, luego con un método de Análisis Numérico (por ejemplo el Método de Newton), halle xR que es una raíz o una aproximación de la raíz al menos con 4 dígitos de precisión. Si después de 10.000 iteraciones no converge, para la precisión solicitada muestre el mensaje "MATLAB SE CANSO DE TRABAJAR".

3.9 Genere aleatroriamente un vector de 20 elementos, con valores enteros entre 10 y 99, muestre el vector dado, luego el vector ordenado en forma ASCENDENTE y DESCENDENTE, los 3 vectores como una Tabla. Muestre la MEDIANA, el PROMEDIO, la VARIANZA y la DESVIACIÓN.

3.10 Realice un programa que ingrese o genere aleatoriamente un número decimal con 2 dígitos decimales, pero menor que 1000. Muestre en letras la cantidad ingresada o generada. Por ejemplo si se genera el número 123.43, deberá mostrar "CIENTO VEINTE Y TRES CON CUARENTA Y TRES CENTÉSIMAS". Se sugiere utilizar un condicional múltiple.

4ª SEMANA

CAPÍTULO # 2. FUNCIONES Y ARREGLOS

Ing. Teddy Negrete Página 102

+

-

Vs26V

+

-

Vs17V

R51k

R43k

R32k

R22k

R11k

2 FUNCIONES DEL USUARIO, ARREGLOS, GRÁFICOS, VARIABLE SIMBÓLICA

2.1 Funciones definidas por el usuario.

FUNCIONES EN MATLAB

La primera línea de un archivo llamado nombre.m que define una función del ususario tiene la forma:

function [lista de valores de retorno] = nombre(lista de argumentos)

donde nombre es la denominación de la función. Entre corchetes y separados por comas van los valores de retorno (siempre que haya más de uno), y entre paréntesis también separados por comas los argumentos.

Puede haber funciones sin valor de retorno y también sin argumentos. Recuérdese que los argumentos son los datos de la función y los valores de retorno son sus resultados. Si no hay valores de retorno se omiten los corchetes y el signo igual (=); si sólo hay un valor de retorno no hace falta poner corchetes. Tampoco hace falta poner paréntesis si no hay argumentos.

%FUNCIONES%COMANDO: function%%function variable_salida=nombre_función(argumentos) o%function [variables_salidas]=nombre_función(argumentos)%%Las líneas de comentario de ayuda correspondiente a la FUNCIÓN%"nombre_función" deberán ser incluidas en la cabecera de la%función que estamos creando.%%El archivo de la FUNCIÓN deberá ser guardado en el %directorio_actual (Carpeta Personal) con un nombre %nombre_archivo.m IGUAL al nombre_función (FUNCIÓN).%%La ejecución de esta FUNCIÓN con nombre_función será igual%que cualquier otra función de MATLAB, es decir:%1. Desde el prompt en el Command Window%2. Desde una línea de un script o archivo *.m%En ambos casos los argumentos de la función deben ser %ingresados correctamente.%%Los comentarios incluidos en nuestra FUNCIÓN nos servirán%de ayuda mediante el uso del comando help "nombre_función" %nombre de la función definida por nosotros igual como si%fuera una función propia del MATLAB, en al prompt%%Las variables de salida "variables_salida" podrán ser usadas en%el programa que las creo, es decir en la FUNCIÓN, en el archivo

Ing. Teddy Negrete Página 103

%"nombre_función", después de la línea que declaró la función.%%Para devolver el control al programa desde cualquier punto %de una función basta con escribir la sentencia return

27. Elabore otro archivo, verifique que se guarde en la carpeta personal con el nombre funciones.m, comente su funcionamiento explicando el significado de la ejecución y concluya en forma general por cada bloque:

%inicio de bloquedisp('HOLA')%fin de bloque

%inicio de bloqueclcdisp('HOLA')saludo%¿Por que se produce error?

%inicio de bloqueclcdisp('HOLA')saludosaludos(3)%¿Por que se produce error?%fin de bloque

El error que se muestra es: “??? Undefined function or variable 'saludo'.”

Función creada por el usuario: saludo

28. Cree un nuevo archivo llamado saludo.m que será la función creada por el usuario, guárdelo en “unidad:\matlab_root\work” :

%Formato: saludo%Esta función no tiene parámetros ni argumentos%Sólo mostrará por pantalla el mensaje 'hola'%function y=saludo disp('hola')%%"El autor es anónimo"%

NOTA IMPORTANTE: Recuerde que este archivo no se ejecuta como los demas *.m, es decir con [F9], lo debe ejecutar en el prompt (en la línea de comandos), o en una línea de otro archivo *.m.

Vaya al “Window command”, en la línea de comandos “>>” y escriba saludo, es decir: >>saludo se ejecutará el programa que guardo en el archivo saludo.m

Ing. Teddy Negrete Página 104

Regresemos al archivo pendiente de corregir, el archivo número 14 (funciones.m) ahora ejecutemos el segundo bloque, note que ahora NO se presenta error, en la función saludo.

Si ejecuta el tercer bloque, notará que presenta un error en la función saludos. El error que se muestra es: “??? Undefined command/function 'saludos'.”

Función creada por el usuario: saludos()

29. Cree un nuevo archivo llamado saludos.m que será la función creada por el usuario, guárdelo en “unidad:\matlab_root\work” :

%%Formato: saludos(número_ingresado)%%Esta es una función que “Saluda” tal que al ingresar un número %entero positivo o negativo, presentará por pantalla el mensaje %"hola" repetido tantas veces como sea el módulo número, es decir %abs(número_ingresado)%%function y=saludos(x)i=1;for i=1:1:abs(x) disp('hola')end%%

NOTA IMPORTANTE: Recuerde que este archivo no se ejecuta como los demas *.m, es decir con [F9], lo debe ejecutar en el prompt (en la línea de comandos), o en una línea de otro archivo *.m.

Vaya al “Window command”, en la línea de comandos “>>” y escriba saludos, es decir: >>saludos se ejecutará el programa que guardo en el archivo saludos.m, pero ahora se presentará el error “??? Input argument "x" is undefined.”, esto se debe al formato de la función saludos(), esta necesita un argumento para que se ejecute correctamente.

Ahora en el prompt escriba saludos(10), note que se muestran 10 mensajes de saludos ‘hola’, la ejecución ahora es correcta.

Regresemos al archivo pendiente de corregir, el archivo número 14 (funciones.m) ahora ejecutemos el tercer bloque, note que ahora NO se presenta error, en la función saludos.

Ing. Teddy Negrete Página 105

30. Elabore un programa que contenga 3 números A, B y C correspondientes a los coeficientes de una Ecuación Cuadrática y que muestre por pantalla las soluciones llamadas R1 y R2, verifique que se guarde en la carpeta personal con el nombre raices.m, ejecútelo varias veces con diferentes valores de A, B, C y compruebe sus resultados.

%inicio de bloqueA=1B=-2C=1%disp('las raices son: ')R1=(-B-sqrt(B^2-4*A*C))/(2*A)R2=(-B+sqrt(B^2-4*A*C))/(2*A)%fin de bloque

Note que para hallar los resultado para diferentes ecuaciones debemos modificar continuamente 3 líneas del programa, lo cual no es muy práctico. Ahora vamos a crear una función y la ejecutaremos varias veces, desde el PROMPT.

Función creada por el usuario: raices2

31. Cree un nuevo archivo llamado raices2.m que será la función creada por el usuario, guárdelo en “unidad:\matlab_root\work” :

Función: raices2Cree otro archivo llamado raices2.m que será la función creada:%%Formato: raices2(a,b,c)%%%Permite hallar las raíces complejas de una ecuación%cuadrática, si ingresamos los coeficientes a, b, c%function [r1 r2]=raices2(a,b,c)disp('las raices son: ')r1=(-b-sqrt(b^2-4*a*c))/(2*a);r2=(-b+sqrt(b^2-4*a*c))/(2*a);

Vaya al “Window command”, en la línea de comandos “>>”, es decir el PROMPT y escriba raices2(1, –2 , 1), se ejecutará la función y se obtendrán los resultados de la ecuación cuadrática.

Es posible que el usuario no conozca esta función entonces puede escribir en el PROMPT, >>help raices2 y recibirá una guía de su uso, usted debe documentar y explicar en forma clara y concreta su ejecución y su formato.

Ing. Teddy Negrete Página 106

Otra forma de ejecutar la función raices2, es desde un archivo tipo script *.m.Agregue el siguiente bloque de instrucciones al archivo # 17, llamado raices.m, ejecútelo varias veces y comente su funcionamiento.

%inicio de bloque%Ejecución pidiendo los argumentos o parámetros%Se presentan por pantalla los resultadosdisp('Ingrese los coeficientes de una Ecuación Cuadrática')A=input('Ingrese el coeficiente cuadrático a: ');B=input('Ingrese el coeficiente lineal b: ');C=input('Ingrese el término independiente c: ');raices2(A,B,C)%fin de bloque

32. Elabore un programa que ingrese los coeficientes A, B, C de una Ecuación Cuadrática, muestre la SUMA y el PRODUCTO de las raíces R1 y R2 utilizando la función raices2.m, verifique que se guarde en la carpeta personal con el nombre suma_producto.m Compare estos resultados con las fórmulas matemáticas x1+x2 =–b/a y x1*x2=c/a

%inicio de bloque %Se fija el ingreso de los argumentos o parámetros%Pero también pueden guardarse los resultados en variables%Se presentan por pantalla los resultados de SUMA Y PRODUCTOclear allA=3B=2C=-1[x1,x2]=raices2(A,B,C)disp('La SUMA de las raíces son: ')x1+x2disp('El PRODUCTO de las raíces son: ')x1*x2%fin de bloque

Recordemos que MATLAB tiene una función muy útil que calcula las raices de un polinomio, es decir que calcula las soluciones de una Ecuación Polinómica llamada roots. La Ecuación Cuadrática es el equivalente de la Ecuación Polinómica de 2º Grado. Hay una función asociada a este calculo pero se aplica a número reales, esta función es nthroot

%inicio de bloque%Función polinómica de MATLAB%A, B, C son los coeficientes de la Ecuación CuadráticaA=1,B=-2,C=1

Ing. Teddy Negrete Página 107

roots([A B C])%fin de bloque

%inicio de bloque%Raíz cuadrada de 49nthroot(49,2)%%Raíz cuarta de 81nthroot(81,4)%fin de bloque

Las siguientes son funciones tomadas de

2.2 Arreglos (Vectores, Matrices e Hiper–Matrices) en MATLAB.Estructuras en MATLAB.

ARREGLOS (Vectores, Matrices, Hiper-matrices) EN MATLAB

MATLAB trabaja esencialmente con matrices de números reales o complejos. Las matrices 1x1 son interpretadas como escalares y las matrices fila o columna como vectores.

Por defecto todas las variables son matriciales y nos podemos referir a un elemento con dos índices. Aún así, conviene saber que la matriz está guardada por columnas y que nos podemos referir a un elemento empleando sólo un índice, siempre que contemos por columnas. Insistiremos bastante en este detalle, porque tiene fuertes implicaciones para entender el funcionamiento de bastantes aspectos de MATLAB.

33. Elabore otro archivo, verifique que se guarde en la carpeta personal con el nombre arreglos.m, comente las líneas de la estructura, explicando el significado de la ejecución y concluya en forma general por cada bloque:

%VECTORES EN MATLAB

%inicio de bloquex=[2 4 6 8];y=[1;2;3;4];z=x'x(1)y(4)z(3)

Ing. Teddy Negrete Página 108

%fin de bloque

%ESPACIAMIENTO LINEAL

%inicio de bloquex=0:0.1:1y=0:10%linspace(0,1)%%fin de bloque%inicio de bloquea=-1b=4n=50u=linspace(a,b,n)%v=linspace(0,1,11)%%fin de bloque

%ESPACIAMIENTO LOGARÍTMICO

%inicio de bloque%logspace(-1,2)%%fin de bloque

%inicio de bloqued1=-2.3d2=2.1n=30x=logspace(d1,d2,n) %y=logspace(-1,2,35)%fin de bloque

%ELEMENTOS DE UN VECTOR

%inicio de bloque%Un vector puede ser descompuesto en cada uno de sus elementos:clear allx=[1 2 3]a=x(1,1)b=x(1,2)c=x(1,3)d=a+b+cy(1,1)=a+2

Ing. Teddy Negrete Página 109

y(1,2)=b*3y(1,3)=c/3yfigure(1), plot(x,y), gridtitle('Gráfico')%fin de bloque

WORKSPACE BROWSER Y ARRAY EDITOR

El espacio de trabajo de MATLAB (Workspace) es el conjunto de variables y de funciones de usuario que en un determinado momento están definidas en la memoria del programa o de la función que se está ejecutando. Para obtener información sobre el Workspace desde la línea de comandos se pueden utilizar los comandos who y whos. El segundo commando proporciona una información más detallada que el primero. Por ejemplo, una salida típica del comando whos es la siguiente:

%EXPLORADOR DEL ESPACIO-TRABAJO Y EDITOR DE ARREGLOS

%inicio de bloqueclear allMa=zeros(3,3)Mb=ones(2,2)Mc=rand(2,3)whos%fin de bloque

Éstas son las variables del espacio de trabajo base (el de la línea de comandos de MATLAB). Más adelante se verá que cada función tiene su propio espacio de trabajo, con variables cuyos nombres no interfieren con las variables de los otros espacios de trabajo. Verifique que la ventana Current Directory este activa, sino haga clic en la Barra de Título de esta ventana, fíjese que en la Barra de Estado se visualicen 2 pestañas (Current Directory / Workspace), sino haga clic en el Menú Desktop (de la Barra de Menús de MATLAB) y luego un clic en la opción Workspace.

En esta ventana visualizará las variables Ma, Mb y Mc, haga un doble clic en cada una de las variables, observará que aparece a la derecha el Array Editor (Editor de Arreglos). La ventana Workspace constituye un entorno gráfico para ver las variables definidas en el espacio de trabajo. La Figura No. 3 muestra el aspecto inicial de la ventana Workspace cuando se ejecuta una variable o se abre un archivo desde un determinado programa. Haciendo doble clic por ejemplo, sobre la matriz Mc aparece una nueva ventana (o pestaña, si la ventana ya existía) del Array Editor, en la que se muestra el contenido de la variable (matriz Mc), nótese que pueden ser modificados los elementos de dicha matriz o de una variable cualquiera que sea editada con este programa (Array Editor).

Ing. Teddy Negrete Página 110

Si se desean examinar otras matrices y/o vectores, al hacer doble clic sobre ellas en el Array Editor, las muestra en la misma ventana como sub-ventanas con una pestaña diferente. Clicando con el botón derecho sobre alguna de las variables del Workspace Browser se abre un menú contextual que ofrece algunas posibilidades interesantes, como por ejemplo, la de representar gráficamente dicha variable.

Figura No3.

El Array Editor no sólo permite ver los valores de los elementos de cualquier matriz o vector definido en el programa: es también posible modificar estos valores clicando sobre la celda correspondiente. La ventana del Array Editor incluye una lista desplegable en la que se puede elegir el formato en el que se desea ver los datos.

%ARREGLOS EN MATLAB

%inicio de bloqueMg=[1 2 3 ; 4 5 6]Mh=[1 2 3 4 5 6 7 8 9]Mi=Mg-2Mj=2*Mg-1%fin de bloque

%inicio de bloqueMx=[1 4 5; 3 1 6]

Ing. Teddy Negrete Página 111

My=[1 2 3; 4 5 6]Mz=My.*Mx %Multiplicación termino a termino de matricesMu=My*Mx %Error de producto de matricesMv=Mg*Mx' %Si se cumple la condición para el producto de matrices%fin de bloque

%inicio de bloque%Genere una Matriz de 3x3%Guarde los valores de la diagonal en un vectorclear allMa=rand(3,3)for (i=1:1:3) Vd(1,i)=Ma(i,i);endVd%fin de bloque

%inicio de bloque%Genere una matriz de 3x3, reemplace la 2 fila por cerosclear allMa=rand(3,3)Ma(2,:)=0%fin de bloque

%inicio de bloque%Genere una matriz de 3x3, reemplace la 3 columna por unosclear allMa=rand(3,3)Ma(:,3)=1%fin de bloque

%inicio de bloqueclear allA=[1 2 3; 4 5 6; 7 8 9]B=AC=B(2:3,1:2) %C es la Menor (1,3) de B%B(:,2)=[] %Reducción de una Matriz %Se ha eliminado la 2ª columnaB=AB(1,:)=[] %Reducción de una Matriz %Se ha eliminado la 1ª fila%D=B(:)%E=A(:)F=A(1,:)

Ing. Teddy Negrete Página 112

G=A(:)'%Cálculo del Determinantedet(C)%det(G) %¿Por qué se produce error?%%fin de bloque

%inicio de bloque%Generación por el MANEJO DE ÍNDICESclear allfor (i=1:1:5) for(j=1:5) Ma(i,j)=i*j endendMa%fin de bloque

%inicio de bloque%Generación por el PRODUCTO DE INTERVALOS%Mb=(5:-1:1)'*(5:-1:1)%%fin de bloque

NOTA: Generalmente cuando se trabaja con arreglos complejos se presentan cada uno de los elementos en forma rectangular, aunque se pueden definir y operar arreglos complejos con elementos en forma exponencial.

%ARREGLOS CON NÚMEROS COMPLEJOS

%inicio de bloqueclear alla=-1:2Va=a+i*ab=-2:1Vb=b+i*bVc=(a+i*a)'Mab=Vc*Vbm=det(Mab)%fin de bloque

%inicio de bloqueformat short gclear all

Ing. Teddy Negrete Página 113

a=-1:2Va=3*a+i*ab=-2:1Vb=b-i*2*bVc=Va'Mab=Vc*Vb+2*imab=det(Mab)%fin de bloque%inicio de bloqueformat short%clear allMx=10*rand(3,3)My=10*rand(3,3)Mz=Mx+i*MyMi=int8(Mz)mz=det(Mz)re=real(mz)im=imag(mz)modu=abs(mz)z1=int8(mz) %¿Es correcto este valor?z2=int16(mz)%det(Mi) %¿Por qué se produce error?%%fin de bloque

%inicio de bloqueformat short gclear allMx=[5*exp(i*pi/4) 2*exp(i*2*pi/3) ; -3*exp(i*pi/6) 2*exp(i*7*pi/6)]My=[1 i -7*exp(i*5*pi/4) 9*exp(i*4*pi/3) ; 0 0 2-i 4*exp(i*5*pi/6)]Mu=Mx*My%Mv=My*Mx %¿Por qué se muestra error?%%fin de bloque

%DIMENSIÓN Y LONGITUD DE UN ARREGLO

%inicio de bloqueclear allVv=1:10dimension=size(Vv)longitud=length(Vv)

Ing. Teddy Negrete Página 114

%fin de bloque

%inicio de bloqueclear allMm=magic(3)dimension=size(Mm)longitud=length(Mm)%fin de bloque

%inicio de bloqueformat shortclear allMn=rand(4,7)dimension=size(Mn)longitud=length(Mn)%fin de bloque

OPERACIONES ARITMETICAS CON ARREGLOS

Recordemos las operaciones básicas: SUMA, DIFERENCIA, PRODUCTO MATRICIAL,PRODUCTO ELEMENTO A ELEMENTO (como producto escalar), DIVISIÓN POR LA DERECHA Y POR LA IZQUIERDA.

Es importante que recordemos y entendamos las reglas dimensionales que rigen estas operaciones aritméticas en MATLAB.

SUMA Y DIFERENCIA MATRICIAL:Al sumar un arreglo a un escalar, a este último MATLAB lo convierte en un arreglo con la misma dimensión del arreglo que va a sumar o restar.

%inicio de bloqueclcclear allMa=rand(2,5)Mb=Ma+3Mc=3-MaMd=Mb+Mc%fin de bloque

PRODUCTO MATRICIAL:Lo conocemos muy bien y conocemos la regla dimensional.Es la misma regla aprendida por el Álgebra Básica.

Ing. Teddy Negrete Página 115

%inicio de bloque%ARREGLOS CUADRADOS%clcclear allMa=rand(3,3)Mb=magic(3)Mc=Ma*MbMd=Mb*Ma%fin de bloque

%inicio de bloque%ARREGLOS NO CUADRADOS (RECTANGULARES)%clear allMa=ones(2,4)Mb=1:4Mc=Mb'Md=Ma*McMe=Mb*Mc%Mf=Mb*Ma %¿Por qué se produce error?%fin de bloque

PRODUCTO ELEMENTO A ELEMENTO DEL ARREGLO:(Como si fuera la suma de matrices, pero en su lugar es un producto escalar)Este producto NO se aplica en el Álgebra Básica.Este producto se aplica entre arreglos de la misma dimensión.El resultado se obtiene multiplicando uno a uno los elementos de los arreglos.El arreglo resultante tiene la misma dimensión de los arreglos. En MATLAB se utiliza el operador “.*”

%inicio de bloque%clcclear allMa=3*ones(2,3)Mb=5*ones(2,3)Mc=Ma.*Mb%Md=Ma*Mb'Me=Ma'*Mb%Mf=Ma*Mb %¿Por qué se produce error?%%fin de bloque

Ing. Teddy Negrete Página 116

DIVISIÓN MATRICIAL: POR LA DERECHA Y POR LA IZQUIERDA.Son reglas especiales aplicadas en MATLAB:Considerando, matrices cuadradasA*inv(B)=A/Binv(A)*B=A\B

La regla del producto:A(m,n)*B(n,p)=C(m,p)Condición: ÍNDICES CENTRALES IGUALESDimensión del resultado: ÍNDICES DE LOS EXTREMOS.

REGLA DIMENSIONAL:División DERECHA (matrix right division) A/B = mrdivide(A,B) A(m,n) / B(p,n) = C(m,p)Condición: ÍNDICE DERECHA IGUALES#COLUMNAS(A) = #COLUMNAS(B)Dimensión del RESULTADO: #FILAS(A) X #FILAS(B)

REGLA DIMENSIONAL:División IZQUIERDA (matrix left division) A\B = mldivide(A,B) A(m,n) \ B(m,p) = C(n,p)Condición: ÍNDICE IZQUIERDA IGUALES#FILAS(A) = #FILAS(B)Dimensión del RESULTADO: #COLUMNAS(A) X #COLUMNAS(B)

%ARREGLOS CUADRADOS%%Considerando la división una operación impráctica, usamos la%matriz IDENTIDAD, para que sea el divisor de la operación

%inicio de bloque%clear allMa=[2 -2;3 1]Mb=inv(Ma) Mi=Ma*MbMc=Ma/Mi%Md=Ma-Mc%%fin de bloque

Ing. Teddy Negrete Página 117

%inicio de bloque%clear allMa=[4 -1;2 5]Mb=inv(Ma) Mi=Ma*MbMc=Mi\Ma%Md=Ma-Mc%%fin de bloque

%inicio de bloque%Podemos usar funciones definidas en MATLAB%DIVISIÓN POR LA DERECHA Y POR LA IZQUIERDA%%mldivide(A,B) A\B%mrdivide(B,A) B/A%%fin de bloque

%MATRICES CUADRADAS (la misma dimensión)

%inicio de bloqueclear allMa=[1 2;3 4]Mb=[5 6;7 8]Mc=Ma/MbMd=Ma*inv(Mb)Mdd=mrdivide(Ma,Mb)Me=Ma\MbMf=(inv(Ma))*MbMg=inv(Ma)*MbMgg=mldivide(Ma,Mb)%fin de bloque

%ARREGLOS NO CUADRADOS (RECTANGULARES)%%Aunque no comprobemos los resultados numéricos que se%obtienen al realizar las estas operaciones, comprobaremos%las REGLAS DIMENSIONALES que se establecen

%inicio de bloque%clear allMa=rand(3,2)Mb=rand(4,2)Mc=Ma/MbMd=Mb/Ma

Ing. Teddy Negrete Página 118

%Me=Ma*Mb %¿Por qué se produce error?%%fin de bloque

%inicio de bloque%clear allMa=rand(2,3)Mb=rand(2,4)Mc=Ma\MbMd=Mb\Ma %Me=Ma*Mb %¿Por qué se produce error?%%fin de bloque

EJEMPLO DE APLICACIÓN:

Dados 2 o más vectores concaténelos para formar una matriz. Preséntela en forma horizontal o vertical.

%inicio de bloque%%los vectoresA=[1 2 3 4]B=[4 5 6 2]C=[7 8 9 1]%%la matriz horizontalD=[A;B;C]%%la matriz verticalE=D'%%fin de bloque

FUNCIONES BÁSICAS DE LOS ARREGLOS:

Las siguientes funciones sólo actúan sobre vectores (no sobre matrices, ni sobre escalares):

[xm,im]=max(x) %máximo elemento de un vector. %Devuelve el valor máximo xm y la posición que ocupa im

Ing. Teddy Negrete Página 119

[xm,im]=min(x)%mínimo elemento de un vector. %Devuelve el valor mínimo y la posición que ocupa

sum(x)%suma de los elementos de un vector

cumsum(x)%devuelve el vector suma acumulativa de los elementos de un vector (cada elemento del resultado es una suma de elementos del original)

mean(x)%valor medio de los elementos de un vector

std(x)%desviación típica

prod(x)%producto de los elementos de un vector

cumprod(x)%devuelve el vector producto acumulativo de los elementos de un vector

[y,i]=sort(x)%ordenamiento de menor a mayor de los elementos de un vector x.

Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado y.

En realidad estas funciones se pueden aplicar también a matrices, pero en ese caso se aplican por separado a cada columna de la matriz, dando como valor de retorno un vector resultado de aplicar la función a cada columna de la matriz considerada como vector.

Si estas funciones se quieren aplicar a las filas de la matriz basta aplicar dichas funciones a la matriz traspuesta.

%FUNCIONES BÁSICAS PARA ARREGLOS

%inicio de bloque%clear allA=rand(2,2)B=rand(2,2)isequal(A,B) %%fin de bloque

Ing. Teddy Negrete Página 120

%FILAS Y COLUMNAS DE UN ARREGLO

%inicio de bloque%clear alla=[1 4 7; 3 5 8]s=size(a)filas=s(1)columnas=s(2)%[x_filas,y_columnas]=size(a)ones(size(a))%%fin de bloque

%MATRICES MENORES DE OTROS ARREGLOS

%inicio de bloque%clear allA=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]B=A(1:3,2:4)%B es la menor de A que se forma:%Tomando los elementos desde la 1ªfila hasta la 3ªfila%y los elementos desde la 2ªcolumna hasta la 4ªcolumna%A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]C=A(2:3,3:4)%C es la menor de A que se forma:%Tomando los elementos desde la 2ªfila hasta la 3ªfila%y los elementos desde la 3ªcolumna hasta la 4ªcolumna%A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]D=A(:,3:3)%%Explique ¿Cómo se forma D?%A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]E=[A(:,1) A(:,2)]%%Explique ¿Cómo se forma E?%%fin de bloque

%INVERSIÓN POSICIONAL DE ARREGLOS

%inicio de bloque%%De arriba a bajo

Ing. Teddy Negrete Página 121

%De izquierda a derecha%clear allA=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]B=flipud(A) %invierte verticalmente una matriz%A=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]C=fliplr(A) %invierte horizontalmente una matriz%%fin de bloque

%inicio de bloqueclear allA=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]B=flipud(A') C=fliplr(B)%Explique ¿Cómo se forma B y C?%fin de bloque

%inicio de bloqueclear alla=[1 4 7 5;3 5 8 6;7 8 5 6;0 8 45 78]b=ab(:,2)=0 c=bc(:,:)=0columna3_matriz_a=a(:,3) columna3_matriz_a(1)flipud(columna3_matriz_a)%%fin de bloque

%OPERACIONES CON RESULTADOS ESCALARES EN ARREGLOS

%inicio de bloque%clear allB=[1 2 3;4 5 6;7 8 9]C=B(2:3,1:2)B(:,2)=[ ] D=B(:) length(D)size(D)%%fin de bloque

%OPERACIONES CON RESULTADOS LÓGICOS EN ARREGLOS

Ing. Teddy Negrete Página 122

%inicio de bloque%A=[1 2 3;4 5 6;7 8 9]%B=[1 2 3;4 5 6;7 8 9]B=[1 5 7;4 9 6;3 2 1]resul_compara=isequal(A,B)ismember(A,B)%%fin de bloque

%OPERACIONES DE BUSQUEDA EN ARREGLOS

%inicio de bloqueA=magic(3)indices=find(A>5)%Si se convierte la matriz A[3x3] en un vector vertical A[9x1]%equivalente al uso del comando A(:), luego find encontrará%los índices del vector que satisfacen la condición.%fin de bloque

Hipermatrices (arrays de más de dos dimensiones)

MATLAB permite trabajar con hipermatrices, es decir con matrices de más de dos dimensiones (Figura No. 4). Una posible aplicación es almacenar con un único nombre distintas matrices del mismo tamaño (resulta una hipermatriz de 3 dimensiones). Los elementos de una hipermatriz pueden ser números, caracteres, estructuras, y vectores o matrices de celdas. El tercer subíndice representa la tercera dimensión: la “profundidad” de la hipermatriz.

DEFINICIÓN DE HIPERMATRICES.

Las funciones para trabajar con estas hipermatrices están en el sub-directorio toolbox\matlab\datatypes. Las funciones que operan con matrices de más de dos dimensiones son análogas a las funciones vistas previamente, aunque con algunas diferencias. Por ejemplo, las siguientes sentencias generan, en dos pasos, una matriz de 2×3×2:

Ejecute en la LÍNEA DE COMANDOS:

>> AA(:,:,1)=[1 2 3; 4 5 6] % matriz inicialAA =1 2 34 5 6>> AA(:,:,2)=[2 3 4; 5 6 7] % se añade una segunda matrizAA(:,:,1) =1 2 34 5 6AA(:,:,2) =

Ing. Teddy Negrete Página 123

2 3 45 6 7

FUNCIONES QUE TRABAJAN CON HIPERMATRICES.

Algunas funciones de MATLAB para generar matrices admiten más de dos subíndices y pueden ser utilizadas para generar hipermatrices. Entre ellas están rand(), randn(), zeros() y ones(). Por ejemplo, véase la siguiente sentencia y su resultado:

Ejecute en la LÍNEA DE COMANDOS:

>> BB=randn(2,3,2)BB(:,:,1) =-0.4326 0.1253 -1.1465-1.6656 0.2877 1.1909BB(:,:,2) =1.1892 0.3273 -0.1867-0.0376 0.1746 0.7258

La función cat() permite concatenar matrices según las distintas “dimensiones”, como puede verse en el siguiente ejemplo:

>> A=zeros(2,3); B=ones(2,3);ijkA(i,j,k)

Figura No. 4. Hipermatriz de tres dimensiones.

Ing. Teddy Negrete Página 124

Figura No. 4

EJERCICIOS PARA LOS TALLERES:

TALLER # 4

4.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m, que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:

4.1.1 Ingrese un vector que represente 10 calificaciones enteras entre 1 y 100, revise cada una de ellas, si son menores que 70, presente por pantalla la palabra “REPROBADO”, caso contrario “APROBADO”. También muestre por pantalla cuántas calificaciones son mayores o iguales a 70.

4.1.2 Ingrese un número natural n de 2 dígitos, que represente la cantidad de calificaciones enteras entre 1 y 100, generadas aleatoriamente. Muestre:

¿Cuántas son mayores o iguales a 70?

¿Cuáles son las mayores o iguales a 70?

¿Cuál es la mínima calificación?

¿Cuál es la máxima calificación?

Ing. Teddy Negrete Página 125

4.1.3 Ingrese el radio r, un número real positivo, y muestre: la longitud de la circunferencia C, el diámetro D, el área del círculo A, el área de la suerficie de la esfera S y el volumen de la esfera V, todos del radio r. El radio puede ingresar en [cm] o en [pulg], valide el ingreso y solicite al usuario la unidad de la cantidad ingresada. Solicite al usuario en que Sistema de Unidades quiere ver los resultados, ya sea en el Sistema: Internacional, Anglosajón o ambos. Muéstrelos por pantalla.

4.1.4 Elabore un programa que llene automáticamente una Tabla con valores del radio (r) desde 5 hasta 10 a pasos de ½, y en 2 columnas diferentes llene valores de Superficie de una Esfera (S) y del Volumen de la Esfera (V). Presente una Tabla con las 3 columnas r, S, V. Se sugiere utilizar vectores para la resolución y mostrar una matriz como resultado.

4.1.5 Realice el mismo programa anterior construyendo 2 funciones llamadas supesf(r) y volesf(r), las mismas que tienen como argumento el radio (r). Su programa principal podría crear los vectores con un lazo, llamando en cada iteración a las funciones creadas y luego elabora la Tabla con los vectores generados, y finalmente muestra la Tabla.

4.2 Elabore un programa en MATLAB, con el nombre problemas_fun.m, que usando FUNCIONES DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:

4.2.1 Ingrese un número natural n de 4 dígitos, valide su ingreso. Muestre todos los factores o divisores de n, muestre un mensaje si es PRIMO.

4.2.2 Cree una función llamada primo.m que ingrese un número natural n y muestre SI o NO, si el número n es o no es PRIMO.

4.2.3 Ingrese un número natural N de 2 dígitos, que represente la cantidad de números naturales, generados aleatoriamente de 3 dígitos, que se van analizar para mostrar si son o no PRIMOS. Utilice la función definida en el ejercicio anterior, para mostrar el número aleatorio y su condición de ser o no primo.

4.2.4 Ingrese un número natural NUM de 3 o 4 dígitos, utilizando la función primo.m muestre todos los factores primos del número NUM y las veces que son sus factores. Si su función primo no tiene variables de retorno o salida, puede modificarla, tal que tenga una salida lógica, si es necesario.

Por ejemplo, probemos con 100: sus factores primos son 2 y 5, pero 2 veces está el 2 y 2 veces está el 5, entonces se puede mostrar como un resultado válido: 2X2X5X5 = 100.

4.2.5 Ingrese 2 números naturales M y N de 2 dígitos cada uno y muestre si son PRIMOS ENTRE SÍ. Se dice que 2 números son “Primos entre si”, si los 2 números no tienen factores primos comunes.

Por ejemplo, probemos 45 y 98: los factores de 45 son; 3X3X5 y los de 98 son; 2X7X7, entonces 45 y 98 son “Primos entre si”.

Ing. Teddy Negrete Página 126

Por ejemplo, probemos 24 y 36: los factores de 24 son; 2X2X2X3 y los de 36 son; 2X2X3X3, entonces 24 y 36 NO son “Primos entre si”.

4.3 Elabore dos funciones definidas por el usuario de MATLAB, con los nombres xy_rt.m y rt_xy.m, para la conversion de puntos del plano rectangular al plano polar y viceversa.

4.4 Elabore un programa en MATLAB, con el nombre met_new.m, tal que ingrese los coeficientes de una función polinómica fp(x), un valor cerca de un cero llamado x0 y la precisión c, por teclado. Aplicando el Método de Newton para hallar las raíces de una función fp(x):

x i+1=x i−fp(x i)fp' (x i)

Presente una aproximación del cero hasta “c” cifras decimales, o el cero propiamente dicho llamado raiz, y el número de interacciones que realizó para alcanzar esta raíz, llamado iter. Si no se puede alcanzar el cero con la precisión pedida c, detenga el proceso en las 100.000 iteraciones.

4.5 Elabore un programa en MATLAB, con el nombre edo_lh2.m, tal que ingresando 3 números reales (A ,B ,C) resuelva la EDO Lineal Homogénea de 2º Orden (coeficientes constantes): A y ' '+B y '+Cy=0 , A , B ,C∈R . Tome en cuenta que las soluciones de la EDO pueden ser de 3 tipos, según se defina el discriminante de la Ecuación Característica: A λ2+Bλ+C=0.

LOS SIGUIENTES EJERCICIOS SON OPCIONALES:

Dada la función f(x) con varias reglas de correspondencia ingresar por teclado un valor x0 y luego presentar el correspondiente f(x0) indicar en que regla de correspondencia está.

Con la base de este ejemplo resuelva los siguientes ejercicios:

Dada la función f(x) con varias reglas de correspondencia ingresar por teclado un intervalo I=[a, b], tal que xεI y luego presentar el grafico de la función f(x) en I.

Elabore otro archivo, con el nombre est_fun_problemas.m, que usando estructuras de control y definición de funciones, resuelva los siguientes problemas:

Ingrese por teclado los coeficientes (a, b, c) de una función cuadrática f(x)=ax2+bx+c y un valor x0. Aplicando el concepto de límite defina una función derf que reciba los coeficientes y el punto (A, B, C, X0) y entregue la pendiente de la recta tangente (MT). Luego aplique a su programa principal la llamada a la función derf para mostrar la pendiente de la recta NORMAL (mN) y la recta TANGENTE (mT) en el punto P(x0, f(x0)).

Ing. Teddy Negrete Página 127

Aplicando el problema anterior presente un gráfico de la función f(x), la recta TANGENTE y la recta NORMAL en las cercanías del punto P(x0, f(x0)).Aplicando condiciones similares a los problemas anteriores ingrese una función polinómica fp(x) de hasta 7º grado y un valor x0 (es decir el punto P(x0, fp(x0))), defina la función derfp y presente un gráfico de la función fp(x), la recta TANGENTE y la recta NORMAL en las cercanías del punto P(x0, fp(x0)).

Elabore otro archivo, con el nombre arreglos_problemas.m, que usando arreglos, resuelva los siguientes ejercicios o problemas:Genere una matriz A, de 5x5 cuyos elementos son dígitos decimales del 0 – 9. Evalúe el polinomio p(x)=3x3–4x+5, muestre por pantalla A y p(A).Con el resultado anterior p(A), muestre cuántos elementos son CERO, y cuántos son NUEVE.Con el resultado anterior p(A), muestre la menor M(2,3).Con el resultado anterior p(A), muestre el cofactor (2,3).En el resultado anterior p(A), reemplace la fila 1 y la columna 4 con valores 10.

Elabore otro archivo, con el nombre arreglos_fun.m, elabore un simple ejemplo de las siguientes funciones y documente las líneas del ejemplo, o realice la ejecución y concluya en forma general por cada bloque:

Diseñe un programa que resuelva el problema del circuito RLC paralelo o serie sin fuentes. Ingresando R, L, C y valores iniciales iL(0), vC(0).

5ª SEMANA

2.3 Funciones con variables simbólicas en MATLAB.

Por asignatura:ALGEBRA LINEAL

CÁLCULO DIFERENCIAL

CÁLCULO INTEGRAL

CÁLCULO VECTORIAL

ECUACIONES DIFERENCIALES

MATEMATICAS AVANZADAS

Ing. Teddy Negrete Página 128

MÉTODOS NUMÉRICOS

2.4 GráficosGráficos en 2D (bidimensionales)Gráficos en 3D (tridimensionales)

EJERCICIOS PARA LOS TALLERES:

TALLER # 5

5.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m, que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:

5.2

6ª SEMANA

CAPÍTULO # 3. 3 SIMULINK

3.1 Características generales de SIMULINK

Simulink es una herramienta interactiva para modelar, simular, y analizar dinámicamente, sistemas del multidominio. (del tiempo, la frecuencia, la posición, la energía, etc.) Le permite con precisión describir, simular, evaluar, y definir el comportamiento de un sistema, a través de un bloque de bibliotecas tradicionales y normalizadas. Los modelos (*.mdl de Simulink) tienen acceso listo a MATLAB, proporcionándole un flexible funcionamiento y un extenso rango de herramientas de análisis y diseño.

En pocas palabras, es un simulador integrado al MATLAB, que tiene bibliotecas normalizadas que se aplican principalmente en Ingeniería.

Ing. Teddy Negrete Página 129

Figura No.1: Acceso al Simulink Library Browser

Desde el botón START, puede cargar SIMULINK, y lo primero que veremos es el explorador de las librerias para una amplia gama de áreas del conocimiento.

Simulink proporciona un entorno donde usted modela a su sistema físico y lo controla con un diagrama del bloque. Usted crea el diagrama del bloque usando el ratón para arrastrar y conectar los bloques y el teclado para editar y escribir parámetros del bloque.

Al dar un clic en el botón “Simulink” de la ventana principal de MATLAB obtenemos la ventana “Simulink Library Browser” que es el explorador de las Librerías de SIMULINK. Sin embargo podemos llegar al mismo explorador desde MATLAB ejecutando el comando simulink en el prompt de Command Window. Note que un resultado equivalente

Ing. Teddy Negrete Página 130

tendremos por el botón START, siguiendo la vía Start/Simulink/Library Browser.

Figura No.2: Librerías de Simulink

En la Figura No. 3 recordemos, el entorno gráfico de la ventana principal del programa Matlab desde donde se accede al programa Simulink de varias formas; en el menú ‘File’ (marcado en la figura como ‘Archivo’) se desprende un listado de opciones donde en la opción ‘New’ se debe elegir la sub-opción ‘Model ’, inmediatamente se abrirá otra ventana correspondiente a la Figura No. 4, la cual es la ventana principal del programa Simulink.

Figura No.3 Escritorio de MATLAB

Por otro lado también se puede acceder a dicho programa mediante la librería de Simulink seleccionando el icono marcado en la Figura No. 3 como ‘Librería de simulink’, se abre una ventana que corresponde a la Figura No. 4, y desde esa ventana se debe seleccionar el menú ‘Archivo’, la opción ‘New’ y sub-opción ‘Model ’, o bien pinchar directamente el icono que representa una página en blanco que se marca en la Figura No. 5 como ‘Nuevo modelo’.

Una vez que se llega al programa Simulink es importante tener claro cuales son las opciones más importantes para realizar correctamente las simulaciones.

La Figura No. 4 muestra la ventana principal de Simulink. En esta ventana se encuentra el icono marcado como ‘Librería de Simulink’. Haciendo clic en esta opción se abre la librería (Figura No. 5) donde se encuentran los bloques que permiten crear cualquier tipo de modelo o controlador que se desee simular.

También son importantes las opciones marcadas como ‘Activar simulación’, ‘Parar simulación’ y ‘Tiempo de simulación’ que permiten comenzar a simular cualquier archivo Simulinkr creado en esa misma ventana, parar esa simulación en cualquier momento o bien cambiar el tiempo que se desea simular correspondientemente.

Ing. Teddy Negrete Página 131

Figura No.4: Ventana principal de Simulink o Editor de Simulink.

Debe ser aclarado que simular un sistema significa resolver unas ecuaciones que describen un sistema real o un controlador durante un periodo de tiempo, por lo que el tiempo de simulación es el periodo total de tiempo para el cual el programa resuelve las ecuaciones, siendo por lo tanto un parámetro que debe ser elegido adecuadamente para poder analizar y representar correctamente los resultados simulados.

Por otro lado la opción marcada como ‘Parámetros de simulación’ en la Figura No. 4 abre una ventana más completa donde es posible configurar parámetros más avanzados y mejorar los resultados de las simulaciones. Los parámetros básicos de la configuración de las simulaciones serán explicados detalladamente en capítulos posteriores.

Las opciones marcadas como ‘Porcentaje simulación’ y ‘Método de integración’ informan durante la simulación del sistema, en concreto de cuanto porcentaje de la simulación ha sido realizada y el métodon de integración seleccionado previamente en las opciones de la simulación.

Ing. Teddy Negrete Página 132

Figura No.5: Explorador de Librerias de Simulink

LIBRERIAS DE SIMULINK

La Figura No. 5 muestra el Explorador de las librerías de Simulink donde se encuentran los bloques que se utilizan para crear los archivos de Simulink.

Como se ha comentado anteriormente desde esta librería se pueden abrir archivos Simulink y también crear nuevos archivos mediante las opciones marcadas como ‘Archivo’ y ‘Nuevo modelo’.

Cada uno de los bloques, algunos de los cuales serán detallados posteriormente, tienen referenciado un nombre para poder ser buscados de forma más rápida a través de la casilla marcada en la Figura No. 5 como ‘Búsqueda de bloques’, donde escribiendo el nombre y haciendo clic en el icono que representa unos binoculares se realiza la búsqueda del bloque que tenga el nombre especificado entre todos los ‘toolboxes’. Los resultados de la

Ing. Teddy Negrete Página 133

búsqueda se mostrarán en la sub-ventana marcada en la Figura No. 5 como ‘Listado bloques’.

En la sub-ventana marcada como ‘Libraries’ se encuentran listados todos los ‘toolboxes’, Cajas de Herramientas de Simulink disponibles para la versión instalada de Matlab. Si se hace clic en cada herramienta o ‘toolbox’ se desplegará en la sub-ventana ‘Listado de bloques’ los bloques que están dentro de ese ‘toolbox’ y que podrán ser utilizados para crear archivos de Simulink. Por último remarcar que la sub-ventana ‘Descripción de bloques’ describe los bloques que se marquen en la sub-ventana ‘Listado bloques’ y será de ayuda para entender el funcionamiento de estos mismos, describiendo la funcionalidad, las entradas y las salidas.

Las opciones ‘Help’ que aparecen en cada una de las ventanas descritas en este capítulo son de gran ayuda para profundizar en la programación de Simulink. Todas las ventanas mostradas en las figuras han sido obtenidas de la versión Matlab/Simulink 7.1, puede que difieran un poco con otras versiones pero la mayoría de las opciones pueden ser encontradas con la misma apariencia.

En Simulink se han clasificado los bloques de acuerdo con las definiciones tradicionales de las funciones y del tipo de variables que se van analizar o modelar. A continuación se presentan las Librerías de Simulink, que incluyen algunos bloques que estudiaremos y analizaremos en los siguientes ejemplos.

LIBRERIAS BLOQUES

SISTEMAS LINEALES EN EL TIEMPO CONTINUO

DERIVADORINTEGRADORFUNCIÓN DE TRANSFERENCIA

OPERACIONES MATEMÁTICASSUMAPRODUCTOFUNCIONES

FUENTES

CONSTANTEESCALONRAMPASINUSOIDAL

RUTAS DE SEÑALESMUX MANUALDEMULTIPLEXORMULTIPLEXOR

SUMIDERO (A LA SALIDA)ALCANCEPANTALLAAL WORKSPACE

Ing. Teddy Negrete Página 134

Figura No.6: Algunas Librerias de Simulink y sus correspondientes Bloques

1. Elabore otro archivo, con el nombre simulink_bloques.m, tal que documente la búsqueda (vía de la LIBRERÍA donde se encuentren) los siguientes BLOQUES de Simulink y haga una breve descripción 'Block Description' del mismo. Seleccione una sóla vía.

%BLOQUE: Resistor%VÍA: Simscape/Foundation Library/Electrical/Electrical Elemens%DESCRIPCIÓN:%BLOQUE: Flip Flop%VÍA: Simulink Extras/Flip Flops%DESCRIPCIÓN:%BLOQUE: QPSK%VÍA: Communications Blockset/Digital Baseband Modulations/PM%DESCRIPCIÓN:%BLOQUE: Histogram%VÍA: Signal Processing Blockset/Statistics%DESCRIPCIÓN:%BLOQUE: Gauss (Gaussian Filter)%VÍA: Communications Blockset/Comm Filters%DESCRIPCIÓN:%BLOQUE: FFT%VÍA: SimPowerSystems/Extra Library/Discrete Measuremensts%DESCRIPCIÓN:

Ing. Teddy Negrete Página 135

2. Elabore otro archivo, con el nombre simulink_bloques_parametro.m, tal que documente una breve descripción y al menos 2 propiedades 'Block Parameters' de uno de los bloques (a su elección, si hay más de un bloque) que se encuentra en la siguiente vía de la LIBRERÍA dada.

%1_Simulink/Continuous%Block Name%Block Parameters

%2_Simulink/Math Operations%Block Name%Block Parameters

%3_Simulink/Sinks%Block Name%Block Parameters

%4_Simulink/Sources %Block Name%Block Parameters

%5_Communications Blockset/Equalizers%Block Name%Block Parameters

%6_Signal Processing Blockset/Statistics%Block Name%Block Parameters

%7_SimPowerSystems/Machines%Block Name%Block Parameters

%8_SimPowerSystems/Power Electronics%Block Name%Block Parameters

%9_Simscape/SimElectronics/Sensors%Block Name%Block Parameters

%10_Simulink Extras/Transformations%Block Name%Block Parameters

3.2 Ejemplos de Simulaciones con SIMULINK

Ing. Teddy Negrete Página 136

EJERCICIOS PARA LOS TALLERES:

TALLER # 6

6.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m, que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:

7ª SEMANA

3.3 Ecuaciones Diferenciales3.4 Funciones de Transferencia

EJERCICIOS:Resolver la siguiente EDO: y' + 2y =3, si y(0)=0.En su cuaderno, si lo recuerda, resuelva esta ecuación.

Clasificación: Esta es una ecuación diferencial ordinaria lineal no homogénea de coeficientes constantes de primer orden, con condición inicial, se entiende que y(t=0)=0.

Solución: Matemáticamente la solución es y=yH+yP. Sabemos que se puede transformar la EDO Homogénea en Ecuación Algebraica, con la solución yH=cet así tenemos La solución particular de la ecuación no homogénea, utilizando el método de Coeficientes Indeterminados, por tener f(t)=3, es yP=a0. Entonces la solución general es:y = ce–2t + 3/2Con la condición inicial y(t=0)=0, obtenemos c = –3/2, por tanto la solución es: y = 3/2(1 – e–2t).

Solución: Desde MATLAB, podemos escribir las siguientes líneas:

3. Elabore otro archivo, con el nombre simulink_edo.m, ejecute y comente los resultados obtenidos.

%clcsyms y ty=dsolve('Dy=3-2*y, y(0)=0')%x=0:0.1:10yr=3/2-3/2.*exp(-2.*x)figure(1)

Ing. Teddy Negrete Página 137

plot(x,yr)title('EDO1')%Hemos usado variables SYMBOLICAS (sym), y la función principal “dsolve” que fueron revisadas y estudiadas en el capítulo de Programación Simbólica en MATLAB esto es “Solución simbólica de las ecuaciones del diferencial ordinarias.”

Solución: Desde SIMULINK podemos configurar el siguiente modelo.

4. Elabore en Simulink el archivo EDO1.mdl, siguiendo el procedimiento:

Abra el “Simulink Library Browser” puede elaborar un archivo, que por omisión se llama “untitled.mdl” que representará un modelo. En la barra de menús, de un clic en el menú File, arrastre a New y suelte el clic en Model, se abre la Ventana de Edición de archivos Model, esta ventana se llama “untitled”. El mismo efecto tendrá si aplica las teclas rápidas [Ctrl]+[N], si está activa la ventana del explorador de las Librerías de Simulink.

Figura No.3: Archivo nuevo en el Simulink Library Browser

Ing. Teddy Negrete Página 138

Figura No.4: Archivo nuevo en la Ventana de Edición “untitled”

En la Ventana de Edición llamada “untitled” guarde el archivo siguiendo con un clic en la barra de menús File/Save o File/SaveAs… (o su equivalente en teclas rápidas [Ctrl]+[S]), de aquí se abre una ventana de diálogo llamada “Save As” para guardar el archivo, (tipo Simulink Models, *.mdl) en el directorio actual, que es el directorio personal, nómbrelo como EDO1.mdl, en el campo Nombre de la ventana “Save As”, y luego pulse el botón Guardar.

Ubique a un costado de la pantalla “Simulink Library Browser” y en el otro la Ventana de Edición “EDO1”, a continuación debe identificar varios elementos u objetos que llamaremos bloques o “Blocks” los mismos que serán arrastrados desde las Librerías hasta la Ventana de Edición que es el archivo de su modelo que simulará o analizará dinámicamente más adelante.

Ing. Teddy Negrete Página 139

Figura No. 5: Configuración y conexión de bloques en un Modelo

DESCRICIÓN Y UBICACIÓN DE BLOQUES UTILIZADOS.

La siguiente tabla le guiará en la configuración del archivo EDO1.mdl que representará el modelo que encuentra la solución de la Ecuación Planteada como problema inicial.

ICONO BLOQUE LIBRERÍA BREVE DESCRIPCIÓN

1 Step Simulink/SourcesEl bloque STEP proporciona un paso entre dos niveles definibles en un momento especificado.

2 Integrator Simulink/ContinuousLa salida del bloque INTEGRATOR es la integral de su entrada al paso de tiempo continuo.

3 GainSimulink/Math Operations

El bloque GAIN multiplica la entrada por una constante (o escalar) llamada ganancia.

4 Scope Simulink/SinksEl bloque SCOPE muestra las señales de salida que son generadas en la simulación.

5 SumSimulink/Math Operations

La salida del bloque SUM permite obtener la suma de varias entradas.

El explorador de las Librerías de Simulink tiene un buscador de Bloques.

Ing. Teddy Negrete Página 140

Ubique los bloques y arrastre uno por uno a la ventana de edición de EDO1.mdl y luego conéctelos como se muestra en la Figura No. 5 y realice los siguientes ajustes.

En el bloque STEP, haga clic derecho a su icono, acceda la opción “Step Parameters…” y visualizará la ventana de configuración llamada “Source Block Parameters: Step” cambie los valores por omisión en los Parámetros: “Step time:” (“0” por “1 default”) y en “Final Value:” (“3” por “1 default”).

En el bloque GAIN, haga clic derecho a su icono, ejecute la opción “Format/Rotate Block” dos veces, luego con el clic derecho acceda la opción “Gain Parameters…” y visualizará la ventana de configuración llamada “Function Block Parameters: Gain” en la pestaña “Main” cambie los valores por omisión en la Ganancia: “Gain:” (“–2” por “1 default”).

En el bloque SCOPE, haga clic derecho al icono, y active la opción “Open Block” se activará una ventana gráfica llamada “Scope”, cuyas escalas y parámetros gráficos posteriormente serán modificados.

Líneas de unión, en realidad son “Flechas de Unión” (ya que expresan una dirección desde el Bloque Inicial al Bloque Final), y son trazadas desde la entrada del Bloque Final hacia la salida del Bloque Inicial, es decir al revés.

Al final cuando haya distribuido, conectado y configurado correctamente los bloques de su modelo, haga un clic en el botón GRABAR de la barra de comandos en la Ventana de Edición EDO1, y estará listo para modelar.

SIMULACIÓN EN SIMULINK.

Simular o modelar un archivo en Simulink es equivalente a la ejecución de un archivo tipo script en MATLAB. En la ventana de edición EDO1 inicie la simulación, siguiendo con un clic en la barra de meús “Simulation/Start” o su equivalente con las teclas rápidas [Ctrl]+[T].

Muy práctico resulta comenzar la simulación dando un clic en el botón con la forma de un botón de PLAY, llamado “Start simulation”.

Al empezar la simulación pareciera que no pasa nada, pero vamos a observar los resultados en la salida de SCOPE y los avisos o los errores que pueden aparecer en la ventana de comandos del MATLAB, observe y lea el siguiente aviso:

Warning: Using a default value of 0.2 for maximum step size. The simulation step size will be limited to be less than this value. You can disable this diagnostic by setting 'Automatic solver parameter selection' diagnostic to 'none' in the Diagnostics page of the configuration parameters dialog.

Este mensaje lo traducimos:

Ing. Teddy Negrete Página 141

Advertencia: Usando un valor predefinido de 0.2 para el tamaño de paso de máximo. El tamaño de paso de simulación será limitado cuando su valor sea menor que el indicado. Usted puede desactivar este diagnóstico configurando la opción de diálogo “Automatic solver parameter selection” a “none” en la página “Diagnósticos” de “Configuración de Parámetros”.

Esta “Configuration de Parameters” la puede hallar en la opción “Simulation” de la barra de menús de EDO1, o puede pulsar las teclas rápidas [Ctrl]+[E]

Figura No. 6: Configuración de Parámetros del modelo EDO1

Figura No. 7: Configuración de Parámetros del modelo EDO1. Diagnósticos

Ing. Teddy Negrete Página 142

Limpie la pantalla del MATLAB, ejecutando clc en el prompt. Finalmente simule otra vez su modelo del archivo EDO1, verifique la ausencia del mensaje.

5. Elabore en Simulink el archivo EDO2.mdl,

EJERCICIOS PARA LOS TALLERES:

TALLER # 7

7.1 Elabore un programa en MATLAB, con el nombre problemas_cf_fun.m, que usando las estructuras de CONTROL DE FLUJO y creando FUNCIONES DEFINIDAS POR EL USUARIO, resuelva los siguientes problemas:

Ing. Teddy Negrete Página 143