polyfitn

多项式建模在1到n维空间

32.9 k下载

更新2016年4月27日

查看许可协议

Polyfitn polyfit的延伸,允许用户创建模型与多个自变量。它还允许用户指定一个通用模型,例如,一个二次模型,常数和二次项,但不包含线性项。
例如,适合一个多项式模型从一个余弦曲线点选择,我们甚至将只需要命令。
x = 2: .1:2;
y = cos (x);
p = polyfitn (x, y,持续x ^ 2 x ^ 4 x ^ 6 ');
p.Coefficients
ans =
(0.99996 - -0.49968 0.041242 - -0.0012079)
系数当然不会准确,我只用一个有限数目的本质上是截断泰勒级数,和我只有有限的点建立的模型。的前4一个余弦级数的系数:
> > [1 1/2 1/24 -1/720]
ans =
1 -0.5 0.041667 -0.0013889

所以我们得到了预期的结果。

当然,polyfitn工作在更高的维度,是真的为了解决这个问题。

x =兰德(100 1);
y =兰德(100 1);
z = exp (x + y) + randn (100 1) / 100;
p = polyfitn (x, y, z, 3);

结果可以被转换成一个象征性的形式查看模型更简单。我将使用sympoly工具箱,但还有一个polyn2sym函数提供。

polyn2sympoly (p)
ans =
0.43896 * X1 ^ 3 + 1.4919 * X1 ^ 2 * X2 + 0.041084 * X1 ^ 2 + 1.4615 * X1 * X2 ^ 2 - 0.095977 * X1 * X2 + 1.2799 * X1 + 0.56912 * X2 ^ 3 - 0.15306 * X2 ^ 2 + 1.361 * X2 + 0.94819

当然,参数估计误差为那些希望确定生成的意义生成的条件。

我还提供了工具来评估这些模型,并区分模型。

一个警告——小心使用高阶多项式适合您的数据。仅仅因为一个低阶模型作品,高阶模型并不一定更好。高阶多项式数据点之间的经常患有严重的振铃。你的数据总是阴谋。想想您将构建的模型。然后情节产生的模型。用你的眼睛来验证结果,比简单地看着平方系数(尽管我也做返回参数。)

如果你发现一个高阶多项式模式是必要的,因为你的曲线是太复杂,考虑使用回归或平滑样条模型代替。

引用作为

约翰D 'Errico (2023)。polyfitn(//www.tatmou.com/matlabcentral/fileexchange/34765-polyfitn), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2007b
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

PolyfitnTools /演示/ html /

版本 发表 发布说明
1.3

文档添加p和景深,也帮助增加了一个例子。

1.2.0.0

在适合数据删除nan

1.1.0.0

添加了一个假定值的系数。

1.0.0.0