主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

fittype

曲線近似および曲面近似の近似タイプ

説明

aFittype=fittype(libraryModelNameは,libraryModelNameで指定されたモデルのfittypeオブジェクトaFittypeを作成します。

aFittype=fittype(表达式はMATLAB®式で指定されたモデルの近似タイプを作成します。

aFittype=fittype(表达式名称,值は1つ以上の名称,值ペア引数で指定された追加オプションを使用して近似タイプを構成します。

aFittype=fittype(线性模型术语は,线性模型术语の文字ベクトル式の 细胞配列で指定された項を使用してカスタム線形モデルの近似タイプを作成します。

aFittype=fittype(线性模型术语名称,值は1つ以上の名称,值ペア引数で指定された追加オプションを使用して近似タイプを構成します。

aFittype=fittype(匿名函数匿名函数で指定されたモデルの近似タイプを作成します。

aFittype=fittype(匿名函数名称,值は1つ以上の名称,值ペア引数で指定された追加オプションを使用して近似タイプを構成します。

すべて折りたたむ

ライブラリモデル名を指定して近似タイプを構成します。

3次多項式ライブラリモデルのfittypeオブジェクトを構成します。

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

ライブラリモデルrat33(分子と分母の両方が3次の有理モデル)の近似タイプを構成します。

f = fittype (“rat33”
一般模型Rat33: f(p1,p2,p3,p4,q1,q2,q3,x) = (p1*x^3 + p2*x^2 + p3*x + p4) / (x^3 + q1*x^2 + q2*x + q3)

ライブラリモデル名の一覧については,libraryModelNameを参照してください。

線形近似アルゴリズムを使用するには,項の细胞配列を指定します。

fittypeに入力する必要がある線形モデルA *x + b*sin(x) + cの項を特定します。このモデルは一个bcについて線形です。これには3つの項xsin (x)1c=c*1であるため)があります。このモデルを指定するには,項の细胞配列LinearModelTerms ={“x”,“sin (x)”,' 1 '}を使用します。

線形モデルの項の细胞配列をfittypeへの入力として使用します。

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

a * cos (x) + bの線形モデル近似タイプを作成します。

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

再度近似タイプを作成し,係数名を指定します。

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

問題依存のパラメーターと独立変数を指定して,カスタム非線形モデルの近似タイプを構成します。

nを問題依存のパラメーター、uを独立変数に指定して,カスタム非線形モデルの近似タイプを構成します。

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

时间を独立変数に指定して,カスタム非線形モデルの近似タイプを構成します。

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

あるデータの対数近似の近似タイプを構成します。その近似タイプを使用して近似を作成し、プロットします。

x=linspace(1100);y=5+7*log(x);myfittype=fittype(“a + b *日志(x)”...“依赖”, {“y”},“独立”, {“x”},...“系数”, {“一个”“b”})
myfittype =一般模型:myfittype(a,b,x) = a + b*log(x)
myfit =适合(x, y, myfittype)
警告:未提供起点,选择随机起点。
myfit =一般模型:myfit(x) = a + b*log(x)
绘图(myfit,x,y)

图中包含一个坐标轴。轴线包含2个线型对象。这些对象代表数据、拟合曲线。

任意のMATLABコマンドを指定できます。そのため,任意の00ファイルを指定できます。

ファイルに関数を定義し,それを使用して近似タイプを作成し曲線で近似します。

関数を MATLABファイルに定義します。

函数y = piecewiseLine (x, a, b, c, d, k)PIECEWISELINE由两件组成的线那不是连续的。y = 0(大小(x));这个例子包括一个for循环和if语句%纯粹是为了举例。i = 1:长度(x)如果X (i) < k, y(i) = a + b.* X (i);其他的y(i)=c+d*x(i);结束结束结束

ファイルを保存します。

データを定義し,関数分段线を指定して近似タイプを作成します。その近似タイプ英国《金融时报》を使用して近似を作成し,結果をプロットします。

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];ft=fittype('piecewiseLine(x, a, b, c, d, k)') f = fit(x, y, ft,)曾经繁荣的[1,0,1,0,0.5])图(f,x,y)

無名関数を使用して近似タイプを作成します。

a*x, x, x, x, x, x, x, x, x, x, 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”);

無名関数を使用して曲面の近似タイプを作成し,独立パラメーター,従属パラメーター,适合を呼び出すときに後で指定する問題のパラメーターを指定します。

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

無名関数を使用して,ワークスペースデータを関数fittypeおよび适合に渡します。

年代字型の曲線を作成しプロットします。後の手順で,この曲線の引き伸ばしと移動を行いデータを近似します。

%断点。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形曲线。Xi = linspace(0,1, 241);Plot (xi, interp1(xs, ys, xi,“pchip”),“线宽”2) hold情节(x, y,“哦”“MarkerFaceColor”“r”)举行标题S曲线

無名関数を使用して近似タイプを作成します。このとき、曲線のブレークポイント (xs)とブレークポイントでの曲線の高さ(y)の値をワークスペースから取得します。係数はb(ベースと)h(高さ)です。

ft=fittype(@(b,h,x)interp1(xs,b+h*ys,x,“pchip”) )

係数の例としてベースb = 1.1と高さh = -0.8を指定して,fittypeをプロットします。

地块(xi, ft(1.1, -0.8, xi),“线宽”2)标题'Fittype with b=1.1 and 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, ft,)“开始”, [0,1])%情节适合绘图(f、扩展数据、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)a*x.^2+b*x+c,“问题”“c”%检查系数。观察c不是一个系数。系数名称(g)%检查参数。注意c是一个参数。argnames (g)%调用fit并指定c的值。F1 =拟合(xdata, ydata, g,)“问题”0,曾经繁荣的, [1,2])%注意:在调用中指定合适的起始点%避免关于随机起点的警告消息%并确保结果的可重复性。再次调用fit并指定一个不同的值c,去换一套新的衣服。F2 =拟合(xdata, ydata, g,)“问题”, 1“开始”, [1,2])%的阴谋的结果。观察指定的c常数不合身。Plot (f1, xdata, ydata)持有情节(f2,“b”)举行

前の例を変更し,問題のパラメーターを使用する代わりに,変数のワークスペース値を使用して同じ近似を作成します。同じデータを使用し,変数cのワークスペース値を指定した無名関数を使用して曲線の近似タイプを作成します。

%从参数列表中删除c。试一试x *x,x,x,x,x,x,x,x,x,x^ 2 + b * x + c)E信息结束%观察错误,因为现在c是未定义的。%定义c并创建fittype:c = 0;@(a,b,x);^ 2 + b * x + c)%调用fit(现在不需要指定问题参数)。f1=拟合(扩展数据、ydata、g1、,曾经繁荣的, [1,2])注意,这个f1和上面的f1是一样的。要更改c的值,请重新创建fittype。c = 1;a*x,x,x,x,x,x,x,x,x,x^ 2 + b * x + c)%使用c = 1F2 =拟合(xdata, ydata, g2,)曾经繁荣的, [1,2])%请注意,此f2与上面的f2相同。%绘制结果Plot (f1, xdata, ydata)持有情节(f2,“b”)举行

