如何从多项式中生成多合一多项式?
How can I make all-in-one polynomial from multi-polynomial?
我不熟悉专业数学。所以我不知道从哪里开始。
我有这样一篇文章。我只是按照这篇文章的描述。但这对我来说并不容易。
但我不确定如何从以上 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?
文章说的都是"you can combine multiple data sets into one to get a single polynomial"。
您也可以朝另一个方向走:将您的数据集细分成几块,并根据需要获得尽可能多的单独数据。 (这称为 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
其中素数表示 "transpose"。
两边预乘转置(X):
转置(X)* y = 转置(H)* H * c
执行标准矩阵求逆或 LU 分解来求解系数的未知向量 c。这些特定系数最小化在每个点 x 评估的函数与您的实际值 y 之间的差异的平方和。
更新:
我不知道这些多项式的固定是从哪里来的。
你的 y 向量?错误的。你的 H 矩阵?又错了
如果您必须坚持使用这些多项式,我的建议如下:您的绘图中有一系列 x 值。假设您有 100 个 x 值,在 0 和最大值之间等距分布。这些是插入 H 矩阵的值。
使用多项式合成一组 y 值,每个多项式一个。
将所有这些组合成一个大问题并求解一组新系数。如果你想要一个三阶多项式,你将只有四个系数和一个方程。它将代表您使用四个多项式创建的所有合成数据的最小二乘法最佳近似值。
我不熟悉专业数学。所以我不知道从哪里开始。
我有这样一篇文章。我只是按照这篇文章的描述。但这对我来说并不容易。
但我不确定如何从以上 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?
文章说的都是"you can combine multiple data sets into one to get a single polynomial"。
您也可以朝另一个方向走:将您的数据集细分成几块,并根据需要获得尽可能多的单独数据。 (这称为 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
其中素数表示 "transpose"。
两边预乘转置(X):
转置(X)* y = 转置(H)* H * c
执行标准矩阵求逆或 LU 分解来求解系数的未知向量 c。这些特定系数最小化在每个点 x 评估的函数与您的实际值 y 之间的差异的平方和。
更新:
我不知道这些多项式的固定是从哪里来的。
你的 y 向量?错误的。你的 H 矩阵?又错了
如果您必须坚持使用这些多项式,我的建议如下:您的绘图中有一系列 x 值。假设您有 100 个 x 值,在 0 和最大值之间等距分布。这些是插入 H 矩阵的值。
使用多项式合成一组 y 值,每个多项式一个。
将所有这些组合成一个大问题并求解一组新系数。如果你想要一个三阶多项式,你将只有四个系数和一个方程。它将代表您使用四个多项式创建的所有合成数据的最小二乘法最佳近似值。