

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
En cálculo numérico, el método de la regula falsi o falsa posición es un método iterativo de resolución numérica de ecuaciones no lineales. El método combina el método de bisección y el método de la secante.
Tipo: Ejercicios
1 / 2
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


clc clear clear all format long ingresefuncion=input('ingrese la funcion: ', 's'); %Aqui el usuario debe ingresar la funcion para calcularle la raiz x0=input('ingrese el primer valor inicial: '); %Se debe ingresar la primera aproximacion x1=input('ingrese el segundo valor inicial: '); %Se debe ingresar la segunda aproximacion tol=input('ingrese la tolerancia deseada: '); %Se debe ingresar la tolerancia deseada por el usuario iter=input('ingrese el numero de iteraciones: '); %Se debe ingresar el maximo numero de iteraciones a realizar funcion=inline(ingresefuncion); %Aqui se convierte la funcion en una serie de caracteres para poder evaluar valores fx0=funcion(x0); %Aqui se evalua la funcion en x fx1=funcion(x1); %Aqui se evalua la funcion en x if fx1==0 %Si al evaluar la funcion en x1 da 0 entonces indica que la raiz es x fprintf('La raiz es : %g \n',x1); else if fx0== fprintf('La raiz es : %g \n',x0); %Si al evaluar la funcion en x0 da 0 entonces indica que la raiz es x else if fx0fx1<0 %Si la funcion en x0 y x1 tiene cambio de signo entonces se utiliza este intervalo x2= x0-((fx0(x1-x0))/(fx1-fx0)); %Encuentra el valor del punto medio fx2=funcion(x2); %Evalua la funcion en el punto medio encontrado i=1; %Se inicia el contador error=tol+1; %Se inicia el error while error>tol && fx2~=0 && i<=iter %Mientras el error sea mayor a la tolerancia, fxm diferente de 0 y la iteracion actual sea menor o igual a iter, evalue las siguientes condiciones if fx0*fx2<0 %Si la funcion evaluada en a y xm cambia de signo entonces hacer limite superior xm y evalue la funcion x1=x2; %Se iguala x1 con x fx1=fx2; %Como las variables son iguales. Las respectivas funciones también lo seran
else %Sino esto quiere decir que la raiz se encuentra en el otro intervalo x0=x2; %Igualo x0 a x fx0=fx2; %Como las variables son iguales. Las respectivas funcions también lo seran end xaux=x2; x2=x0-((fx0*(x1-x0))/(fx1-fx0)); %Encuentra el valor medio del intervalo fx2=funcion(x2); %Evalua la funcion en el punto medio encontrado error=abs(x2-xaux); %Se compara el error con la tolerancia i=i+1; %Incrementa el numero de iteraciones tabla(i,1)=i; %En la columna 1 se muestra el numero de iteraciones tabla(i,2)=x2; %En la columna 2 se muestra tabla(i,3)=fx2; %En la columna 3 se muestra tabla(i,4)=error; %En la columna 4 se muestra el error absoluto end if fx2== fprintf('La raiz es : %g \n',x2); %Si al evaluar la funcion en xm da 0 entonces indica que la raiz es xm else if error<tol %N se encontro la raiz pero se llego a una aproximacion a esta con un error menor a la tolerancia fprintf('La aproximacion a la raiz es : %g con un error de: %g \n ',x2,error); else %El numero maximo de iteraciones que ingreso el usuario, no son suficientes para encontrar la raiz fprintf('El numero de iteraciones ingresadas no fue suficiente: \n '); end end else %Ls valores ingresados estan errados, vuelva a dar un nuevo intervalo fprintf('El intervalo ingresado es indaecuado: \n '); end end disp(tabla); %Muestra la tabla end