入力引数

すべて折りたたむ

近似に使用するライブラリモデル。文字ベクトルとして指定します。次の表にいくつかの一般的な例を示します。

ライブラリ モデル名

説明

“poly1”

線形多項式曲線

“poly11”

線形多項式曲面

“poly2”

2 次多項式曲線

“linearinterp”

区分的線形内挿

“cubicinterp”

区分的 三次内挿

“smoothingspline”

平滑化スプライン (曲線)

“洛斯”

局所線形回帰 (曲面)

ライブラリモデル名の一覧については,モデルの名前と方程式を参照してください。

例:“poly2”

データ型:烧焦

近似に使用するモデル。文字ベクトルとして指定します。任意の MATLABコマンドを指定できます。そのため、任意の00ファイルを指定できます。詳細は,ファイルで定義された曲線による近似を参照してください。

データ型:烧焦

近似に使用するモデル。文字ベクトルの cell 配列として指定します。文字ベクトル内の式によってモデル項を指定します。項の式には係数を含めないでください。詳細は、線形モデル項を参照してください。

データ型:细胞

近似に使用するモデル。無名関数として指定します。詳細は、無名関数の入力順序を参照してください。

データ型:烧焦

名前と値のペアの引数

引数名称,值のオプションのコンマ区切りペアを指定します。的名字は引数名、价值は対応する値です。的名字は引用符で囲まなければなりません。名称1,值1,…,名称,值のように,複数の名前と値のペアの引数を任意の順番で指定できます。

例:'系数',{'a1','a2'}

係数名。“系数”と、1つの文字ベクトルまたは文字ベクトルの 细胞配列 (名前を複数指定する場合) で構成されるコンマ区切りのペアとして指定します。複数の文字から成る記号名を使用できます。jπinf每股收益を名前として使用することはできません。

データ型:烧焦|细胞

従属 (応答) 変数名。“依赖”と文字ベクトルで構成されるコンマ区切りのペアとして指定します。従属変数を指定しない場合,この関数はyを従属変数と仮定します。

データ型:烧焦

独立 (応答) 変数名。“独立”と1つの文字ベクトルまたは文字ベクトルの细胞配列で構成されるコンマ区切りのペアとして指定します。独立変数を指定しない場合,この関数はxを独立変数と仮定します。

データ型:烧焦

