sprawozdanie.pdf

(354 KB) Pobierz
Politechnika Świętokrzyska
Laboratorium Metod obliczeniowych
Temat:
Grupa 312A:
Łukasz Gos
Kamil Kasprzyk
Wykonanie zadania 49
1. Cel
Celem zadania było napisania programu rozwiązującego zadanie I49.
2. Kod programu
package
matematyka.zadania;
public class
I49 {
public static int
silnia(int s){
int
wynik=1;
for(int
i=s ; i>0; i--)
wynik *= i;
return
wynik;
}
public static void
oblicz(double[][] tab,
int
index) {
for
(int i = 0; i < tab.length - 1; i++) {
if
(tab[index - 1][i + 1] != 0.0) {
tab[index][i] = (tab[index - 1][i + 1] - tab[index -
1][i]);
}
}
}
public static double[]
obliczRozniceSkonczone(double[][]
tab) {
double[]
tmpTab =
new double[tab.length];
double[][]
tablicaRoznicSkonczonych =
new
double[tab.length][tab.length];
//zapisanie do tablicy wartości f(x)
for
(int i = 0; i < tab.length; i++)
tablicaRoznicSkonczonych[0][i] = tab[i][1];
//wypełnienie tablicaRoznicWstecznych wynikami
for
(int i = 0; i < (tab.length); i++) {
oblicz(tablicaRoznicSkonczonych,
i + 1);
}
System.out.println("Tablica
roznic skonczonych");
//wyświetlenie zawartości tablicy oraz przygotowanie
tablicy zwrotnej
for
(int i = 0; i < tab.length; i++) {
for
(int j = 0; j < (tab.length - i); j++) {
System.out.print(tablicaRoznicSkonczonych[i][j] +
",
");
}
System.out.println("
");
tmpTab[i] = tablicaRoznicSkonczonych[i][0];
}
return
tmpTab;
}
public static void
main(String[] args) {
double
h = 0.005;
double
x = 0.198;
double[][]
tab =
new double[5][2];
tab[0][0] = 0.180;
tab[0][1] = 5.61543;
tab[1][0] = 0.185;
tab[1][1] = 5.46547;
tab[2][0] = 0.190;
tab[2][1] = 5.32159;
tab[3][0] = 0.195;
tab[3][1] = 5.15326;
tab[4][0] = 0.200;
tab[4][1] = 5.06478;
double[]
t =
obliczRozniceSkonczone(tab);
System.out.println("
");
System.out.println("=============\ntablica
wynikow");
for
(int i = 0; i < t.length; i++)
System.out.println(t[i]);
double
wynik = t[0] + (t[1]/h)*(x-tab[0][0])+
(t[2]/(silnia(2)*Math.pow(h, 2)))*(x-tab[0][0])*(x-
tab[1][0])
+(t[3]/(silnia(3)*Math.pow(h, 3)))*(x-tab[0][0])*(x-
tab[1][0])*(x-tab[2][0])
+(t[4]/(silnia(4)*Math.pow(h, 4)))*(x-tab[0][0])*(x-
tab[1][0])*(x-tab[2][0])*(x-tab[3][0]);
System.out.println("Wynik:
"+wynik);
}
}
3. Komunikaty wyświetlane przez program
Tablica roznic skonczonych
5.61543, 5.46547, 5.32159, 5.15326, 5.06478,
-0.1499600000000001, -0.14388000000000023, -0.1683299999999992, -
0.08848000000000056,
0.006079999999999863, -0.024449999999998973, 0.07984999999999864,
-0.030529999999998836, 0.10429999999999762,
0.13482999999999645,
=============
tablica wynikow
5.61543
-0.1499600000000001
0.006079999999999863
-0.030529999999998836
0.13482999999999645
Wynik: 5.0783058720000005
Zgłoś jeśli naruszono regulamin