Interpolacja funkcji metodą Lagrange'a
This is so fanny to look like in 2021 that I'm going to leave it
Witam, zamieszczam kolejny programik napisany w javie - do czego służy widać z tytułu posta. Jest to kolejny projekt zaliczeniowy przy czym przy jego tworzeniu najważniejsze było zrozumienie algorytmu jego działania. W związku z czym nie zamieszczam całości kodu, a jedynie kod obsługi przycisku "Oblicz":
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//pobieram ilość elementów które powinienem pobrać z tablicy
wielkosc = jSpinner1.getValue( ).hashCode( );
x = Double.valueOf(jTextField1.getText( ));
Double iloczyn = 1D;
Double suma = 0D;
//tablice tymczasowe
Double[ ] X = new Double[wielkosc];
Double[ ] Y = new Double[wielkosc];
//wczytywanie danych z komponentu do tablicy
for (int i = 0; i < wielkosc; i++) {
Y[i] = Double.valueOf(jTable1.getModel( ).getValueAt(i, 1).toString( ));
System.out.println("i " + i + "y = " + Y[i]);
}
for (int i = 0; i < wielkosc; i++) {
X[i] = Double.valueOf(jTable1.getModel( ).getValueAt(i, 0).toString( ));
System.out.println("i " + i + "x = " + X[i]);
}
for (int i = 0; i < wielkosc; i++) {
iloczyn = 1D;
for (int k = 0; k < wielkosc; k++) {
if (i != k) {
iloczyn *= (x - X[k]) / (X[i] - X[k]);
System.out.println("x " + x);
System.out.println("k " + k + " = " + X[k]);
System.out.println("i " + i + " = " + X[i]);
System.out.println("iloczyn " + iloczyn);
}
}
suma += Y[i] * iloczyn;
System.out.println("suma " + suma);
}
jTextArea1.append("wynik" + suma +"\n");
}
Kod wygenerowany za pomocą programu: Code Generator
Want to learn more?
Sign up to get a digest of my articles and interesting links via email every month.