static double F1(double x, double y)
return 4 - Math.Pow(y, 3) - x * x;
static double F2(double x, double y)
return 1 - Math.Exp(x) - 3 * y;
static double dF1_dx(double x, double y)
static double dF1_dy(double x, double y)
return -3 * Math.Pow(y, 2);
static double dF2_dx(double x, double y)
static double dF2_dy(double x, double y)
static void NewtonRaphson(double x0, double y0, double error)
deltaX = (-F1(x, y) * dF2_dy(x, y) + F2(x, y) * dF1_dy(x, y)) /
(dF1_dx(x, y) * dF2_dy(x, y) - dF2_dx(x, y) * dF1_dy(x, y));
deltaY = (-F2(x, y) * dF1_dx(x, y) + F1(x, y) * dF2_dx(x, y)) /
(dF1_dx(x, y) * dF2_dy(x, y) - dF2_dx(x, y) * dF1_dy(x, y));
} while (Math.Abs(deltaX) > error && Math.Abs(deltaY) > error);
Console.WriteLine($"Solución: x = {x}, y = {y}");
static void Main(string[] args)
Console.WriteLine("Probando con el punto base (0, 0):");
NewtonRaphson(0, 0, 0.0001);
Console.WriteLine("Probando con el punto base (2, -2):");
NewtonRaphson(2, -2, 0.0001);
Console.WriteLine("Probando con el punto base (-2, 0):");
NewtonRaphson(-2, 0, 0.0001);