1. clc
clear all
% Función para truncar a n decimales
function val = truncate(val, n)
factor = 10^n;
val = floor(val * factor) / factor;
end
disp('Método de Newton-Raphson para la función f(x) = 3*sin(x) + exp(-x) -
2')
% Definir la función f(x) y su derivada f'(x)
f = @(x) 3*sin(x) + exp(-x) - 2;
df = @(x) 3*cos(x) - exp(-x);
% Valor inicial
xi = -1.5;
error = 0; % Inicializar el error
max_iter = 7; % Número fijo de iteraciones
% Impresión del encabezado de la tabla
fprintf('It.t xitt f(xi)tt f''(xi)tt xrtt Errorn');
% Bucle del método de Newton-Raphson
for iter = 1:max_iter
fxi = f(xi);
dfxi = df(xi);
xr = xi - fxi / dfxi;
% Truncar a 4 decimales antes de imprimir
xi = truncate(xi, 4);
fxi = truncate(fxi, 4);
dfxi = truncate(dfxi, 4);
xr = truncate(xr, 4);
if iter > 1 % El error se calcula a partir de la segunda iteración
error = abs(truncate((xr - prev_xr)/xr, 9)); % Ahora el error se trunca a 9
decimales
end
fprintf('%2dt %10.4ft %10.4ft %10.4ft %10.4ft %.9fn', iter, xi, fxi,
dfxi, xr, error); % Actualizar el formato de impresión para mostrar 9
decimales en el error
prev_xr = xr; % Guardar el valor actual de xr para calcular el error en la
siguiente iteración
xi = xr; % Actualizar xi para la siguiente iteración
end
% Comprobar si se encontró una solución
disp('La raíz aproximada después de 7 iteraciones por el método de Newton-
Raphson es:')
disp(truncate(xr, 4)) % Truncar la raíz final a 4 decimales
% Graficar la función y la aproximación de la raíz
x = linspace(-2, -1, 100);
plot(x, f(x))
hold on
plot(xi, f(xi), 'ro') % Punto inicial
plot(xr, f(xr), 'go') % Aproximación de la raíz
title('Método de Newton-Raphson para f(x) = 3*sin(x) + exp(-x) - 2')
xlabel('x')
2. ylabel('f(x)')
grid on
legend('f(x)', 'Punto inicial', 'Aproximación de la raíz')
hold off
clc
clear all
disp('Método de la Regla Falsa')
% Definir la función f(x)
f = @(x) x.^3 - x - 1;
% Valores iniciales
a = 1;
b = 2;
error = 1; % Inicializar el error con un valor mayor que tol
prev_xr = 0; % Inicializar prev_xr
max_iter = 7; % Número fijo de iteraciones
tol = 1e-4; % Tolerancia del error
% Impresión del encabezado de la tabla
fprintf('It.t att f(a)tt btt f(b)tt xrtt f(xr)tt Errorn');
% Bucle del método de la Regla Falsa
for iter = 1:max_iter
fa = f(a);
fb = f(b);
xr = (a * fb - b * fa) / (fb - fa); % Cálculo de xr
fxr = f(xr);
% Truncar a 4 decimales antes de imprimir
a = truncate(a, 4);
fa = truncate(fa, 4);
b = truncate(b, 4);
fb = truncate(fb, 4);
xr = truncate(xr, 4);
fxr = truncate(fxr, 4);
if iter > 1 % El error se calcula a partir de la segunda iteración
error = abs(truncate(xr - prev_xr, 4));
end
fprintf('%2dt %10.4ft %10.4ft %10.4ft %10.4ft %10.4ft %10.4ft %10.4f
n', iter, a, fa, b, fb, xr, fxr, error);
if fa * fxr < 0
b = xr;
else
a = xr;
end
if error < tol
break;
end
prev_xr = xr; % Guardar el valor actual de xr para calcular el error en la
siguiente iteración
end
% Comprobar si se encontró una solución
disp('La raíz aproximada después de las iteraciones por el método de la
Regla Falsa es:')
disp(truncate(xr, 4)) % Truncar la raíz final a 4 decimales
% Graficar la función y la aproximación de la raíz
x = linspace(0, 3, 100);
plot(x, f(x))
hold on
plot(a, f(a), 'ro') % Punto a
3. plot(b, f(b), 'bo') % Punto b
plot(xr, f(xr), 'go') % Aproximación de la raíz
title('Método de la Regla Falsa')
xlabel('x')
ylabel('f(x)')
grid on
legend('f(x)', 'Punto a', 'Punto b', 'Aproximación de la raíz')
hold off
% Función para truncar a n decimales
function val = truncate(val, n)
factor = 10^n;
val = floor(val * factor) / factor;
end
clc
clear all
disp('Metodo De La Biseccion')
vi = -1;
vf = 0;
f = @(x) x.^4 + x.^3 - 7*x.^2 - x + 5;
i = 1;
a(i) = vi;
b(i) = vf;
n(i) = 1;
xr(i) = (vi + vf) / 2;
fa(i) = f(vi);
fb(i) = f(vf);
fxr(i) = f(xr(i));
if ((fa(i) * fb(i)) > 0)
error('No Se Cumple El Teorema De Bolzano');
end
fprintf('It. a b xr f(a) f(b) f(xr) fa*fxr ern');
for i = 1:10
n(i) = i;
if fa(i) * fxr(i) < 0
a(i + 1) = a(i);
b(i + 1) = xr(i);
prod{i} = '-';
else
a(i + 1) = xr(i);
b(i + 1) = b(i);
prod{i} = '+';
end
if i == 1
err(i) = 0;
else
err(i) = abs((xr(i) - xr(i - 1)) / xr(i));
end
fprintf('%2dt %10.6ft %10.6ft %10.6ft %10.6ft %10.6ft %10.6ft %st %
10.6fn', n(i), a(i), b(i), xr(i), fa(i), fb(i), fxr(i), prod{i}, err(i));
xr(i + 1) = (a(i + 1) + b(i + 1)) / 2;
fa(i + 1) = f(a(i + 1));
fb(i + 1) = f(b(i + 1));
4. fxr(i + 1) = f(xr(i + 1));
end
x = -1:0.1:0;
plot(x, f(x))
hold on
plot(xr, fxr)
clc
clear all
disp('Método de Newton-Raphson')
% Función para truncar a n decimales
function val = truncate(val, n)
factor = 10^n;
val = floor(val * factor) / factor;
end
% Definir la función f(x), su derivada f'(x) y su segunda derivada f''(x)
f = @(x) x.^3 - x.^2 - x + 1;
df = @(x) 3*x.^2 - 2*x - 1;
ddf = @(x) 6*x - 2;
% Valor inicial
xi = 0.9;
error = 0; % Inicializar el error
max_iter = 100; % Número fijo de iteraciones
% Impresión del encabezado de la tabla
fprintf('It.t xitt f(xi)tt f''(xi)tt f''''(xi)tt xrtt Errorn');
% Bucle del método de Newton-Raphson
for iter = 1:max_iter
fxi = f(xi);
dfxi = df(xi);
ddfxi = ddf(xi);
xr = xi - (fxi * dfxi) / (dfxi^2 - fxi * ddfxi);
% Truncar a 4 decimales antes de imprimir
xi = truncate(xi, 4);
fxi = truncate(fxi, 4);
dfxi = truncate(dfxi, 4);
ddfxi = truncate(ddfxi, 4);
xr = truncate(xr, 4);
if iter > 1 % El error se calcula a partir de la segunda iteración
error = abs(truncate(xr - prev_xr, 4));
end
fprintf('%2dt %10.4ft %10.4ft %10.4ft %10.4ft %10.4ft %10.4fn', iter,
xi, fxi, dfxi, ddfxi, xr, error);
prev_xr = xr; % Guardar el valor actual de xr para calcular el error en la
siguiente iteración
xi = xr; % Actualizar xi para la siguiente iteración
end
% Comprobar si se encontró una solución
disp('La raíz aproximada después de 7 iteraciones por el método de Newton-
Raphson es:')
disp(truncate(xr, 4)) % Truncar la raíz final a 4 decimales
5. % Graficar la función y la aproximación de la raíz
x = linspace(-2, 2, 100);
plot(x, f(x))
hold on
plot(xi, f(xi), 'ro') % Punto inicial
plot(xr, f(xr), 'go') % Aproximación de la raíz
title('Método de Newton-Raphson')
xlabel('x')
ylabel('f(x)')
grid on
legend('f(x)', 'Punto inicial', 'Aproximación de la raíz')
hold off