INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ

Ingeniería Eléctrica

Métodos Numéricos
MC. Mario Alberto de la Cruz Padilla

MÉTODO DE LA FALSA POSICION CON MATLAB
Manual del usuario
Por: Beltrán Gutiérrez Julio Sinuhé Jiménez Morales Rodolfo Lara Jiménez José David Robles González Antonio de Jesús Sánchez Alegría Avisaí.

Tuxtla Gutiérrez, Chiapas; a 04 de Marzo de 2011.

Se realizó un programa en MATLAB que nos permitirá conocer la raíz de una ecuación no lineal empleando el método de la falsa posición. . Al iniciar.CÁLCULO DE LA RAÍZ DE UNA ECUACIÓN POR EL MÉTODO DE LA FALSA POSICION USANDO MATLAB. el programa nos pedirá introducir una ecuación no lineal en función de la variable x. Escribimos la ecuación y presionamos ENTER.

. Será necesario detectar un punto de corte de la gráfica en el eje “x” (visualizar una posible raíz).Después de esto se mostrara en pantalla la gráfica de dicha función.

se solicitará un valor al lado izquierdo del punto de corte.En seguida. .

Posteriormente le solicitara un valor a la derecha del punto de corte. . efectivamente haya una raíz. La grafica es necesaria para así tener la certeza de que entre medio de los puntos dados.

y tecleando 2 se calculará por cierto número de iteraciones. esto para detener el proceso de cálculo de la raíz. ya sea al alcanzar un porcentaje de error o por el número de iteraciones que el usuario desee. . Deberá elegir una de estas dos opciones: Al teclear 1 la raíz se aproximará por cierto porcentaje de error.En seguida se mostrara un menú con dos opciones.

.Si se elige la opción 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 cálculos realizados por este método y debajo de ésta una aproximación de la raíz.

para después despliega una tabla y muestra una aproximación. . Usted ingresa el numero deseado le da ENTER y el programa lleva a cabo el proceso.Si se elige la opción 2 el programa solicitara el número de iteraciones que desea realizar para obtener la raíz.

el programa solicitará que se elija una opción: si desea calcular la raíz de otra ecuación debe elegir la opción 1. de lo contrario elegir 2 para salir y regresar a la pantalla de comandos. .Al final del proceso.

la diferencia está en que este comando tiene mas posibilidades de visualización gráfica. ezplot(f): Grafica la función(simbólica) que se escribe dentro de los paréntesis.etc: Sirve para que Matlab reconozca a las letras como variables(símbolos). . swith: Instrucción de programación. fprintf(‘Hola mundo’): Es parecido al comando disp. syms x. . . su sintaxis es la siguiente. sirve para hacer una estructura selectiva múltiple. eval(f): Evalúa la función que se escribe dentro de los paréntesis.y. input(´Dame un valor’): Este comando se utiliza para pedir al usuario un dato de entrada. otherwise: // Opcional // Bloque de instrucciones N+1 • • • • • • .z. switch ( variable ) case constante1 : // Bloque de instrucciones 1 break. case constanteN : //Bloque de instrucciones N break. además permite visualizar el texto que se escribe dentro de los apóstrofes. case constante2 : // Bloque de instrucciones 2 break.COMANDOS UTILIZADOS EN LA PROGRAMACION • disp(‘Hola mundo’): Permite al usuario visualizar el texto o datos de un programa que se escriben entre los apóstrofes.

if expresión condicional Acciones si la expresión resulta ser verdadera. lógica o aritmética) y ejecuta instrucción(es) si la condición se cumple o no. while condición // Proceso(s). else Acciones si la expresión resulta ser falsa. es utilizada para ejecutar un bloque de sentencias un número fijo de veces. que es igual a valor final menos el valor inicial dividido (ambos) entre el incremento. Se estructura es la siguiente. La sintaxis de su construcción es la siguiente.end • if-else: Instrucción de programación. end • for: instrucción de programación. evalúa una condición (expresión). end • while: Instrucción de programación. entonces ejecuta el o los procesos nuevamente (y así sucesivamente mientras que sea verdadera).} clear all: Borra la memoria de matlab. . en caso contrario. evalúa una condición (expresión condicional. end • • clc: Limpia la pantalla de comandos de matlab. for declaración o iniciación de la(s) variable(s) : condición(es): incremento(s) // Proceso(s). Su estructura de programación es la siguiente. si esta es verdadera (diferente de cero). se da por terminado el proceso iterativo.

