public static void Main()
double[,] jacobiana = new double[20, 3];
double[,] matriz = new double[3, 4];
double[] voltaje = { 4.6376, 7.9767, 7.1358, 5.6462, 7.6356, 14.033, 21.715,
26.377, 26.491, 24.71, 5.2615, 8.6006, 7.7597, 6.2701,
8.2595, 14.657, 22.339, 27.001, 27.115, 25.334,};
double[] tiempo = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
for (int i = 0; i < 20; i = i + 1)
jacobiana[i, 0] = tiempo[i] * tiempo[i];
jacobiana[i, 1] = Math.Exp(tiempo[i]);
jacobiana[i, 2] = - Math.Sin(tiempo[i]);
for (int i = 0; i < 3; i = i + 1)
for (int j = 0; j < 3; j = j + 1)
for (int k = 0; k < 20; k = k + 1)
matriz[i, j] = matriz[i, j] + jacobiana[k, i] * jacobiana[k, j];
for (int i = 0; i < 3; i = i + 1)
for (int j = 0; j < 1; j = j + 1)
for (int k = 0; k < 20; k = k + 1)
matriz[i, 3] = matriz[i, 3] - voltaje[k] * jacobiana[k, i];
for (int reng = 0; reng < 2; reng = reng + 1)
pivote = matriz[reng, reng];
for (int colu = 0; colu < 3; colu = colu + 1)
matriz[reng, colu] = matriz[reng, colu] / pivote;
for (int reng_elimi = 0; reng_elimi < 2; reng_elimi = reng_elimi + 1)
factor = matriz[reng_elimi, reng];
for (int colu_elimi = 0; colu_elimi < 3;
colu_elimi = colu_elimi + 1)
matriz[reng_elimi, colu_elimi] = matriz[reng_elimi,
colu_elimi] - factor * matriz[reng, colu_elimi];
Console.WriteLine(matriz[0, 3] + " " + matriz[1, 3] + " " + matriz[2, 3]+ " ");