Skip to content
Snippets Groups Projects
Commit 97cbe54c authored by Jhoam Alberto Pitre Gamez's avatar Jhoam Alberto Pitre Gamez
Browse files

Upload New File

parent be2ee2fc
No related branches found
No related tags found
No related merge requests found
function newtonRaphson2Vars()
% Solicitar las funciones al usuario en formato de string
f1_str = input('Ingrese la función f1(x, y): ', 's');
f2_str = input('Ingrese la función f2(x, y): ', 's');
f1 = str2func(['@(x, y) ', f1_str]);
f2 = str2func(['@(x, y) ', f2_str]);
% Solicitar los valores iniciales para x y y
x0 = input('Ingrese el valor inicial para x: ');
y0 = input('Ingrese el valor inicial para y: ');
% Solicitar la tolerancia en porcentaje
tol_perc = input('Ingrese la tolerancia en porcentaje: ');
tol = tol_perc / 100;
% Derivadas parciales de las funciones
syms x y;
df1_dx_sym = diff(f1(x, y), x);
df1_dy_sym = diff(f1(x, y), y);
df2_dx_sym = diff(f2(x, y), x);
df2_dy_sym = diff(f2(x, y), y);
% Convertir derivadas parciales a funciones anónimas
df1_dx = matlabFunction(df1_dx_sym, 'Vars', [x, y]);
df1_dy = matlabFunction(df1_dy_sym, 'Vars', [x, y]);
df2_dx = matlabFunction(df2_dx_sym, 'Vars', [x, y]);
df2_dy = matlabFunction(df2_dy_sym, 'Vars', [x, y]);
% Inicializar variables
iter = 0;
error = inf;
while error > tol
iter = iter + 1;
% Evaluar las funciones y sus derivadas en el punto actual
J = [df1_dx(x0, y0), df1_dy(x0, y0);
df2_dx(x0, y0), df2_dy(x0, y0)];
F = [f1(x0, y0); f2(x0, y0)];
% Calcular el nuevo punto usando el método de Newton-Raphson
delta = -J \ F;
x1 = x0 + delta(1);
y1 = y0 + delta(2);
% Calcular el error relativo
error = norm(delta) / norm([x1; y1]);
% Actualizar el punto
x0 = x1;
y0 = y1;
end
% Mostrar resultados
fprintf('Las raíces son: x = %f, y = %f\n', x1, y1);
fprintf('Número de iteraciones: %d\n', iter);
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment