Реализации алгоритмов/Интерполяция/Многочлен Лагранжа: различия между версиями

Содержимое удалено Содержимое добавлено
м main() в C++ должна возвращать значение
Строка 1:
== C++ ==
<source lang="cppc">
#include <iostreamstdio.h>
using namespace std;
 
double lajaInterpolateLagrangePolynomial (double x,int j,double* x_values, double*xar y_values, int nsize)
{
double resultatlageange_pol =1 0;
double xbasics_pol =5 1;
for(int i=0;i<n;i++){
resultat*=(i!=j)?(x-i[xar])/(j[xar]-i[xar]):1;
}
return resultat;
 
for (int i = 0; i <n size; i++){
{
basics_pol = 1;
for (int j = 0; j <n size; j++){
{
if (j == i) continue;
basics_pol *= (x - x_values[j])/(x_values[i] - x_values[j]);
}
lageange_pol += basics_pol*y_values[i];
}
return resultatlageange_pol;
}
 
 
double Polinom_Lagranzha testF(int n,double *xui, double *yui, double x)
{
return x*x*x + 3*x*x + 3*x + 1; // for example
double resultat;
for(int j=0;j<n;j++){
resultat+=j[yui]*laja(x,j,xui,n);
}
return resultat;
}
 
int main(void){
{
const int size = 10;
double x_values[size];
double y_values[size];
 
 
for (int i = 0; i < size; i++)
{
x_values[i] = i;
y_values[i] = testF(i);
}
 
printf ("%lf\n", InterpolateLagrangePolynomial(13.6, x_values, y_values, size));
int main(void){
int dlina=4;
double massiv_X[] = {3,4,8};
double mossiv_Y[] = {5,6,8};
double x=5;
double resultat;
resultat = Polinom_Lagranzha(dlina,massiv_X,mossiv_Y, x);
cout<<"Polinom_Lagranzha("<<x<<") = "<<resultat<<endl;
 
return 0;