主要内容

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

适合

曲線または曲面でデータを近似する

説明

fitobject=健康(xy菲特型)菲特型で指定されたモデルを使用し,xおよびyについてデータの近似を作成します。

fitobject=适合([xy],z菲特型)は,ベクトルxyzについてデータの曲面近似を作成します。

fitobject=健康(xy菲特型fitOptions)は,fitOptionsオブジェクトで指定されたアルゴリズム オプションを使用してデータの近似を作成します。

fitobject=健康(xy菲特型名称,值)は,ライブラリモデル菲特型と、1.つ以上の名称,值ペア引数で指定された追加オプションを使用してデータの近似を作成します。fitoptionsを使用すると,特定のライブラリモデルの使用可能なプロパティ名と既定の値を表示できます。

fitobjectgof]=适合(xy菲特型)は,構造体gofの適合度の統計量を返します。

fitobjectgof输出]=适合(xy菲特型)は,構造体输出の近似アルゴリズム情報を返します。

すべて折りたたむ

データを読み込み2次曲線で変数cdateおよび流行を近似し、近似とデータをプロットします。

负载人口普查;f =适合(cdate、流行,“poly2”)
系数(有95%置信限):p1 = 0.006541 (0.006124, 0.006958) p2 = -23.51 (-25.09, -21.93) p3 = 2.113e+04 (1.964e+04, 2.262 2e+04)
情节(f cdate流行)

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

データを読み込み、xについて2次,yについて3次の多項式曲面で近似します。近似とデータをプロットします。

负载因特网科幻小说=适合(x, y, z,‘poly23’)
线性模型Poly23: sf(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y + p12*x*y^2 + p03*y^3P00 = 1.118 (0.9149, 1.321) p10 = -0.0002941 (-0.000502, -8.623e-05) p01 = 1.533 (0.7032, 2.364) p20 = -1.966e-08 (-0.0001009, - 0.0007863) p11 = 0.0003427 (-0.0001009, - 0.0007863) p02 = -6.951 (-8.421, -5.481) p21 = 9.563e-08 (-0.0007082, -0.0001721) p12 = -0.0004401 (-0.0007082, -0.0001721) p03 = 4.999 (4.082, 5.917)
情节(科幻,x, y, z)

因特网データを読み込み,MATLAB®テーブルに変換します。

负载因特网T =表(x, y, z);

テーブル内の変数を関数适合への入力として指定し,近似をプロットします。

f = ((T。x,T.y],T.z,“linearinterp”);情节(f, [T。x,T.y], T.z )

データを読み込んでプロットし、関数菲特型およびfitoptionsを使用して近似オプションと近似タイプを作成してから,近似を作成してプロットします。

census.matのデータを読み込んでプロットします。

负载人口普查绘图(cdate、pop、,“哦”)

カスタム非線形モデル y 一个 x - b ) n について近似オプション オブジェクトと近似タイプを作成します。ここで、一个bは係数,nは問題依存のパラメーターです。

fo = fitoptions (“方法”“NonlinearLeastSquares”...“更低”(0, 0),...“上”(正无穷,max (cdate)),...曾经繁荣的,[1]);ft=fittype(“a*(x-b)^n”“问题”“不”“选项”,fo);

近似オプションとn= 2 の値を使用して、データを近似します。

[curve2, gof2] =适合(cdate、流行、英国《金融时报》,“问题”,2)
系数(95%置信限):a = 0.006092 (0.005743, 0.006441) b = 1789(1784,1793)问题参数:n = 2
gof2 =结构体字段:sse:246.1543平方米:0.9980 dfe:19调整平方米:0.9979 rmse:3.5994

近似オプションとn= 3の値を使用して,データを近似します。

