Short snippet in C# to do this classic trick, I could not find one on the web. Little, (even none!) error checking is done here.
Horner polynomial evaluation
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Horner
{
class Program
{
//here it all happens
static double Horner(double[] coeffients, int degree, double value)
{
double result = coeffients[degree];
for (int i = degree - 1; i >= 0; i--)
{
result = result * value + coeffients[i];
}
return result;
}
//Main function to exercise the above
static void Main(string[] args)
{
//coefficient array
double[] c = {0,0,0,0,0,0,0,0,0,0,0}; //degree 10 maximum
//highest degree
int d;
//value to be evaluated
double v;
Console.WriteLine("HORNER polynomial evaluator.");
Console.WriteLine();
Console.Write("Enter degree of polynomial: ");
d = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Fill in coefficients from low to high degree.");
Console.WriteLine("Coefficients, a[0], a[1], ..., a[" + d.ToString() + "]");
for (int i = 0; i <= d; i++)
{
Console.Write("Coefficient a[" + i.ToString() + "] = ");
c[i] = Convert.ToDouble(Console.ReadLine());
}
Console.Write("Enter the value to be evaluated: ");
v = Convert.ToDouble(Console.ReadLine());
double r = Horner(c, d, v);
Console.WriteLine("------------------------------------------------");
Console.WriteLine("The calculated value for this polynomial is : {0}",r);
}
}
}
ddanbe 2,724 Professional Procrastinator Featured Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.