主要内容

fittype

适合类型曲线和曲面拟合

描述

例子

aFittype= fittype (libraryModelName)创建fittype对象aFittype指定的模式libraryModelName

aFittype= fittype (表达式)创建了一个合适的类型指定为模型的MATLAB®表达式。

例子

aFittype= fittype (表达式,名称,值)构建适合类型由一个或多个指定附加选项名称,值对参数。

例子

aFittype= fittype (linearModelTerms)创建了一个合适的类型与术语指定一个自定义的线性模型的表达式linearModelTerms

例子

aFittype= fittype (linearModelTerms,名称,值)构建适合类型由一个或多个指定附加选项名称,值对参数。

例子

aFittype= fittype (anonymousFunction)为指定的模型创建一个合适的类型anonymousFunction

例子

aFittype= fittype (anonymousFunction,名称,值)构建适合类型由一个或多个指定附加选项名称,值对参数。

例子

全部折叠

构建适合类型通过指定库模型名称。

构造一个fittype对象为三次多项式模型库。

f = fittype (“poly3”)
线性模型Poly3: f = f (p1, p2, p3, p4, x) = p1 * x ^ 3 + p2 * x ^ 2 + p3 * x + p4

构造一个合适的类型库模型rat33第三度(理性模型的分子和分母)。

f = fittype (“rat33”)
f =一般模型Rat33: f (p1, p2, p3, p4,第一季度,第二季度,第三季度,x) = (p1 * x ^ 3 + p2 * x ^ 2 + p3 * x + p4) / (x ^ 3 + q1 * x ^ 2 + * x +第三季)

库模型名称的列表,请参阅libraryModelName

构建适合类型定制的非线性模型,指定problem-dependent参数和独立变量。

定制的非线性模型,构建一个适合类型指定n作为problem-dependent参数u作为独立变量。

g = fittype (“* u + b * exp (n * u)”,“问题”,“n”,“独立”,“u”)
g =一般模型:g (a、b、n, u) = a * u + b * exp (n * u)

定制的非线性模型,构建一个适合类型指定时间作为独立变量。

g = fittype (“* ^ 2 + b *时间+ c”,“独立”,“时间”,“依赖”,“高度”)
g =一般模型:g (a, b, c,时间)= * ^ 2 + b *时间+ c

构建一个符合对数适合一些数据类型,使用合适类型创建一个健康,和情节的健康。

x = linspace (1100);y = 5 + 7 *日志(x);myfittype = fittype (“a + b *日志(x)”,“依赖”,{“y”},“独立”,{“x”},“系数”,{“一个”,“b”})
myfittype =一般模型:myfittype (a, b, x) = a + b *日志(x)
myfit =适合(x, y, myfittype)
警告:起点不提供,选择随机起始点。
myfit =一般模型:myfit (x) = a + b *日志(x)系数(95%置信界限):a = 5 (5,5) b = 7 (7)
情节(myfit, x, y)

图包含一个坐标轴对象。坐标轴对象包含x, y ylabel包含2线类型的对象。一个或多个行显示的值只使用这些对象标记表示数据,拟合曲线。

您可以指定任何MATLAB命令,因此。m文件。

使用一个线性拟合的算法,指定一个单元阵列的条款。

识别线性模型需要输入fittype:* x + b * sin (x) + c。该模型是线性的一个,bc。它有三个方面x,sin (x)1(因为c = c * 1)。指定这个模型你使用这种单元阵列的术语:LinearModelTerms = {“x”,“sin (x)”, ' 1 '}

使用线性模型的单元阵列条件作为输入fittype

英国《金融时报》= fittype ({“x”,“sin (x)”,' 1 '})
英国《金融时报》=线性模型:英国《金融时报》(a, b, c, x) = a * x + b * sin (x) + c

创建一个线性模型适合类型a * cos (x) + b

