图像缩略图

Polyfitn.

版本1.3(56.7 kB) John d'Errico.
1维或n维多项式建模

29.1k下载

更新2016年4月27日

查看许可证

Polyfitn是polyfit的扩展,允许用户使用多个自变量创建模型。它还允许用户指定一个通用模型,例如,一个二次模型,有常数和二次项,但没有线性项。
例如,要将多项式模型符合从余弦曲线中选择的点,我们只需要均匀的条款。
x = -2:.1:2;
y = cos(x);
P = polyfitn(x,y,'常数x^2 x^4 x^6');
p.cofficients.
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 = rand(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

当然,对于那些希望确定所生成的术语的重要性的人来说,生成参数错误估计。

我还提供了用于评估这些模型的工具,并分辨模型。

一种警告 - 要注意使用高阶多项式来符合您的数据。仅仅因为低阶模型工作,高阶模型不一定更好。高阶多项式经常遭受数据点之间的严重振铃。始终绘制您的数据。想想你将要建造的模型。然后绘制产生的模型。用你的眼睛验证结果,更简单地查看R线系数(尽管我也返回该参数。)

如果您发现需要高阶多项式模式,因为您的曲线太复杂,请考虑使用回归或平滑样条模型。

引用

John d'Errico(2021年)。Polyfitn.(//www.tatmou.com/matlabcentral/fileexchange/34765-polyfitn),matlab中央文件汇。检索到

MATLAB版本兼容性
创建R2007b
与任何版本兼容
平台兼容性
窗户 苹果系统 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

polyfitntools / demo / html /