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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从多项式中制作多合一多项式?相关的知识,希望对你有一定的参考价值。

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

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

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

如果是的话,你能帮助我如何获得多项式(或类似方程式)吗?如果没有,你能告诉我原因吗?

UPDATE

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?
答案

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

您也可以向另一个方向前进:将您的数据集细分为多个部分,并根据需要获得多个单独的数据集。 (这称为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之间的差的平方和。

更新:

我不知道这些多项式的固定来自哪里。

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

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

使用多项式来合成y值的集合,每个多项式一个。

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

以上是关于如何从多项式中制作多合一多项式?的主要内容,如果未能解决你的问题,请参考以下文章

如何从联系人列表中启用多项选择

如何从模型中呈现多项选择字段

如何从views.py中的模板中获得多项选择

限制反应中的多项选择

MATLAB中的polyfit函数的使用方法

MATLAB中的polyfit函数的使用方法