y lógicamente un proceso donde la nueva fa sea igual a fr. porque sabemos que si el producto de f(xb)*f(xr)<0 la raíz se encuentra en [xr. es decir et deja de ser 100. ó si el producto de f(xb)*f(xr)>0 la raíz se encuentra en el intervalo [xa. después calculamos un nuevo error. hasta aquí fb y xb sigue siendo las mismas.• close all: Cierra todas las ventanas secundarias que se abren durante un proceso tales como la de traficación. después igualamos a x para poder evaluarla. Si no se encuentra en esta condición entonces hacemos un proceso para que la nueva xb tenga el valor de xr. calculamos xr(x falsa). Seguimos con la condición while et>e. si se encuentra en la primera condición hacemos un proceso para que la nueva xa valga xr. y así completamos la primera iteración. esto es suficiente para calcular la nueva xr y completar esta iteración. Dentro de esta condición. lo mismo sucede con xb. Después asignamos un valor de uno a fm igual a cero para que en el primer cálculo del error sea 100%. esto es porque el máximo porcentaje de error entrada e permitido es de 100 y principalmente para que el proceso continúe o no. porque este método (falsa posición) permite hacerlo de esa manera. xa es el punto de corte hacia la izquierda y xb el de la derecha después hacemos un proceso en el xa se igual a x y le pedimos a matlab que evalué la función respecto a ese valor. Ahora para nuevos valores de xa y xb en la siguiente iteración utilizamos una condición if. Para el primer caso (porcentaje de error deseado). es decir el usuario elige que tan cerca o lejos quiere llegar al resultado. LÓGICA UTILIZADA EN LA PROGRAMACIÓN Utilizamos el comando de programación switch para hacer un menú de opciones en el cual nos dé la opción de detener el proceso ya sea por un porcentaje de error deseado o por un determinado número de iteraciones. Esta es la parte fundamental del programa.xb]. .xr]. lógicamente no es necesario calcular la nueva fb porque si xb tomará el valor xr la evaluación de fb será la misma fxr. a esa evaluación la llamamos fr. lo mismo sucede con la siguiente iteración si se cumple la condición hasta que et (error de iteración) se mayor que la proporcionada por el usuario e. . lo mismo sucede con la condición anterior. donde al principio de esta ciclo et tiene un valor de 100.

opcion=input('\n\nIntroduzca 1 ó 2: ').'s'). y lo que sigue. También para comodidad del usuario. et=abs((fr-fm)/fr)*100.xb. switch opcion. fprintf('\nSe generó la gráfica de la función. f(xa). . grid on. fa=eval(f). utilizamos los comandos fprintf y disp para mostrar una tabla en pantalla los valores de xa. case 1 e=input('\nPorcentaje de error deseado: ').xa. fprintf('\n Iteración xa xr xb f(xa) f(xr) f(xb) Error \n\n'). x=xb.. en lugar de un ciclo while utilizamos una condición for para para que realice el proceso desde ni (numero de iteraciones)=0 hasta n(numero de iteraciones proporcionada por el usuario). f(xr). xa=input('Deme un valor a la izquierda del punto de corte: '). revísela\n'). fprintf('\n\nDesea detener el proceso.et]) if fb*fr<0 xa=xr.fb. '). CÓDIGO DE PROGRAMACIÓN EN MATLAB: fprintf('\nCÁLCULO DE LA RAÍZ DE UNA ECUACIÓN NO LINEAL POR EL MÉTODO DE LA FALSA POSICION\n\n'). fprintf('\n ::::::::::::::: TABLA ::::::::::::::: \n'). Como en el proceso didáctico de la utilización de este método se forma una tabla. xb=input('\nDeme un valor a la derecha del punto de corte: '). xr(x falsa). x=xa.. fm=0.fa. else xb=xr. fprintf('\n 2 Por el número de iteraciones'). graficamos la función con el comando ezplot. x=xr. et=100. fa=fr.xb. syms x. fprintf('\n::: Visualice un punto de corte de la gráfica de la función con el eje x :::\n\n'). f=input('Escriba la Función f(x)= '.fr. los cálculos de xr se hacen como en el caso anterior. f(xb) y et(error).xr. fr=eval(f). ezplot(f). fprintf('\n\n 1 Al alcanzar cierto porcentaje de error'). ni=0. xr=xb-fb*(xb-xa)/(fb-fa).El segundo caso (por numero de iteraciones). fb=eval(f). en elegir los puntos xa y xb. while et>e. disp([ni.

si(1) no(2):'). end . disp([ni. end if et<e fprintf('\n>>> La raíz aproximada es: \n'). end fm=fr. VUELVA A CORRER EL PROGRAMA!!!\n\n'). clear all. et=abs((fr-fm)/fr)*100. close all. x=xr. fa=fr. clc. fm=fr.fb. else clc. fprintf(' x= %d\n\n'. if ni==n fprintf('\n>>> La raíz aproximada es: \n').xb. fprintf('\n Iteración xa xr xb f(xa) f(xr) f(xb) Error \n\n'). clear all.xr) break end end m=input('Desea calcular la raiz de otra ecuación.fa. clear all close all. fprintf(' x= %d\n\n'. FALSAPOSICION. for ni=0:n xr=xb-fb*(xb-xa)/(fb-fa).end fb=fr. fb=fr. clear all close all.fr.et]) if fb*fr<0 xa=xr. if(m==1). m=input('Desea calcular la raiz de otra ecuación.xa. clc. break end case 2 n=input('\nNumero de iteraciones a realizar: ') fprintf('\n ::::::::::::::: TABLA ::::::::::::::: \n'). if(m==1). FALSAPOSICION else clc. close all. fr=eval(f).xr) end ni=ni+1.xr. else xb=xr. break end otherwise fprintf ('\n\nOpción no válida. si(1) no(2):').

Sign up to vote on this title
UsefulNot useful