algorytm.org

Implementacja w Java

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Interpolacja wielomianowa - Implementacja w Java
Ocena użytkownikóww: *****  / 6
SłabyŚwietny
Nadesłany przez Michał Ładanowski, 28 lutego 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 wielomianowa
 *  Michał Ładanowski (c) 2011
 *  www.algorytm.org
 */

				

// Celem tego przykładu jest przedstawienie interpolacji wielomianowej
// dla przejrzystości implementacji używam gotowej biblioteki do operowania
// na macierzach: JAMA (math.nist.gov/javanumerics/jama/)
import Jama.Matrix;


public class Main {

	public static void main(String[] args){
		// przykład tabelka:
		// 2 3 6 7 8 10
		// 0 2 3 5 1 2
		//
		// węzły interpolacji z tabelki 
		double[] x = {2, 3,6,7,8,10};
		// wartości zapiszemy tak jakby to była macierz nx1, wektor
		// potrzebny w tej postaci do rozwiązania równania przy użyciu Jamy
		double[][] y = {{0}, {2}, {3}, {5}, {1}, {2}};
		Matrix a = polynomialInterpolation(x,y);
		
		for(int i = 0; i < x.length; i++){
			System.out.println("a"+i+" = " +a.get(i, 0) );
		}
		
		//Sprawdzenie czy dla x = 3 => y = 2
		double y1 = 0;
		for(int i = 0; i < x.length;i++){
			y1 += a.get(i,0)*Math.pow(x[1], i);
		}
		System.out.println("x = 3 y ="+y1);
	}



	public static Matrix polynomialInterpolation(double[] x, double[][] y){ 

		int n = x.length;
		Matrix A = new Matrix(n,n); 
		for(int i =0; i< n; i++) 
			for(int j = 0; j< n; j++) 
				A.set(i, j, Math.pow(x[i], j)); 
		
		// rozwiązanie układu, wspolczynniki - macierz nx1
		Matrix a = A.solve(new Matrix(y)); 
		return a;
	} 

}
Dodaj komentarz