[curve3, gof3] =适合(cdate、流行、英国《金融时报》,“问题”,3)
系数(有95%置信限):a = 1.359e-05 (1.245e-05, 1.474e-05) b = 1725 (1718,1731
gof3 =结构体字段:adrsquare: 0.9980 rmse: 3.4944

近似結果をデータと共にプロットします。

持有情节(curve2“我是)情节(curve3“c”)传奇(“数据”‘n=2’‘n=3’)举行

データを読み込み,データのセンタリングとスケーリング(规范化) およびロバスト近似オプションを指定して 3.次多項式で近似し、プロットします。

负载人口普查;f =适合(cdate、流行,“poly3”“正常化”“上”“稳健”“Bisquare”)
f=线性模型Poly3:f(x)=p1*x^3+p2*x^2+p3*x+p4,其中x通过平均值1890和标准62.05系数(95%置信限)进行归一化:p1=-0.4619(-1.895,0.9707)p2=25.01(23.79,26.22)p3=77.03(74.37,79.7)p4=62.81(61.26,64.37)
情节(f cdate流行)

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

関数を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('分段线(x,a,b,c,d,k)') f = fit(x, y, ft,)曾经繁荣的[1,0,1,0,0.5])图(f,x,y)

データを読み込み,排除する点を指定してカスタム式で近似します。結果をプロットします。

データを読み込み、カスタム式と開始点を定義します。

[x,y]=钛;高斯序列n=(a * exp() -(取向/ c) ^ 2) + d '
gaussEqn = ' * exp(((取向)/ c) ^ 2) + d '
起点=[1.590010.6]
曾经繁荣=1×41.5000 900.0000 10.0000 0.6000

カスタム式と開始点を使用して 2.つの近似を作成します。インデックス ベクトルと式を使用して 2.組の異なる排除点を定義します。排除を使用して近似から外れ値を削除します。

f1 =适合(x, y, gaussEqn,“开始”,起点,“排除”, [1 10 25])
f1=一般模型:f1(x)=a*exp(-(x-b)/c^2)+d系数(具有95%置信限):a=1.493(1.432,1.554)b=897.4(896.5898.3)c=27.9(26.55,29.25)d=0.6519(0.6367,0.6672)
f2 =适合(x, y, gaussEqn,“开始”,起点,“排除”, x < 800)
系数(95%置信限):a = 1.494 (1.41, 1.578) b = 897.4 (896.2, 898.7) c = 28.15 (26.22,30.09) d = 0.6466 (0.6169, 0.6764)

両方の近似をプロットします。

情节(f1, x, y)标题('拟合数据点1,10和25排除')

图绘制(f2, x, y)标题('拟合的数据点排除,如x < 800')

排除する点を関数符合への入力として指定する前に,それらの点を変数として定義できます。以下の手順では,前述の例の近似を再作成し,排除した点をデータと近似と共にプロットします。

データを読み込み、カスタム式と開始点を定義します。

[x,y]=钛;高斯序列n=(a * exp() -(取向/ c) ^ 2) + d '
gaussEqn = ' * exp(((取向)/ c) ^ 2) + d '
起点=[1.590010.6]
曾经繁荣=1×41.5000 900.0000 10.0000 0.6000

インデックスベクトルと式を使用して,排除する2組の点を定義します。

excepde1 = [1 10 25];Exclude2 = x < 800;

カスタム式,開始点および2組の異なる排除点を使用して2つの近似を作成します。

f1 =适合(x, y, gaussEqn,“开始”,起点,“排除”, exclude1);f2 =适合(x, y, gaussEqn,“开始”,起点,“排除”,不包括2);

両方の近似をプロットし、排除したデータを強調表示します。

情节(f1, x, y, exclude1)标题('拟合数据点1,10和25排除')

图;情节(f2, x, y, exclude2)标题('拟合的数据点排除,如x < 800')

排除点を使用する曲面近似の例として,曲面データを読み込み,排除するデータを指定して近似を作成しプロットします。

负载因特网= [x y],z,‘poly23’“排除”, [1 10 25]);f = [x y],z,‘poly23’“排除”, z > 1);图(f1, [x y], z,“排除”, [1 10 25]);标题('拟合数据点1,10和25排除')

图2(f2,[x y],z,“排除”,z>1);标题('拟合排除的数据点z > 1')

データを読み込み,変数および压力を使用して平滑化スプライン曲線で近似し,適合度情報と出力構造体を返します。データに対する近似と残差をプロットします。

负载enso[曲线、优点、输出]=拟合(月份、压力、,“平滑样条线”);情节(压力曲线、月);包含(“月”);ylabel (“压力”);

xデータ () に対する残差をプロットします。