ft2 = fittype ({“cos (x)”,' 1 '})
ft2 =线性模型:ft2 (a, b, x) = a * cos (x) + b

再次创建合适的类型,并指定系数的名字。

发生= fittype ({“cos (x)”,' 1 '},“系数”,{“a1”,“a2”})
发生=线性模型:发生(a1, a2, x) * cos (x) = a1 + a2

定义一个函数在一个文件,并使用它来创建一个合适类型和曲线。

定义一个函数在一个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。* *(我);结束结束结束

保存文件。

定义一些数据,创建一个适合类型指定函数piecewiseLine,创建一个适合使用合适的类型英国《金融时报》,画出结果。

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);英国《金融时报》= fittype (“piecewiseLine (x, a, b, c, d, k)”)f =适合(x, y,英国《金融时报》,曾经繁荣的,(1,0,1,0,0.5])情节(f, x, y)

创建一个适合类型使用一个匿名函数。

g = fittype (@ (a, b, c, x) * x。^ 2 + b * x + c)

创建一个适合类型使用一个匿名函数和指定的独立和依赖的参数。

g = fittype (@ (a, b, c, d, x, y) * x ^ 2 + b * x + c * exp (——(y-d)。^ 2),“独立”,{“x”,“y”},“依赖”,“z”);

创建一个合适的类型的表面使用一个匿名函数和指定的独立和依赖的参数,您将指定和问题参数后,你的呼唤适合

g = fittype (@ (a, b, c, d, x, y) * x。^ 2 + b * x + c * exp (- (y-d)。^ 2),“问题”,{“c”,' d '},“独立”,{“x”,“y”},“依赖”,“z”);

使用一个匿名函数通过空间数据fittype适合功能。

创建和绘制一个s形曲线。在后面的步骤中,你拉伸曲线,适合一些数据。

%断点。x = (0:0.1:1)。';%的高度曲线在断点。(y = 0;0;0.04;0.1;0.2;0.5;0.8;0.9;0.96;1; 1];% s形曲线。ξ= linspace (0, 1, 241);情节(xi, interp1 (x, y,,“pchip”),“线宽”,2)情节(x, y,“o”,“MarkerFaceColor”,“r”)举行标题s曲线

创建一个适合类型使用一个匿名函数,曲线断点值从工作区中(xs)和曲线的高度断点(y)。系数是b(基地)和h(高度)。

英国《金融时报》= fittype (@ (b h x) interp1 (xs, b + h * y, x,“pchip”))

画出fittype指定的例子系数基地b = 1.1和高度h = -0.8

情节(xi,英尺(1.1,-0.8,xi),“线宽”2)标题“Fittype b = 1.1和h = -0.8 '

加载和适合一些数据,使用合适的类型英国《金融时报》使用工作区创建的值。

%加载一些数据xdata = [0.012; 0.054; 0.13; 0.16; 0.31; 0.34; 0.47; 0.53; 0.53;0.57;0.78;0.79;0.93);ydata = [0.78; 0.87; 1; 1.1; 0.96; 0.88; 0.56; 0.5; 0.5; 0.5; 0.63;0.62;0.39);%配合曲线数据f =适合(xdata ydata,英国《金融时报》,“开始”[0,1])%情节适合情节(f xdata ydata)标题“安装s曲线”

这个例子展示了使用匿名函数之间的差异问题参数和工作空间变量的值。

加载数据,创建一个适合类型使用一个匿名函数曲线与参数问题,和电话适合指定参数的问题。

