SLM -形状建模语言

版本1.14 (668 KB) 约翰D 'Errico
最小二乘样条使用形状建模原语

26.1 k下载

更新2017年4月16日

查看许可协议

如果你只会一种曲线拟合工具下载到你的笔记本电脑在一个荒岛上,这应该是它。
多年来我已经建议人们使用最小二乘样条函数进行曲线吻合,警告。样条函数提供了巨大的灵活性建立任何形式的曲线。他们可以很好地适应几乎任何一组数据将抛出。有时同样的灵活性是他们的垮台。像多项式模型、样条函数也可以灵活的如果你不小心。关键是要把你的知识体系正在研究这个问题。
作为一个科学家,工程师,数据分析师,等等,你经常有知识的过程,你想模型。有时这知识来自物理原则,有时来自经验,有时知识只是来自观察数据的阴谋。不管来源,我们经常想要建立在先验知识流程的建模工作。这也许是使用非线性回归工具的最大原因,我认为,最严重的原因。如果你合适的乙状结肠函数数据仅仅是因为它是单调,似乎你的数据属性,那么你就做出了错误的选择的建模工具。(如果你是合适的乙状结肠因为这是正确的流程模型,然后继续适应乙状结肠。)
我认为适当的工具当你仅仅需要一个单调曲线拟合最小二乘样条,但适当限制的样条的基本形状你知道。这是一个非常贝叶斯建模方法,和一个非常有用的一个在我的经验。
这里提供的SLM工具给你一个易于使用的接口来构建一个无限数量的曲线类型的数据。SLM代表形状建模语言。这个想法是提供一个处方使用一组形状曲线拟合原语。如果你的曲线是单调,那么建立到模型的信息,所以你可以估计单调曲线最适合您的数据。你会发现,一旦你使用适当的约束,你想知道你为什么会用非线性回归过去! ! !
例如,这个文件的截图是生成的以下数据:

x =(排序(rand(1100)) - 0.5) *π;
y = sin (x)。^ 5 + randn(大小(x)) / 10;

slm = slmengine (x, y,“阴谋”,“对”,“结”,10日,“增加”,“对”,…
“leftslope”, 0, ' rightslope ', 0)
slm =
形式:“slm”
度:3
结[10 x1双):
系数:[10 x2双)
处方:[1 x1 struct]
x (x1 100双):
y (x1 100双):

你可以评估使用slmeval花键或其衍生品。

slm slmeval (1.3)
ans =
0.79491

你的阴谋使用plotslm这些样条函数。

plotslm (slm)

plotslm功能是不错的,因为它是一个简单的gui,允许您绘制曲线,残差,其衍生品或积分。你也可以评估各种样条参数,如最大函数值在一个区间,最小或最大斜率等。

slmpar (slm maxslope)
ans =
1.5481

你提供所有这些信息使用属性/值对slmengine接口。slmset调和这种交互,因此您可以使用它来创建将使用的属性集。默认设置的属性和它们的值由slmset给出。一切的形状、斜坡、曲率、价值观,等等,你的函数可以由一个简单的命令控制。SLMENGINE还提供了能够生成各种订单的样条函数,以及自由结样条函数。

为一套完整的SLM工具操作的例子,看到这个提交的包括发布教程。还有一个小论文包括形状的概念语言建模用于曲线拟合。

SLM工具包将大大改善在将来的一段时间。我将添加一个图形界面。,如果我错过了任何自然形状原语,请让我知道。虽然我一直很包容,肯定有一些我已经错过了。如果我可以添加你最喜欢上面的列表我会试着这样做。

最后,SLM工具要求优化工具箱解决各种估计问题。

引用作为

约翰D 'Errico (2022)。SLM -形状建模语言(//www.tatmou.com/matlabcentral/fileexchange/24443-slm-shape-language-modeling), MATLAB中央文件交换。检索

SLMtools / html /