#include "interpolating.h"
#include <iostream>
Interpolating::Interpolating()
{
int n = 2;
float* x = new float[n+1];
x[0] = 1.0f;
x[1] = 4.0f;
x[2] = 6.0f;
float* y = new float[n+1];
y[0] = 0;
y[1] = 1.386294f;
y[2] = 1.791760f;
float xx = 2.0f;
float interpolatingSum = Lagrng(x, y, n, xx);
std::cout << "f(2)="<< interpolatingSum <<std::endl;
}
Interpolating::~Interpolating()
{
}
float Interpolating:: Lagrng(float* x, float* y, int n, float xx)
{
float sum = 0.0f;
for(int i = 0; i <= n; i++) {
float product = y[i];
std::cout << "x[" << i << "]=" << x[i]
<< ", y[" << i << "]=" << y[i] << std::endl;
for(int j = 0; j <= n; j++) {
if (i != j) {
product = product * (xx - x[j]) / (x[i] - x[j]);
}
}
sum = sum + product;
}
return sum;
}
results:
x[0]=1, y[0]=0
x[1]=4, y[1]=1.38629
x[2]=6, y[2]=1.79176
f(2)=0.565844