主要内容

自定义模型

自定义模型和模型库

如果曲线拟合工具箱™库不包含所需的参数方程,您可以创建自己的自定义方程。库模型,然而,为迅速趋同提供最好的机会。这是因为:

  • 对于大多数图书馆模型,工具箱计算最优缺省系数的起点。对于自定义模型,工具箱中选择默认随机起始点在区间[0,1]上。你需要找到合适的自定义模型的开始点。

  • 图书馆使用雅可比矩阵分析模型。自定义模型用有限差分。

线性和非线性拟合

您可以创建自定义的一般方程和自定义方程适合类型。一般模型是非线性的组合(也许非线性)。他们可能非线性方程定义的参数。自定义方程适合使用非线性最小二乘拟合过程。

您可以使用自定义定义一个自定义线性方程方程适合类型,尽管非线性拟合效率较低,通常低于线性最小二乘拟合。

  • 如果你不知道如果你的方程可以表示为一组线性函数,然后选择自定义公式。您可能需要寻找合适的开始点。

  • 如果你需要定制方程的线性最小二乘拟合,选择线性拟合模型类型。看到自定义线性拟合

选择一个自定义方程适合交互

在曲线健康应用,曲线更健康选项卡,适合类型部分,单击箭头打开画廊。在合适的画廊,单击自定义公式自定义组。

合适的选项窗格中,使用自定义方程适合定义自己的方程。自定义方程出现当你点击一个例子自定义公式曲线数据,如下所示。

默认的自定义曲线拟合方程

如果你有表面数据,使用两种示例自定义方程xy

表面合适的默认定义方程

  1. 您可以编辑x,y,z任何有效的变量名。

  2. 在下面的框中,编辑定义您自己的自定义方程的例子。您可以输入任何有效的MATLAB®表达你的变量名。您可以指定一个函数或脚本的名字(见在曲线拟合曲线定义的文件装配应用程序)。

  3. 点击高级选项如果你想指定点或边界开始。默认情况下,起始值是随机选择的区间[0,1],不受限制。您可能需要寻找合适的开始点和边界。例如,看到的自定义非线性ENSO数据分析

    如果你设置合适的选项,然后改变其他合适设置,应用程序还记得你选择上下界限,开始点,如果可能的话。自定义曲线的方程,健康应用程序总是记得用户价值。然而,对于许多图书馆模型,如果你改变设置,那么应用程序自动计算新的开始点或下界的最佳值。

您可以保存您的自定义保存曲线的方程作为健康应用程序会话。

你的函数可以执行的次数,在拟合和在装配前预处理。意识到这可能是耗时的如果您正在使用功能与副作用,如写入数据到一个文件中,或显示诊断信息命令窗口。

有关示例,请参见:

在曲线拟合曲线定义的文件装配应用程序

这个例子展示了如何提供一个函数或脚本名称作为曲线拟合模型装配应用。定义一个函数在一个文件中,用它来适应曲线。

  1. 定义一个函数在一个MATLAB文件。

    函数y = piecewiseLine (x, a, b, c, d, k)% PIECEWISELINE一条线由两部分%,不是连续的。y = 0(大小(x));%这个示例包括一个for循环和if语句%纯例如目的。i = 1:长度(x)如果x(我)< k y (i) = a + b。* *(我);其他的y (i) = c + d。* *(我);结束结束结束

    保存文件在MATLAB的道路。

  2. 定义一些数据和打开曲线装配应用程序。

    x = [0.81; 0.91; 0.13; 0.91; 0.63; 0.098; 0.28; 0.55;0.96;0.96;0.16;0.97;0.96);y = [0.17; 0.12; 0.16; 0.0035; 0.37; 0.082; 0.34; 0.56;0.15;-0.046;0.17;-0.091;-0.071);curveFitter
  3. 在曲线健康应用,曲线更健康选项卡,数据部分中,点击选择数据。在选择合适的数据对话框中,选择xyX数据Y数据分别列出。输入分段函数作为合适的名称。

  4. 用你的piecewiseLine函数的曲线健康应用。曲线更健康选项卡,适合类型部分,单击箭头打开画廊。在合适的画廊,单击自定义公式自定义组。在合适的选项窗格中,自定义公式文本框中输入你的函数表达式。的函数x数据和一些参数拟合。

    piecewiseLine (x, a, b, c, d, k)

    曲线健康应用程序使用你的函数创建一个合适的。

自定义使用分段线函数方程

提示

如果你想在命令行上使用相同的函数拟合,使用相同的表达式作为输入fittype,然后使用fittype作为一个输入适合:

英国《金融时报》= fittype (“piecewiseLine (x, a, b, c, d, k)”);f =适合(x, y,英尺)
更多的例子,请参阅适合函数。

选择一个自定义方程适合在命令行

适合自定义模型:

  • 提供一个自定义模型适合功能fitType输入参数。您可以使用MATLAB表达式(包括任何。m文件),一个细胞数组或字符串数组的线性模型,或一个匿名函数。

  • 创建一个fittype对象的fittype函数使用作为一个输入参数适合函数。

这个示例加载一些数据,并使用一个自定义方程定义一个威布尔模型作为输入适合功能:

时间= (0.1;0.1;0.3;0.3;1.3;1.7;2.1;2.6;3.9;3.9;5.1;5.6;6.2;6.4;7.7;8.1;8.2;8.9;9.0;9.5;9.6;10.2;10.3;10.8;11.2;11.2;11.2;11.7;12.1;12.3;12.3;13.1;13.2;13.4;13.7;14.0;14.3;15.4;16.1;16.1;16.4;16.4;16.7;16.7;17.5;17.6;18.1;18.5;19.3;19.7;]; conc = [0.01; 0.08; 0.13; 0.16; 0.55; 0.90; 1.11; 1.62; 1.79; 1.59;1.83;1.68;2.09;2.17;2.66;2.08;2.26;1.65;1.70;2.39;2.08;2.02;1.65;1.96;1.91;1.30;1.62;1.57;1.32;1.56;1.36;1.05;1.29;1.32;1.20;1.10;0.88;0.63;0.69;0.69;0.49;0.53;0.42;0.48;0.41;0.27;0.36;0.33;0.17;0.20;]; f = fit(time,conc,“c * a * b * x ^ (b - 1) * exp (a * x ^ b)”,“曾经繁荣”[0.01 - 2 5])情节(f,时间、浓缩的)

定义一个自定义模型使用fittype使用表单:

f = fittype (expr)
构建一个定制的模型fittype对象为MATLAB表达式中包含的特征向量,字符串标量,细胞数组,字符串数组,或匿名函数expr

看到fittype参考页面细节:

  • 指定的依赖和独立变量,参数问题,系数使用fittype

  • 指定单元格数组或字符串数组的术语使用线性拟合您的自定义算法方程。如果expr是一个字符串或者匿名函数,那么工具箱使用非线性拟合的算法。

    线性拟合的更多细节,请参阅选择线性拟合在命令行

  • 线性和非线性自定义模型的例子。

一个循序渐进的例子,看到自定义非线性统计拟合