Plot (curve, month, pressure,“残差”)包含(“月”) ylabel (“残差”)

输出構造体のデータを使用して、Yデータ (压力) に対する残差をプロットします。

情节(压力、output.residuals、“。”)包含(“压力”) ylabel (“残差”)

指数関数的トレンドのデータを生成し,指数モデルの曲線近似ライブラリにある最初の方程式(単項指数関数)を使用してそのデータを近似します。結果をプロットします。

x =(0:0.2:5)”;Y = 2*exp(-0.2*x) + 0.5*randn(size(x))); / /f =适合(x, y,“exp1”);情节(f, x, y)

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

データを読み込み、無名関数を定義する前にEmax1に設定します。

数据= importdata (“OpioidHypnoticSynergy.txt”);异丙酚= data.data (: 1);Remifentanil = data.data (:, 2);痛觉计= data.data (: 3);Emax = 1;

モデル方程式を無名関数として定義します。

效应=@(IC50A,IC50B,α,n,x,y)...*(x/IC50A + y/IC50B + α *(x/IC50A))....* (y/IC50B))。^n ./(x/IC50A + y/IC50B +...alpha*(x/IC50A). *(y/IC50B))。^ n + 1);

無名関数效果を関数适合への入力として使用し,結果をプロットします。

alometryeeffect = fit([异丙酚,瑞芬太尼],alometryeeffect,...曾经繁荣的, [2, 10, 1,0.8],...“更低”,[-Inf,-Inf,-5,-Inf],...“稳健”“守护神”) plot(algometryeeffect,[异丙酚,瑞芬太尼],Algometry)

無名関数の使用例と他の近似用カスタムモデルの詳細については,関数菲特型を参照してください。

プロパティ降低曾经繁荣については,係数のエントリ順序を確認する必要があります。

近似タイプを作成します。

ft=fittype('b*x^2+c*x+a');

関数科夫名称を使用して係数名と順序を取得します。

coeffnames(英尺)
ans =3 x1细胞{a} {b} {' c '}

これは、菲特型を使用して英国《金融时报》を作成するときに使用する式の係数の順序とは異なることに注意してください。

データを読み込み、近似を作成し、開始点を設定します。

负载ensofit(月,压力,英国《金融时报》,曾经繁荣的, 1、3、5)
ans=一般模型:ans(x)=b*x^2+c*x+a系数(具有95%置信限):a=10.94(9.362,12.52)b=0.0001677(-7.985e-05,0.0004153)c=-0.0224(-0.06559,0.02079)

これにより,一个= 1b = 3c = 5のように、係数に初期値が代入されます。

または,近似オプションを取得し,開始点と下限を設定してから,新しいオプションを使用して再近似することもできます。

选择= fitoptions(英尺)
options = Normalize: 'off' Exclude: [] Weights: [] Method: 'NonlinearLeastSquares' Robust: 'off' StartPoint: [1x0 double] Lower: [1x0 double] Upper: [1x0 double] Algorithm: ' confidence - region ' DiffMinChange: 1.0000e-08 DiffMaxChange: 0.1000 Display: 'Notify' MaxFunEvals: 600 MaxIter: 400 TolFun: 1.0000e-06 TolX: 1.0000e-06
选项。StartPoint = [10 1 3];选项。降低=[0 -Inf 0]; fit(month,pressure,ft,options)
a = 10.23 (9.448, 11.01) b = 4.335e-05 (-1.82e-05, 0.0001049) c = 5.523e-12(固定在边界)

入力引数

すべて折りたたむ

近似対象のデータ。1列 (曲線近似) または 2 列 (曲面近似) の行列として指定します。tablename.varnameを使用して MATLABテーブル内の変数を指定できます。Infまたはを含めることはできません。複素数データの実数部のみが近似に使用されます。

例:x

例:[x,y]

データ型:双重的

近似対象のデータ。xと同じ行数の列ベクトルとして指定します。tablename.varnameを使用して MATLABテーブル内の変数を指定できます。Infまたはを含めることはできません。複素数データの実数部のみが近似に使用されます。

データが列ベクトル形式でない場合は、prepareCurveDataまたはprepareSurfaceDataを使用します。

データ型:双重的

