Você está na página 1de 5

Gua de ejercicios correspondiente a la practica 2 Mtodos Numricos y Programacin Digital.

Ciclo 01/2011

Introduccin terica Matlab, adems de las estructuras que ya se han estudiado (IF; FOR; WHILE), cuenta con una serie de sentencias o herramientas a travs de las cuales se puede desarrollar infinidad de aplicaciones numricas y de texto. En esta segunda prctica se desarrollaran las habilidades para el uso de programas externos, sentencia switch, manejo de variables de texto (strings) y evaluacin de funciones. Programas externos Cuando se programa una solucin demasiado grande para un problema determinado; a veces es necesario el uso de programas externos, esto no es ms que un m. file (programa) que se ha creado previamente y que ser de ayuda para realizar algn calculo a manera de sub rutina dentro del programa principal. Ejemplo: Se crea inicialmente un programa que realiza la suma de un conjunto cualesquiera de nmeros (positivos o negativos) y este ser el programa externo.
%Programa para sumar un conjunt de numeros function suma=sumatoria(x) n=length(x); suma=0; for k=1:1:n sumando=x(k); suma=suma+sumando; end

Posteriormente se presenta el siguiente programa, el cual realiza la suma de un conjunto de nmeros, pero separando los positivos (guardados en la variable y) de los negativos (guardados en la variable z).
function respuesta=suma_estable(x) N=length(x); m1=0; m2=0; for k=1:1:N if x(k)>=0 m1=m1+1; y(m1)=x(k); end if x(k)<0 m2=m2+1; z(m2)=-x(k); end

end positivos=sumatoria(y); negativos=sumatoria(z); respuesta=positivos-negativos;

En la parte sombreada en amarillo se observa que se ha llamado al programa sumatoria, se concluye entonces que para usar un programa dentro de otro siempre se debe definir la salida, que en este caso son las variables positivos y negativos; llamar al programa por el nombre con el cual se ha guardado en la computadora y colocar todos los datos de entrada que la sub rutina necesite para poder ejecutarse. NOTA: Tanto el programa externo como el programa principal deben estar en un mismo directorio para poder utilizarse (por ejemplo en la carpeta Matlab). Ejercicio 1 Dados dos nmeros complejos a + bi y c + di se definen su suma como: (a + bi ) + (c + di ) = (a + c) + (b + d)i En matlab al digitar A=3+2i, (el numero 2 y la letra i se escriben unidos) se est introduciendo un numero complejo en forma rectangular, la cual es la manera ms sencilla de realizar las operaciones de suma y resta de complejos. Elabore un programa en Matlab que realice la suma de dos nmeros complejos (A y B), pero si el usuario los introduce en forma polar A=[2 pi] donde le primer elemento del vector es la magnitud (r) y el segundo es el ngulo (). El programa debe pasar el nmero polar a rectangular, por medio de una sub rutina o programa externo. Definido un punto en coordenadas polares por su ngulo sobre el eje x, y su distancia r al centro de coordenadas, se tiene:

Con estas formulas genere la conversin de polar a rectangular. Las entradas del programa principal sern A y B (dos nmeros complejos, ya sea en forma rectangular o polar y la salida sern dos variables: x,y donde se guardara la parte entera y la parte imaginaria respectivamente del resultado de la suma. La subrutina se llamara pol2rec y la entrada ser un numero N(en coordenada polar) y la salida sern dos variables: x,y donde se guardara la parte entera y la parte imaginaria respectivamente.

Sentencia switch Esta sentencia que forma parte de la biblioteca de funciones que Matlab trae incorporadas; trabaja como un interruptor y permite elegir entre varios casos, y de acuerdo a cada caso realizar una accin determinada. Su sintaxis es la siguiente: SWITCH expresin CASE caso 1 Procedimiento, expresin, accin CASE {caso 2, caso 3, caso 4,...} Procedimiento, expresin, accin ... OTHERWISE, En otro caso, tomar una accin END Ejercicio 2 Crear un programa que pida una matriz cuadrada .Luego que presente el listado: * Digite: deter , para encontrar el determinante. * Digite: diag , para extraer la diagonal principal. * Digite: sum , para sumar cada fila y crear un vector. Segn la opcin que se a elegido se realizara la operacin correspondiente. Si el usuario no ingresa lo que se pide, se deber mostrar un mensaje con el texto: Debe ingresar una matriz cuadrada. Ejercicio 3 Crear un archivo.m que calcule las races de la ecuacin ax2+bx+c=0 teniendo en cuenta los siguientes casos: a)Si a=0 y b=0, se mostrar un mensaje diciendo que la ecuacin es degenerada. b)Si a= 0 y b 0, existe una raz nica cuyo valor es igual a -b/c. Mostrar el mensaje existe una raz nica , y calcular su valor mediante la expresin anteriormente mencionada. c)Si d> = 0, existen dos races reales. Calcularlas mediante la expresin: X1= , X2=

Si d< 0, no existen races reales. Mostrar en ese caso, un mensaje diciendo la ecuacin no tiene races reales y mostrar las dos races complejas.

Ejercicio 4 Elabore un programa que dada una funcin f respecto a una sola variable (f(x) por ejemplo) y un numero cualquiera (x); encuentre la derivada de la funcin evaluada en el punto x, o la integral de la funcin evaluada en el punto x. El usuario debe elegir entre los dos mtodos colocando como dato de entrada las palabras derivar o integrar y se debe mostrar la ecuacin de la derivada o de la integral segn el caso. La llamada del programa debe quedar de la siguiente forma:
function []=der_int(f,metodo,x)

Use la funcin switch para elegir entre los dos mtodos y los comandos diff para derivar e int para integrar. Para evaluar una funcin es necesario definir con respecto a que variable se desea hacer la sustitucin numrica, esto en Matlab se expresa de la siguiente forma F=@(x) ecuacin Para indicar que en la variable F se guardara una ecuacin en funcin de x, y se sustituir la x en caso se desee evaluar la ecuacin. SENTENCIAS DE MATLAB QUE SERAN DE UTILIDAD EN ESTA PRCTICA Diff(f) : derivacin simblica de una funcin Int(f): Integracin simblica de una funcin Char(A): Crea una matriz de caracteres (texto) Strcat(A,B): Concatena o une cadenas de texto str2func: Convierte una cadena de texto a funcin numrica syms: Define variables simblicas isreal(x): Devuelve como salida un 1 si x no tiene parte imaginaria, 0 en otro caso real(A): Extrae la parte real de un numero complejo imag(A): Extrae la parte imaginaria de un numero complejo det(M): Encuentra el determinante de una matriz diag(M): Encuentra la diagonal de una matriz cuadrada

Nota: para cualquier duda existente en el uso de una sentencia de Matlab, se puede digitar en la ventana de comandos lo siguiente: >> help sentencia Y el programa brindar una descripcin de cmo usar el comando y su sintaxis. Ejemplo

>>Help det DET Determinant. DET(X) is the determinant of the square matrix X. Use COND instead of DET to test for matrix singularity. See also cond. Overloaded methods: sym/det gf/det laurmat/det Reference page in Help browser doc det

Você também pode gostar