近似オプション。“选项”fitoptionsオブジェクトの名前で構成されるコンマ区切りのペアとして指定します。

問題依存の(固定)パラメーター名。“问题”と、1つの文字ベクトルまたは問題依存の定数ごとに 1つの要素をもつ文字ベクトルの 细胞配列で構成されるコンマ区切りのペアとして指定します。

データ型:烧焦|细胞

出力引数

すべて折りたたむ

近似に使用するモデル。fittypeとして返されます。fittypeはモデルを記述する情報をカプセル化します。近似を作成するには,データ,fittype,さらに(オプションで)fitoptionsや排除規則が必要です。fittypeを関数适合への入力として使用することができます。

詳細

すべて折りたたむ

従属変数と独立変数

変数が従属変数であるか独立変数であるかを判断するにはどうするとよいでしょうか。

従属変数,独立変数,係数を決定するために,次の方程式を考えます。

y f x 一个 + b x + c x 2

  • yは従属変数です。

  • xは独立変数です。

  • a、bおよびcは係数です。

“独立”変数は制御対象です。“依赖”変数は測定対象であり,独立変数に依存します。“系数”は近似アルゴリズムで推定するパラメーターです。

たとえば,国勢調査データの場合,年は他の値に依存しないため独立変数です。人口は,値が国勢調査の実施年に依存するため従属変数です。増加率などのパラメーターがモデルに含まれる場合,近似アルゴリズムで推定されるため,このパラメーターは“系数”の1つです。

関数fittypeは、近似タイプの式の入力から変数名を検索して入力引数を決定します。fittypeは,xが独立変数,yが従属変数、他のすべての変数がモデルの係数であると仮定します。変数が存在しない場合は、xが使用されます。

無名関数の入力順序

近似タイプの式の入力が無名関数である場合,入力の順序が正しくなければなりません。この入力の順序に基づいて,関数fittypeはどの入力が推定する係数,問題依存のパラメーター,独立変数であるかを判断します。

無名関数の入力引数の順序は次のとおりでなければなりません。

FCN = @(系数,问题参数,x,y)表达式
係数は少なくとも 1つ必要です。問題のパラメーターとyはオプションです。最後の引数であるxyは独立変数を表します。曲線の場合はxのみですが,曲面の場合はxyが必要です。xまたはy以外を独立変数の名前に使用するには,“独立”引数の名前と値のペアを使用して別の名前を指定します。ただし,どのような名前を選択する場合でも,これらの引数は無名関数の最後の引数でなければなりません。

無名関数を使用すると,他のデータを関数fittype适合に簡単に渡せます。

  1. 無名関数とワークスペースの変数値 (c)を使用して近似タイプを作成します。

    c = 1;x *x, x, x, x, x, x, x, x, x, x^ 2 + b * x + c)
  2. 近似タイプを作成するとき,関数fittypeでワークスペースの変数値を使用できます。ワークスペースから新しいデータを渡すには,次のように近似タイプを再作成します。

    c = 5%改变c的值。x *x, x, x, x, x, x, x, x, x, x^ 2 + b * x + c)
  3. ここで,近似タイプを作成するときcの値は固定されます。适合を呼び出すときにcの値を指定するために、問題のパラメーターを使用することができます。たとえば、c = 2を指定して近似を作成し,さらにc = 3を指定して新しい近似を作成することができます。

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

線形モデル項

線形モデル項はどのように定義するとよいでしょうか。

線形近似アルゴリズムを使用するには,线性模型术语を項の细胞配列として指定します。

afittype = fittype ({expr1,..., exprn})
文字ベクトルexpr2,…,exprn内の式によってモデル項を指定します。項の式には係数を含めないでください。定数項がある場合は,细胞配列内で対応する式として' 1 'を使用します。

次の形式の線形モデルを指定する方法は次のとおりです。

Coeff1 * term1 + coeff2 * term2 + coeff3 * term3 +...
ここで,术语1术语2などはいずれも係数を含みません。细胞配列を使用し、exprとして各項を係数を含めずに次のように指定します。
LinearModelTerms = {“term1”“term2”“term3”...

たとえば,次のモデルを考えます。

A *x + b*sin(x) + c
これは一个bおよびcについて線形です。これには3つの項xsin (x)1(c=c*1であるため) があります。したがって、exprは次のようになります。
LinearModelTerms = {“x”“sin (x)”' 1 '

曲線近似アプリで、[線形近似]モデル タイプを確認します。

アルゴリズム

近似タイプの式の入力が文字ベクトルまたは無名関数の場合,ツールボックスではモデルをデータに当てはめるために非線形近似アルゴリズムが使用されます。

近似タイプの式の入力が項の细胞配列の場合,ツールボックスではモデルでデータを近似するために線形近似アルゴリズムが使用されます。

R2006aより前に導入