%加载一些数据。xdata = [0.098; 0.13; 0.16; 0.28; 0.55; 0.63; 0.81; 0.91; 0.91;0.96;0.96;0.96;0.97);ydata = [0.52; 0.53; 0.53; 0.48; 0.33; 0.36; 0.39; 0.28; 0.28;0.21;0.21;0.21;0.2);%创建一个有问题的fittype参数。g = fittype (@ (a, b, c, x) * x, x ^ 2 + b * + c,“问题”,“c”)%检查系数。观察c不是一个系数。coeffnames (g)%检查参数。观察到c是一个论点。argnames (g)%的电话,指定c的价值。f1 =适合(xdata ydata, g,“问题”0,曾经繁荣的[1,2])%注意:指定调用适合开始点%避免对随机警告消息的开始点%,确保可重复性的结果。% c的再次调用合适的并指定一个不同的值,%来得到一个新的健康。f2 =适合(xdata ydata, g,“问题”,1“开始”[1,2])%的阴谋的结果。观察c指定常量%不适合。情节(f1 xdata ydata)情节(f2,“b”)举行

修改前面的示例创建相同的适合使用工作空间变量的值,而不是使用问题的参数。使用相同的数据,创建一个适合类型使用一个匿名函数曲线与工作空间变量的值c:

%从参数列表中删除c。试一试g = fittype (@ (a, b, x) * x。^ 2 + b * x + c)e disp (e。消息)结束%观察错误因为现在c是未定义的。%定义c和创建fittype:c = 0;g1 = fittype (@ (a, b, x) * x。^ 2 + b * x + c)%调用合适的(现在不需要指定问题参数)。f1 =适合(xdata ydata g1,曾经繁荣的[1,2])%注意这f1是一样的f1。%改变c的价值,重新创建fittype。c = 1;g2 = fittype (@ (a, b, x) * x。^ 2 + b * x + c)%使用c = 1f2 =适合(xdata ydata g2,曾经繁荣的[1,2])%注意这f2上面是一样的f2。%绘制结果情节(f1 xdata ydata)情节(f2,“b”)举行

输入参数

全部折叠

适合图书馆模型,指定为一个特征向量或字符串标量。此表显示了一些常见的例子。

库模型名称

描述

“poly1”

线性多项式曲线

“poly11”

线性多项式表面

“poly2”

二次多项式曲线

“linearinterp”

分段线性插值

“cubicinterp”

分段立方插值

“smoothingspline”

平滑样条(曲线)

“洛斯”

局部线性回归(表面)

库模型名称的列表,请参阅模型名称和方程

例子:“poly2”

数据类型:字符|字符串

模型以适应,指定为一个特征向量或字符串标量。您可以指定任何MATLAB命令,因此。m文件。看到适合曲线定义为一个文件

数据类型:字符|字符串

模型以适应,指定为一个单元阵列特征向量或一个字符串数组。指定模型计算的表达式或字符串标量特征向量。不包括系数的表达式。看到线性模型方面

数据类型:细胞

模型以适应,指定为一个匿名函数。有关详细信息,请参见输入订单匿名函数

数据类型:字符

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“系数”,{a1, a2的}

系数名称指定为逗号分隔组成的“系数”和一个特征向量,字符串标量,单元阵列的特征向量,或字符串数组。您可以使用multicharacter符号名称。你不能使用这些名称:,j,π,,,每股收益

数据类型:字符|字符串|细胞

依赖的变量名(反应),指定为逗号分隔组成的“依赖”和一个字符向量或字符串标量。如果你不指定因变量,函数假设y是因变量。

数据类型:字符|字符串

独立的变量名(反应),指定为逗号分隔组成的“独立”和一个特征向量,字符串标量,单元阵列的特征向量,或字符串数组。如果你不指定自变量,函数假设x是独立的变量。

数据类型:字符|字符串|细胞

合适的选项,指定为逗号分隔组成的“选项”和的名称fitoptions对象。

Problem-dependent(固定)的参数名称,指定为逗号分隔组成的“问题”和一个特征向量,字符串标量,单元阵列的特征向量,每个问题相关的常量或字符串数组的一个元素。

数据类型:字符|字符串|细胞

输出参数

全部折叠

模型以适应,作为一个返回fittype。一个fittype封装信息描述模型。要创建一个合适的,你需要的数据,一个fittype和(可选)fitoptions和一个排除规则。您可以使用一个fittype作为输入适合函数。