近似対象のデータ。xと同じ行数の列ベクトルとして指定します。tablename.varnameを使用して MATLABテーブル内の変数を指定できます。Infまたはを含めることはできません。複素数データの実数部のみが近似に使用されます。

データが列ベクトル形式でない場合は、prepareSurfaceDataを使用します。たとえば,3 つの行列がある場合やデータがグリッド ベクトル形式である場合が該当します。ただし、length(X) = n, length(Y) = mおよび尺寸(Z)=[m,n]とします。

データ型:双重的

近似に使用するモデル タイプ。ライブラリ モデル名の文字ベクトル、MATLAB式、線形モデル項の 单间牢房配列、無名関数または関数菲特型により構成された菲特型として指定します。菲特型への有効な最初の入力のいずれかを适合への入力として使用できます。

ライブラリモデル名の一覧については,モデルの名前と方程式を参照してください。次の表にいくつかの一般的な例を示します。

ライブラリ モデル名

説明

“poly1”

線形多項式曲線

‘poly11’

線形多項式曲面

“poly2”

2 次多項式曲線

“linearinterp”

区分的線形内挿

“cubicinterp”

区分的 3.次内挿

“平滑样条线”

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

“洛斯”

局所線形回帰 (曲面)

カスタム モデルで近似するには、MATLAB式、線形モデル項の 单间牢房配列または無名関数を使用するか、関数菲特型菲特型を作成し,これを菲特型引数として使用します。例については,無名関数を使用したカスタムモデルによる近似を参照してください。線形モデル項の例については、関数菲特型を参照してください。

例:“poly2”

関数fitoptionsを使用して構成されたアルゴリズムオプションです。近似オプションにおける名前と値のペア引数の指定に代わるものです。

名前と値のペアの引数

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

例:‘下’、[0,0]、‘上’、[Inf,max(x)]、‘起点’、[1]は近似法,範囲および開始点を指定します。
すべての近似法のオプション

すべて折りたたむ

データのセンタリングとスケーリングを行うオプション。“正常化”“上”または“关”で構成されるコンマ区切りのペアとして指定します。

データ型:烧焦

近似から排除する点。“排除”と次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 論理ベクトルを記述する式。たとえば,x > 10

  • 排除する点にインデックス付けする整数のベクトル。たとえば,(1 10 25)

  • 排除数据によって作成され,真正的が外れ値を表す,すべてのデータ点についての論理ベクトル。

例については,近似からの点の排除を参照してください。

データ型:逻辑|双重的

近似の重み。“重量”と,応答データy(曲線)またはz(曲)面と同じサイズのベクトルで構成されるコンマ区切りのペアとして指定します。

データ型:双重的

問題依存の定数への代入値。“问题”と,問題依存の定数ごとに1つの要素をもつ细胞配列で構成されるコンマ区切りのペアとして指定します。詳細は,菲特型を参照してください。

データ型:细胞|双重的

平滑化オプション

すべて折りたたむ

平滑化パラメーター。“SmoothingParam”と0と1の間のスカラー値で構成されるコンマ区切りペアとして指定します。既定値はデータセットによって異なります。近似タイプがsmoothingsplineの場合のみ使用できます。

データ型:双重的

局所回帰で使用するデータ点の割合。“跨越”と0と1の間のスカラー値で構成されるコンマ区切りペアとして指定します。近似タイプが洛维斯または黄土の場合のみ使用できます。

データ型:双重的

線形および非線形最小二乗法のオプション

すべて折りたたむ

ロバスト線形最小二乗近似法。“稳健”と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

  • “守护神”— 最小絶対残差法を指定する。

  • “Bisquare”——二重平方重み法を指定する。

近似タイプ方法LinearLeastSquaresまたはNonlinearLeastSquaresのときに使用できます。

データ型:烧焦

近似される係数の下限。“更低”とベクトルで構成されるコンマ区切りのペアとして指定します。既定値は空のベクトルであり,近似が下限によって制約されないことを示します。範囲を指定する場合,ベクトルの長さは係数の数と等しくなければなりません。ベクトル値の係数のエントリ順序を確認するには,関数科夫名称を使用します。例については,開始点と範囲を設定するための係数順序の確認を参照してください。個々の制約なしの下限はによって指定できます。

