I'm trying to print out the Lagrange Interpolation Form.
double x0 = x[0];
double x1 = x[1];
double x2 = x[2];
double x3 = x[3];
double z0 = z[0];
double z1 = z[1];
double z2 = z[2];
double z3 = z[3];
if (size == 2)
{
cout << "\nLagrange Polynomial Form: " << endl;
cout << (1 / (x0 - x1)) * (z0) << "(x" << -x1 << ")"
<< (1 / (x1 - x0)) * (z1) << "(x" << -x0 << ")" << endl;
}
else if (size == 3)
{
cout << "\nLagrange Polynomial Form: " << endl;
cout << (1 / ((x0 - x1) * (x0 - x2)) * (z0)) << "(x" << -x1 << ")" << "(x" << -x2 << ")"
<< (1 / ((x1 - x0) * (x1 - x2)) * (z1)) << "(x" << -x0 << ")" << "(x" << -x2 << ")"
<< (1 / ((x2 - x0) * (x2 - x1)) * (z2)) << "(x" << -x2 << ")" << "(x" << -x0 << ")";
}
else if (size == 4)
{
cout << "\nLagrange Polynomial Form: " << endl;
cout << (1 / ((x0 - x1) * (x0 - x2) * (x0 - x3)) * (z0)) << "(x" << -x1 << ")" << "(x" << -x2 << ")" << "(x" << -x3 << ")"
<< (1 / ((x1 - x0) * (x1 - x2) * (x1 - x3)) * (z1)) << "(x" << -x0 << ")" << "(x" << -x2 << ")" << "(x" << -x3 << ")"
<< (1 / ((x2 - x0) * (x2 - x1) * (x2 - x3)) * (z2)) << "(x" << -x0 << ")" << "(x" << -x1 << ")" << "(x" << -x3 << ")"
<< (1 / ((x3 - x0) * (x3 - x1) * (x3 - x2)) * (z3)) << "(x" << -x0 << ")" << "(x" << -x1 << ")" << "(x" << -x2 << ")";
}
What I am trying to do is read the size of the given array then print out the formula base on size = 1,2,3... But it took too much line of code if I keep doing until size = 10. How can I simplify my code to for loop or something that easier?