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

Содержимое удалено Содержимое добавлено
Нет описания правки
c#
Строка 1:
== C# ==
{{wikipedia|Многочлен Лагранжа}}
<source lang="c" line="1">
using System;
namespace ConsoleApp
{
class Program
{
static void Main()
{
const int size = 10;
var xValues = new double[size];
var yValues = new double[size];
for (int i = 0; i < size; i++)
{
xValues[i] = i;
yValues[i] = TestF(i);
}
Console.WriteLine(InterpolateLagrangePolynomial(13.6, xValues, yValues, size));
}
static double InterpolateLagrangePolynomial (double x, double[] xValues, double[] yValues, int size)
{
double lagrangePol = 0;
for (int i = 0; i < size; i++)
{
double basicsPol = 1;
for (int j = 0; j < size; j++)
{
if (j != i)
{
basicsPol *= (x - xValues[j])/(xValues[i] - xValues[j]);
}
}
lagrangePol += basicsPol * yValues[i];
}
return lagrangePol;
}
static double TestF(double x)
{
return x*x*x + 3*x*x + 3*x + 1; // for example
}
}
}
</source>{{wikipedia|Многочлен Лагранжа}}
== C ==
<source lang="c">