方法LinearLeastSquaresまたはNonlinearLeastSquaresのときに使用できます。

データ型:双重的

近似される係数の上限。“上”とベクトルで構成されるコンマ区切りのペアとして指定します。既定値は空のベクトルであり,近似が上限によって制約されないことを示します。範囲を指定する場合,ベクトルの長さは係数の数と等しくなければなりません。ベクトル値の係数のエントリ順序を確認するには,関数科夫名称を使用します。例については,開始点と範囲を設定するための係数順序の確認を参照してください。個々の制約なしの上限は+Infによって指定できます。

方法LinearLeastSquaresまたはNonlinearLeastSquaresのときに使用できます。

データ型:逻辑

非線形最小二乗法のオプション

すべて折りたたむ

係数の初期値。曾经繁荣的とベクトルから構成されるコンマ区切りのペアとして指定します。ベクトル値の係数のエントリ順序を確認するには,関数科夫名称を使用します。例については,開始点と範囲を設定するための係数順序の確認を参照してください。

開始点(既定値は空のベクトル)を関数适合に渡さない場合,一部のライブラリモデルの開始点は経験則的に決定されます。有理モデル,ワイブルモデルおよびすべてのカスタム非線形モデルでは,係数の既定の初期値が区間(0,1)からランダムかつ一様に選択されます。その結果,同じデータとモデルを使用する複数の近似から異なる近似係数が得られる可能性があります。これを回避するには,fitoptionsオブジェクトまたは曾经繁荣のベクトル値を使用して係数の初期値を指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

近似手順で使用するアルゴリズム。“算法”と,“Levenberg Marquardt”または“信任区”で構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:烧焦

有限差分勾配の係数の最大変化量。“DiffMaxChange”とスカラーで構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

有限差分勾配の係数の最小変化量。“DiffMinChange”とスカラーで構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

コマンド ウィンドウの表示オプション。“显示”と次のいずれかのオプションで構成されるコンマ区切りのペアとして指定します。

  • “通知”— 近似が収束しない場合にのみ出力を表示する。

  • “决赛”— 最終出力のみを表示する。

  • “通路”— 各反復の出力を表示する。

  • “关”——出力を表示しない。

方法NonlinearLeastSquaresのときに使用できます。

データ型:烧焦

許容されるモデルの最大評価回数。“MaxFunEvals”とスカラーで構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

近似の許容される最大反復回数。“MaxIter”とスカラーで構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

モデル値の終了許容誤差。“托尔芬”とスカラーで構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

係数値の終了許容誤差。“TolX”とスカラーで構成されるコンマ区切りのペアとして指定します。

方法NonlinearLeastSquaresのときに使用できます。

データ型:双重的

出力引数

すべて折りたたむ

近似結果。cfitオブジェクト(曲線の場合)またはsfitオブジェクト (曲面の場合) として返されます。プロット、評価、信頼区間の計算、積分、微分または近似オブジェクトの変更を行う関数については、近似の後処理を参照してください。

適合度の統計量。次の表のフィールドを含むgof構造体として返されます。

フィールド

上交所

誤差の二乗和

rsquare

決定係数

教育部

誤差の自由度

adjrsquare

自由度調整済みの決定係数

rmse

平方根平均二乗誤差 (標準誤差)

近似アルゴリズム情報。近似アルゴリズムに関連する情報を含む输出構造体として返されます。

フィールドはアルゴリズムによって異なります。たとえば,非線形最小二乗アルゴリズムの输出構造体には次の表に示すフィールドが含まれています。

フィールド

numobs

観測値(応答値)の数

numparam

近似対象の未知パラメーター (係数) の数

残差

残差のベクトル

雅可比矩阵

ヤコビ行列

exitflag

アルゴリズムの終了条件を記述。正のフラグは許容誤差内で収束したことを示します。ゼロのフラグは関数評価または反復の最大回数を越えたことを示します。負のフラグはアルゴリズムが解に収束しなかったことを示します。

迭代

反復回数

funcCount

関数評価の回数

firstorderopt

1次の最適性の尺度(勾配成分の最大絶対値)

算法

採用された近似アルゴリズム

R2006aより前に導入