Sunteți pe pagina 1din 4

1.- CÓDIGO FUENTE.

Ahora implementamos el método de Mínimos Cuadrados para obtener los coefi-


cientes de un polinomio de grado n que se ajuste mejor a un conjunto de m puntos en
el plano (n < m-1) aproximando la solución mediante varias iteraciones sucesivas. El
lenguaje de programación utilizado será Java. Para ello, hemos creado una clase llamada
MinimosCuadradosPolinomial.java que implementa dicho método. A continua-
ción, se muestra el código fuente:

import Matriz.Matriz;

public class MinimosCuadradosPolinomial {


double X[];
int tamanioX;
double Y[];
int tamanioY;
int gradoPolinomio;

public MinimosCuadradosPolinomial(double X[], double Y[], int gradoPo-


linomio) {
this.X = X;
tamanioX = X.length;
this.Y = Y;
tamanioY = Y.length;
this.gradoPolinomio = gradoPolinomio;
}

public void minimosCuadrados() {


double coeficientesPolinomio[] = new double[gradoPolinomio + 1];
int N = gradoPolinomio;
double matriz[][] = new double[N+1][N+2];

System.out.println("Evaluando las Ecuaciones Normales...\n");


System.out.println("El sistema de ecuaciones obtenido es: \n");

double SumaX;
double SumaY;
for(int j=0; j<=N; j++) {
for(int k=0; k<=N; k++) {
SumaX = 0.0;
SumaY = 0.0;
for(int i=0; i<X.length; i++) {
SumaX += Math.pow(X[i], j+k);
SumaY += Y[i]*Math.pow(X[i], j);
}
matriz[j][k] = SumaX;
matriz[j][N+1] = SumaY;
//System.out.print(matriz[j][k]+"\t");
}
//System.out.println("");
}
Matriz objMatriz = new Matriz(matriz);

1
objMatriz.imprimirMatriz();

System.out.println("Resolviendo el Sistema de Ecuaciones por eli-


minación"
+ " Gaussiana...\n");

objMatriz.eliminacionGaussiana();
}

public static void main(String[] args) {

double X[] = {0, 0.25, 0.50, 0.75, 1.00};


double Y[] = {1.0000, 1.2840, 1.6487, 2.1170, 2.7183};
int gradoPolinomio = 2;
MinimosCuadradosPolinomial aproximacion = new MinimosCuadradosPo-
linomial(X, Y, gradoPolinomio);
aproximacion.minimosCuadrados();
}
}

2.- PRUEBA Y EJECUCIÓN.


Probamos el método ajustando los datos de la siguiente tabla con un polinomio de 2°
grado:

i 1 2 3 4 5
xi 0.00 0.25 0.50 0.75 1.00

yi 1.0000 1.2840 1.6487 2.1170 2.7183

Durante la ejecución el programa se genera un sistema de ecuaciones de 3x3, el cual


resolvimos con el método de eliminación gaussiana. Como resultado, el programa nos
muestra los coeficientes del polinomio buscado:

2
De acuerdo a la solución obtenida tenemos que el polinomio buscado es:

𝑷𝟐 (𝒙) = 𝟎. 𝟖𝟒𝟑𝟕𝒙𝟐 + 𝟎. 𝟖𝟔𝟒𝟐𝒙 + 𝟏. 𝟎𝟎𝟓𝟏

3
Tabulando los puntos y graficando el polinomio, observamos que el polinomio obte-
nido se ajusta de manera apropiada al conjunto de datos.

S-ar putea să vă placă și