更多关于

全部折叠

依赖和独立变量

我如何决定哪些变量是依赖和独立?

依赖和独立变量和确定系数,考虑这个方程:

y = f ( x ) = 一个 + ( b * x ) + ( c * x 2 )

  • y是因变量。

  • x是独立的变量。

  • 一个,b,c的系数。

“独立”变量是你控制。的“依赖”变量是你测量,即。,我t depends on the independent variable. The“系数”是拟合的算法的参数估计。

例如,如果您有人口普查数据,那么今年是独立的变量,因为它并不依赖于任何东西。人口是因变量,因为它的价值取决于今年的人口普查。如果一个参数增长率是模型的一部分,所以拟合的算法估计,然后参数之一“系数”

fittype函数确定输入参数通过搜索适合类型表达式输入变量名。fittype假设x是自变量,y是因变量,所有其他变量是模型的系数。x如果没有使用变量的存在。

输入订单匿名函数

如果符合类型表达式输入是一个匿名函数,那么输入的顺序必须是正确的。使输入订单fittype函数来确定哪些输入系数估计,problem-dependent参数,和独立变量。

匿名函数的输入参数的顺序必须:

fcn = @ (problemparameters系数,x, y)表达式
你需要至少一个系数。问题参数和y是可选的。最后一个参数,xy代表独立变量:而已x曲线,但xy表面。如果你不想使用x和/或y独立变量的名字,然后使用指定不同的名称“独立”参数名称-值对。然而,无论你选择何种名称或名称,这些参数必须是最后一个匿名函数的参数。

匿名函数更容易通过其他数据fittype适合功能。

  1. 创建一个适合类型使用一个匿名函数和变量值(c从工作空间)。

    c = 1;g = fittype (@ (a, b, x) * x。^ 2 + b * x + c)
  2. fittype函数可以使用变量值在工作区中当您创建合适的类型。通过从工作区在新数据,重建健康的类型,例如,

    c = 5变化百分比值c。g = fittype (@ (a, b, x) * x。^ 2 + b * x + c)
  3. 这里的价值c是固定的,当你创建一个合适的类型。指定的价值c当时你的呼唤适合参数,您可以使用问题。例如,做一个符合c = 2然后一个新的符合c = 3

    g = fittype (@ (a, b, c) * x, x ^ 2 + b * + c,“问题”,“c”)f1 =适合(xdata ydata, g,“问题”2)f2 =适合(xdata ydata, g,“问题”3)

线性模型方面

我如何定义线性模型术语?

使用一个线性拟合的算法,指定linearModelTerms的细胞数组或字符串数组。例如:

afittype = fittype ({expr1,,exprn})
指定模型特征向量的表达式expr2,…, exprn。不包括系数的表达式。如果有一个常数项,使用' 1 '单元阵列中的相应表达。

指定一个线性模型下面的形式:

coeff1 * term1 + coeff2 * term2 + coeff3 * term3 +
没有系数出现在的吗term1,term2细胞等,使用数组或字符串数组,其中每个术语,没有系数,一个细胞或元素中指定的expr,如下所示:
LinearModelTerms = {“term1”,“term2”,“term3”,}

例如,模型

* x + b * sin (x) + c
是线性的一个,b,c。它有三个方面x,sin (x)1(因为c = c * 1),因此expr是:
LinearModelTerms = {“x”,“sin (x)”,' 1 '}

在曲线健康应用程序,选择一个线性拟合适合的自定义集团在适合类型部分。

算法

如果符合类型表达式输入是一个特征向量,字符串标量,或匿名函数,那么工具箱使用非线性拟合的算法以适应模型数据。

如果符合类型表达式输入是一个细胞数组或字符串数组的术语,然后工具箱使用线性拟合的算法以适应模型数据。

版本历史

之前介绍过的R2006a

另请参阅

功能

应用程序