| Код |
double Nn (double X, double **mas, int n) // Х - значения икса при котором необходимо //вычислить многочлен, mas - массив [2][n]. В mas[0][n] - иксы, //в mas[1][n] - значения y. n - кол-во элементов { double ans,temp, h; h = mas[0][1] - mas[0][0]; ans=mas[1][0]; for(int i=1; i < n; i++) ans += deltY(i,0) * P(X,mas,i)/pow(h,i)/fact(i); return ans; }
double deltY(int pow, int num) // y[n] - глобальная. Было лень передавать массив { if(pow == 0) return y[num]; if(pow == 1) return (y[num+1] - y[num]); return (deltY(pow-1,num+1) - deltY(pow-1,num)); }
double P(double X, double **mas, int n) // произведение первых n скобок. { double temp=1; int i; for(i=0; i<n; i++) temp *= X - mas[0][i]; return temp; }
int fact(int i) //факториал { if(i==0) return 1; return i * fact(i-1); }
|
Сам недавно сдал. А про функцию Рунге поподробней. |