如何从多项式中制作多合一多项式?

时间:2015-08-11 04:08:07

标签: matlab math polynomial-math polynomial-approximations

我不熟悉专家数学。所以我不知道从哪里开始。

我得到了一些这样的文章。我只是按照这篇文章的描述。但这对我来说并不容易。

但我不确定如何从4个多项式方程中只得到一个多项式方程(或类似的方程)。这有可能吗?

如果是的话,请你帮忙我如何获得多项式(或等式)?如果没有,你能让我知道原因吗?

更新

I'd like to try as following 


clear all ;
clc

ab = (H' * H)\H' * y;
y2 = H*ab;

Finally I can get some numbers like this.



So, is this meaning?



As you can see the red curve line, something wrong.
What did I miss anythings?

1 个答案:

答案 0 :(得分:1)

所有文章都说“你可以将多个数据集合成一个来获得单个多项式”。

您也可以向另一个方向发展:将您的数据集细分为多个部分,并根据需要获得多个单独的数据集。 (这称为n倍验证。)

首先是n个点(x,y)的集合。 (通过只有一个自变量x和一个因变量y来保持简单。)

您的第一步应该是绘制数据,查看数据,并考虑两者之间的关系可以解释它。

你的下一步是假设两者之间关系的某种形式。人们喜欢多项式,因为它们易于理解和使用,但其他更复杂的关系也是可能的。

一个多项式可能是:

y = c0 + c1*x + c2*x^2 + c3*x^3

这是因变量y和自变量x之间的一般关系。

你有n个点(x,y)。您的功能无法通过每个点。在我给出的例子中,只有四个系数。你如何计算n>>的系数? 4?

这就是基质所在的地方。你有n个方程式:

y(1) = c0 + c1*x(1) + c2*x(1)^2 + c3*x(1)^3
....
y(n) = c0 + c1*x(n) + c2*x(n)^2 + c3*x(n)^3

您可以将它们写成矩阵:

y = H * c

其中素数表示“转置”。

通过转置( X )预先计算两侧:

转置( X )* y =转置( H )* H * c < /强>

进行标准矩阵求逆或LU分解以求解系数 c 的未知向量。这些特定系数最小化了在每个点x处评估的函数与实际值y之间的差的平方和。

更新

我不知道这些多项式的固定来自何处。

你的y矢量?错误。你的H矩阵?错了。

如果你必须坚持使用那些多项式,这就是我建议的:你的图中有一系列的x值。假设您有100个x值,在0和最大值之间等间隔。这些是插入H矩阵的值。

使用多项式合成y值集合,每个多项式对应一个。

将所有这些组合成一个大问题并求解一组新系数。如果你想要一个三阶多项式,你将只有四个系数和一个方程。它将表示使用四个多项式创建的所有合成数据的最小二乘最佳近似值。