Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Regla Falsa Métodos Numéricos, Ejercicios de Métodos Numéricos

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

2021/2022

Subido el 16/02/2022

sarai-janeth-martinez-ortega
sarai-janeth-martinez-ortega 🇲🇽

1 documento

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
REGLA FALSA
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 x0
fx1=funcion(x1); %Aqui se evalua la funcion en x1
if fx1==0 %Si al evaluar la funcion en x1 da 0 entonces indica que la raiz es x1
fprintf('La raiz es : %g \n',x1);
else
if fx0==0
fprintf('La raiz es : %g \n',x0); %Si al evaluar la funcion en x0 da 0 entonces indica que la
raiz es x0
else
if fx0*fx1<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 x2
fx1=fx2; %Como las variables son iguales. Las respectivas funciones también lo
seran
pf2

Vista previa parcial del texto

¡Descarga Regla Falsa Métodos Numéricos y más Ejercicios en PDF de Métodos Numéricos solo en Docsity!

REGLA FALSA

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