Escolar Documentos
Profissional Documentos
Cultura Documentos
Ingeniera Elctrica
Mtodos Numricos
MC. Mario Alberto de la Cruz Padilla
CLCULO DE LA RAZ DE UNA ECUACIN POR EL MTODO DE LA FALSA POSICION USANDO MATLAB.
Se realiz un programa en MATLAB que nos permitir conocer la raz de una ecuacin no lineal empleando el mtodo de la falsa posicin. Al iniciar, el programa nos pedir introducir una ecuacin no lineal en funcin de la variable x. Escribimos la ecuacin y presionamos ENTER.
Despus de esto se mostrara en pantalla la grfica de dicha funcin. Ser necesario detectar un punto de corte de la grfica en el eje x (visualizar una posible raz).
Posteriormente le solicitara un valor a la derecha del punto de corte. La grafica es necesaria para as tener la certeza de que entre medio de los puntos dados, efectivamente haya una raz.
En seguida se mostrara un men con dos opciones, esto para detener el proceso de clculo de la raz, ya sea al alcanzar un porcentaje de error o por el nmero de iteraciones que el usuario desee.
Deber elegir una de estas dos opciones: Al teclear 1 la raz se aproximar por cierto porcentaje de error, y tecleando 2 se calcular por cierto nmero de iteraciones.
Si se elige la opcin 1 el programa le pedir introducir un porcentaje de error deseado. Al llegar a este porcentaje el programa detendr las operaciones y mostrara en pantalla una tabla de los clculos realizados por este mtodo y debajo de sta una aproximacin de la raz.
Si se elige la opcin 2 el programa solicitara el nmero de iteraciones que desea realizar para obtener la raz. Usted ingresa el numero deseado le da ENTER y el programa lleva a cabo el proceso, para despus despliega una tabla y muestra una aproximacin.
Al final del proceso, el programa solicitar que se elija una opcin: si desea calcular la raz de otra ecuacin debe elegir la opcin 1, de lo contrario elegir 2 para salir y regresar a la pantalla de comandos.
disp(Hola mundo): Permite al usuario visualizar el texto o datos de un programa que se escriben entre los apstrofes. fprintf(Hola mundo): Es parecido al comando disp, la diferencia est en que este comando tiene mas posibilidades de visualizacin grfica. input(Dame un valor): Este comando se utiliza para pedir al usuario un dato de entrada, adems permite visualizar el texto que se escribe dentro de los apstrofes. syms x,y,z,etc: Sirve para que Matlab reconozca a las letras como variables(smbolos). ezplot(f): Grafica la funcin(simblica) que se escribe dentro de los parntesis. eval(f): Evala la funcin que se escribe dentro de los parntesis. swith: Instruccin de programacin, sirve para hacer una estructura selectiva mltiple, su sintaxis es la siguiente, switch ( variable ) case constante1 : // Bloque de instrucciones 1 break; case constante2 : // Bloque de instrucciones 2 break; . . . case constanteN : //Bloque de instrucciones N break; otherwise: // Opcional // Bloque de instrucciones N+1
end
if-else: Instruccin de programacin, evala una condicin (expresin condicional, lgica o aritmtica) y ejecuta instruccin(es) si la condicin se cumple o no. Su estructura de programacin es la siguiente, if expresin condicional Acciones si la expresin resulta ser verdadera; else Acciones si la expresin resulta ser falsa; end
for: instruccin de programacin, es utilizada para ejecutar un bloque de sentencias un nmero fijo de veces, que es igual a valor final menos el valor inicial dividido (ambos) entre el incremento. La sintaxis de su construccin es la siguiente, for declaracin o iniciacin de la(s) variable(s) : condicin(es): incremento(s) // Proceso(s); end
while: Instruccin de programacin, evala una condicin (expresin), si esta es verdadera (diferente de cero), entonces ejecuta el o los procesos nuevamente (y as sucesivamente mientras que sea verdadera), en caso contrario, se da por terminado el proceso iterativo. Se estructura es la siguiente, while condicin // Proceso(s); end
clc: Limpia la pantalla de comandos de matlab.} clear all: Borra la memoria de matlab.
close all: Cierra todas las ventanas secundarias que se abren durante un proceso tales como la de traficacin.
El segundo caso (por numero de iteraciones), en lugar de un ciclo while utilizamos una condicin for para para que realice el proceso desde ni (numero de iteraciones)=0 hasta n(numero de iteraciones proporcionada por el usuario), y lo que sigue, los clculos de xr se hacen como en el caso anterior. Como en el proceso didctico de la utilizacin de este mtodo se forma una tabla, utilizamos los comandos fprintf y disp para mostrar una tabla en pantalla los valores de xa, xr(x falsa),xb, f(xa), f(xr), f(xb) y et(error). Tambin para comodidad del usuario, en elegir los puntos xa y xb, graficamos la funcin con el comando ezplot.
end
fb=fr; end if et<e fprintf('\n>>> La raz aproximada es: \n'); fprintf(' x= %d\n\n',xr) end ni=ni+1; fm=fr; m=input('Desea calcular la raiz de otra ecuacin, si(1) no(2):'); if(m==1); clc; clear all; close all; FALSAPOSICION; else clc; clear all close all; break end
case 2 n=input('\nNumero de iteraciones a realizar: ') fprintf('\n ::::::::::::::: TABLA ::::::::::::::: \n'); fprintf('\n Iteracin xa xr xb f(xa) f(xr) f(xb) Error \n\n'); for ni=0:n xr=xb-fb*(xb-xa)/(fb-fa); x=xr; fr=eval(f); et=abs((fr-fm)/fr)*100; disp([ni,xa,xr,xb,fa,fr,fb,et]) if fb*fr<0 xa=xr; fa=fr; else xb=xr; fb=fr; end fm=fr; if ni==n fprintf('\n>>> La raz aproximada es: \n'); fprintf(' x= %d\n\n',xr) break end end m=input('Desea calcular la raiz de otra ecuacin, si(1) no(2):'); if(m==1); clc; clear all; close all; FALSAPOSICION else clc; clear all close all; break end otherwise fprintf ('\n\nOpcin no vlida, VUELVA A CORRER EL PROGRAMA!!!\n\n'); end