图像缩略图

聚脂纤维

版本1.3(56.7KB)由 约翰·德雷科
一维或n维多项式建模

29.2K下载

更新2016年4月27日

查看许可证

Polyfitn是polyfit的扩展,允许用户创建具有多个自变量的模型。它还允许用户指定一个通用模型,例如二次模型,具有常数项和二次项,但没有线性项。
例如,要将多项式模型拟合到从余弦曲线中选择的点,我们只需要偶数顺序项。
x=-2:1:2;
y=cos(x);
p=聚合体(x,y,'常数x^2 x^4 x^6');
p、 系数
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=聚菲酮([x,y],z,3);

可以将结果转换为符号形式,以便更简单地查看模型。这里我将使用我的sympoly工具箱,但也提供了一个Polyni2Sym函数。

多项式2sympoly(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平方系数(尽管我也返回了那个参数)

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

引用为

约翰·德里科(2021年)。聚脂纤维(//www.tatmou.com/matlabcentral/fileexchange/34765-polyfitn),MATLAB中央文件交换。恢复.

MATLAB版本兼容性
使用R2007b创建
与任何版本兼容
平台兼容性
窗户 马科斯 Linux
致谢

受到启发的:加菲,polyVal2D和polyFit2D

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!

PolyfitnTools/demo/html/