C++ 求一组整数的多项式

C++ 求一组整数的多项式,c++,wolfram-mathematica,integer,porting,polynomial-math,C++,Wolfram Mathematica,Integer,Porting,Polynomial Math,我一直在研究Mathematica中的一个函数,它生成并改变一组整数,然后找到该集合的插值多项式。我可以在C++中完成集合的生成,但是我不知道如何模仿Mathematica的代码>扩展[插值多项式[]]/COD>命令。我知道这与多项式插值问题有关,我只是不知道在哪里开始为它编写C++代码。 我请求了一个来自WOWFRAM的MaTc++ C++的试用版,看看它是否会为我转换,但我想我宁愿自己尝试一下,所以有人能告诉我如何才能开始这样做吗?< /P> < P>你可能会考虑最小二乘匹配。在这里,假设一

我一直在研究Mathematica中的一个函数,它生成并改变一组整数,然后找到该集合的插值多项式。我可以在C++中完成集合的生成,但是我不知道如何模仿Mathematica的代码>扩展[插值多项式[]]/COD>命令。我知道这与多项式插值问题有关,我只是不知道在哪里开始为它编写C++代码。
我请求了一个来自WOWFRAM的MaTc++ C++的试用版,看看它是否会为我转换,但我想我宁愿自己尝试一下,所以有人能告诉我如何才能开始这样做吗?< /P> < P>你可能会考虑最小二乘匹配。在这里,假设一些函数来描述数据,然后计算系数,使所有点的均方误差最小化。看看Mathematica,知道你要找的东西的名字会有很大帮助


插值完全是另一回事。

您可能在考虑最小二乘拟合。在这里,假设一些函数来描述数据,然后计算系数,使所有点的均方误差最小化。看看Mathematica,知道你要找的东西的名字会有很大帮助


插值完全是另一回事。

您可以使用伪逆计算插值多项式的一种形式,下面是一个使用5阶多项式逼近
Sin
函数的示例:

(* A function to compute {x^5, x^4, x^3, x^2, x, 1} of x *)
f = Function[x, x^# & /@ Reverse@Range[0, 5]]

xvals = Range@5;
yvals = Sin /@ Range@5;

(* Find the polynomial coefficients by solving the matrix equation *)
coeffs = PseudoInverse[f /@ xvals].yvals
poly = {x^5, x^4, x^3, x^2, x, 1}.coeffs

Plot[{Sin[x], poly}, {x, 0, 10}]

您可以看到,这与
插值多项式
函数的输出相同:

Simplify[InterpolatingPolynomial[Sin /@ Range@6, x] // N]
Plot[{Sin[x], %}, {x, 0, 10}]

在构造插值多项式一节中介绍了该技术


希望能给你足够的构造C++的工作版。< /P> < P>你可以用伪逆计算一种插值多项式,这里是一个例子,它用一个5阶多项式:< /p>
(* A function to compute {x^5, x^4, x^3, x^2, x, 1} of x *)
f = Function[x, x^# & /@ Reverse@Range[0, 5]]

xvals = Range@5;
yvals = Sin /@ Range@5;

(* Find the polynomial coefficients by solving the matrix equation *)
coeffs = PseudoInverse[f /@ xvals].yvals
poly = {x^5, x^4, x^3, x^2, x, 1}.coeffs

Plot[{Sin[x], poly}, {x, 0, 10}]

您可以看到,这与
插值多项式
函数的输出相同:

Simplify[InterpolatingPolynomial[Sin /@ Range@6, x] // N]
Plot[{Sin[x], %}, {x, 0, 10}]

在构造插值多项式一节中介绍了该技术


希望能给你足够的努力来构建一个工作C++版本。

帮助像我一样的人,不熟悉Mathematica:“扩展”什么?@咖啡树扩展[ExpR]扩展EXPR中的积和正整数幂。有关基本的拉格朗日插值公式,请参见或。您可能有兴趣知道还有一个。为了帮助像我这样不熟悉Mathematica的人:“Expand”做什么?@CoffeeonMars Expand[expr]在expr中展开乘积和正整数幂。有关基本的拉格朗日插值公式,请参见或。您可能有兴趣知道还有一个。