Cześć, posiadam daną funkcję w postaci f(x) = -57.00000*x^0 + 108.08333*x^1 + -64.62500*x^2 + 15.91667*x^3 + -1.37500*x^4
Muszę obliczyć dla niej f(x) dla 5 x-ów wczytanych z pliku. W moim przypadku jest to 1, 2, 3, 4, 5.
Rozumiem to tak, że najpierw liczę wartości iloczynów dla x[0], = 1, x[1] = 2, x[2] = 3, x[3] = 4, x[4] = 5;
podstawiając je po kolei i otrzymam 5 iloczynów które później muszę zsumować.
Z pliku wczytuję dane do zmiennej xi[i] - są to wartości X z pliku.
Do funkcji przekazuję wi[i] - są to wczytane współczynniki z obliczonego wzoru funkcji.
Funkcja do obliczeń wygląda tak, jednak daje nieprawidłowe wyniki (na razie chcę uzyskać prawidłowe wartości iloczynów), bo później już muszę tylko zsumować odpowiednie
Poniżej kod:
double f(double a, double w[], int n)
{
double *x = new double[n];
for(int i = 0; i < n; i++)
{
x[i] = a;
}
double *wsp = new double[n];
double *iloczyn = new double[n];
double *suma = new double[n];
for(int k = 0; k < n; k++)
{
for(int j = 0; j < n; j++)
{
iloczyn[j] = w[j] * pow(x[k], j);
}
}
// -57 * pow(a, 0) + 108.08333 * pow(a, 1) + -64.625 * pow(a, 2) + 15.91667 * pow(a, 3) + -1.375 * pow(a, 4)
}
Stwierdziłem, że przyda się przechowywać wartości w tablicach np. wartosc[0] = f(xi[0], &w[0], n) itd.
double *wartosc = new double[n];
for(int i = 0; i < n; i++)
{
wartosc[i] = f(xi[i], &wi[i], n);
}
Proszę o wskazówki dotyczące obliczania iloczynów.
k musi być stałe przez cały czas działania drugiej pętli, obliczam 5 iloczynów z wartością x[0] a potem kolejne 5 iloczynów z wartością x[1] itd.