Ocena użytkownikóww: ***** / 21
Nadesłany przez Michał Ładanowski, 01 marca 2011 22:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Main.java:
/** Interpolacja Lagrange'a
* Michał Ładanowski (c) 2011
* www.algorytm.org
*/
public class Main {
public static void main(String[] args) {
// węzły interpolacji oraz odpowiadające im wartości
// ( jak nie trudno się domyślić funkcja to x^2)
double[] x = {-4, -2, 0, 1,3 };
double[]y = {16, 4, 0, 1, 9};
//chcemy znaleźć wartość w x = 2
double y2 = lagrangeInterpolation(x,y,2);
System.out.println("x = 2 -> y = "+y2);
}
public static double lagrangeInterpolation(double[] xs, double[] ys, double x ){
double t;
double y = 0.0;
for(int k = 0; k< xs.length; k++){
t = 1.0;
for(int j = 0; j < xs.length ; j++){
if(j != k ){
t=t*((x-xs[j])/(xs[k]-xs[j]));
}
}
y += t*ys[k];
}
return y;
}
}