SLM-形状语言建模

버전1.14(668 kb)작성자: 约翰·德·埃里里科(John D'Errico)
最小二乘样条模型使用形状原语

다운로드:26K

업데이트::2017/4/16

라이선스보기

如果您只能将一个曲线拟合工具下载到荒岛上的笔记本电脑上,那应该是这样。
多年来,我一直建议人们使用最小二乘花键进行曲线,并有一个警告。花键具有巨大的灵活性,可以以任何形状或形式构建曲线。它们几乎可以很好地拟合您将向它们提供的所有数据。同样的灵活性也有时也是他们的衰落。像多项式模型一样,如果您不小心,花键可能会太灵活。诀窍是将您对系统的知识带入问题。
作为科学家,工程师,数据分析师等,您经常了解要建模的过程。有时,这些知识来自物理原理,有时是由于经验而产生的,有时知识只是从查看数据图。无论消息来源如何,我们通常都希望在我们的建模工作中建立对过程的先验知识。这也许是使用非线性回归工具的最大原因,我会说是最糟糕的原因。如果您仅将Sigmoid函数拟合到数据中,因为它恰好是单调,并且您的数据似乎具有该属性,那么您已经错误地选择了建模工具。(如果您要安装Sigmoid,因为这是您过程的合适模型,请继续并安装Sigmoid。)
当您仅需要单调曲线拟合是一个最小二乘样条时,我会争论适当的工具,但是适当约束的样条可以具有您所知道的基本形状。这是一种非常贝叶斯的建模方法,也是我经验中非常有用的方法。
此处提供的SLM工具为您提供了易于使用的接口来从数据中构建无限数量的曲线类型。SLM代表形状语言建模。这个想法是要使用一组形状原始素为曲线拟合提供处方。如果您的曲线是单调的,则将这些信息构建到模型中,因此您可以估算最适合您数据的单调曲线。您会发现的是,一旦您采用了适当的约束,您会想知道为什么您过去曾经使用过非线性回归!!!
例如,为以下数据生成了此文件的屏幕截图:

x =(sort(rand(1,100)) - 0.5)*pi;
y = sin(x)。^5 + randn(size(x)/10;

slm = slmengine(x,y,'plot','on','','',10,“增加”,“ on”,...
“左斜坡”,0,“ prientllope”,0)
SLM =
表格:'SLM'
学位:3
结:[10x1双]
COEF:[10x2 double]
处方:[1x1结构]
X:[100x1 double]
Y:[100x1 double]

您可以使用SLMEVAL评估样条或其衍生物。

Slmeval(1.3,SLM)
ans =
0.79491

您可以使用plotslm绘制这些花纹。

绘图(SLM)

绘图函数很不错,因为它是一个简单的GUI,允许您绘制曲线,残差,其衍生物或积分。您还可以评估样条的各种参数,例如在间隔,最小或最大斜率等上的最大函数值等。

SLMPAR(SLM,“ MaxSlope”)
ans =
1.5481

您可以使用属性/价值对接口向Slmengine提供所有这些信息。SLMSET介导了这种交互,因此您可以使用它来创建将要使用的属性集。默认的属性集及其值由SLMSET给出。关于您功能的形状,斜率,曲率,值等的所有内容都可以通过简单的命令来控制。Slmengine还提供了生成各种订单的花纹以及免费结的能力。

有关正在使用的SLM工具的完整示例,请参见随附的提交的包含已发布的教程。曲线拟合的形状语言建模概念中还包含了一篇小论文。

SLM工具包将在将来有了很大的改进。我将添加一个图形接口。同样,如果我错过了任何自然形状的原语,请告诉我。虽然我试图变得非常包容,但肯定有一些我错过的东西。如果我可以将您喜欢的列表添加到上面的列表中,我将尝试这样做。

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

인용양식

约翰·德·埃里科(John D'Errico)(2022)。SLM-形状语言建模(//www.tianjin-qmedu.com/matlabcentral/fileexchange/24443-slm-shape-language-modeling),matlab中央文件交换。검색됨

matlab릴리스호환정보
개발:R2007B
모든릴리스와호환
플랫폼호환성
视窗 苹果系统 Linux

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!

slmtools/html/