Main Content

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

polyfit

多项式の近似

说明

p=polyfit((X,,,,y,,,,nは,yの(最に)最最なとなるなるn次の多项式p((X)の係数を返します。pの係数は降べきの順で、pの長さはn+1になります。

p (( X = p 1 X n + p 2 X n - 1 + 。。。 + p n X + p n + 1

[[p,,,,s] = polyfit(X,,,,y,,,,nはさらに、誤差推定を得るためにpolyvalへのとして使用可能构造体构造体sを返します。

[[p,,,,s,,,,] = polyfit(X,,,,y,,,,nはさらに、センタリングとスケーリングの値をもつ 2 要素ベクトルを返します。亩((1)平均(x)で,亩((2)std(x)です。これらの値を使用して、polyfitXをゼロしそれが以下の标准をようににしますます

X ^ = X - X σ X

このセンタリングとスケーリングの変換により、多項式と近似アルゴリズムの両方の数値特性が改善されます。

すべて折りたたむ

[0,4*pi]の区间正弦に沿って等间隔に分布するするするする个个点をを生成し。。

X=linspace(0,4*pi,10); y = sin(x);

polyfitを使用して 7 次の多項式を点にあてはめます。

p = polyFit(x,y,7);

より細かいグリッド上で多項式を計算して結果をプロットします。

x1 = linspace(0,4*pi);y1 = polyVal(p,x1);图图(x,y,'o') 抓住plot(x1,y1) hold离开

图包含一个轴。The axes contains 2 objects of type line.

[0,1]の区間内で等間隔に配置された 5 つの点のベクトルを作成し、それらの点で y (( X = (( 1 + X - 1 を评価し。

x = linspace(0,1,5);y = 1./(1+X);

4 次の多項式をこの 5 つの点にあてはめます。一般にn个のに対してそれらのを正确に通过するn-1次の式をあてはめ。。

p = polyFit(x,y,4);

0と2のの细かい点グリッドで元の关数と多项式近似を计算します。。

x1 = linspace(0,2);Y1 = 1./(1+X1);f1 = polyval(p,x1);

元ののと多项式をより広い区间[0,2]でプロットし、多項式近似を求めるために使用した点を円で強調表示します。多項式近似は元の[0,1]の区间良好が,こののでは近似せせた关数から急速急速ににますますます

图图(x,y,'o') 抓住plot(x1,y1) plot(x1,f1,'r--')legend('y',,,,'y1',,,,'f1'

图包含一个轴。The axes contains 3 objects of type line. These objects represent y, y1, f1.

最初に、区間[0,2.5]で等間隔に分布するX个のなるベクトル作成し,のでででerf(x)を评価し。

x =(0:0.1:2.5)';y = erf(x);

6次近似项式系数をます。。

p =polyfit((X,,,,y,,,,6)
p =1×70.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004

近似のためにデータ点式をし,データ,,近似値,误差误差を表示するする表表表。

f = polyval(p,x);t =表(x,y,f,y-f,'VariableNames',{'X',,,,'y',,,,'合身',,,,'FitError'})
T=26×4桌X Y Fit FitError ___ _______ __________ ___________ 0 0 0.00044117 -0.00044117 0.1 0.11246 0.11185 0.00060836 0.2 0.2227 0.22231 0.00039189 0.3 0.32863 0.32872 -9.7429e-05 0.4 0.42839 0.4288 -0.00040661 0.5 0.5205 0.52093 -0.00042568 0.6 0.60386 0.60408 -0.00022824 0.7 0.6778 0.67775 4.6383e-050.8 0.7421 0.74183 0.00026992 0.9 0.79691 0.79654 0.00036515 1 0.8427 0.84238 0.0003164 1.1 0.88021 0.88005 0.00015948 1.2 0.91031 0.91035 -3.9919e-05 1.3 0.93401 0.93422 -0.000211 1.4 0.95229 0.95258 -0.00029933 1.5 0.96611 0.96639 -0.00028097 ⋮

この内,内插値との値は,かなり一致ていいますます。。。このこの区间のの外侧でで外外插値插値が実际実际のデータデータからからからどの急速急速急速急速

X1=((0:0.1:5)'; y1 = erf(x1); f1 = polyval(p,x1); figure plot(x,y,'o') 抓住plot(x1,y1,' - ')plot(x1,f1,'r--')axis([0 5 0 2]) hold离开

图包含一个轴。The axes contains 3 objects of type line.

1750年2000年年のののテーブル作成,データ点プロットし。。

年=((1750:25:2000)'; pop = 1e6*[791 856 978 1050 1262 1544 1650 2532 6122 8170 11560]'; T = table(year, pop)
T=11×2桌年pop ____ _________ 1750 7.91e+08 1775 8.56e+08 1800 9.78e+08 1825 1.05e+09 1850 1.262e+09 1875 1.544e+09 1900 1.65e+09 1925 2.532e+09 1950 6.122e+09 1975 8.17e+09 2000 1.156e+10
plot(year,pop,'o'

图包含一个轴。轴包含类型线的对象。

3 出力のpolyfitを使用し、センタリングとスケーリングを使用して 5 次の多項式をあてはめます。これにより問題の数値特性が向上します。polyfitのデータデータにセンタリング,标准偏差ががようにします。これこれにより近似计算において悪悪条件ののヴァンデルモンドヴァンデルモンド行列行列

[p,〜,mu] = polyFit(t.year,t.pop,5);

polyvalを4入力入力し,,pをスケーリングされた年(Year-mu(1))/MU(2)に対して評価します。結果を元の年に対してプロットします。

f = polyVal(p,Year,[],Mu);抓住情节(年,f)持有离开

图包含一个轴。The axes contains 2 objects of type line.

単純な線形回帰モデルを、一連の離散 2 次元データ点に近似します。

サンプル データ点のベクトル((X,,,,y)をいくつます。。次次多项データに近似し。。

x = 1:50;y = -0.3*x + 2*randn(1,50);p = polyFit(x,y,1);

近似多项式pXの点で評価します。その結果得られる線形回帰モデルをデータでプロットします。

f = polyval(p,x);情节(x,y,'o',,,,X,,,,f,' - ')legend('数据',,,,“线性拟合”

图包含一个轴。The axes contains 2 objects of type line. These objects represent data, linear fit.

95%的のしのの予测区间区间の推定推定ををを含めてて结果をプロット。。

サンプル データ点のベクトル((X,,,,y)をいくつか作成します。polyfitを使用,,次次でデータをます。线形近似近似の系数系数と误差推定値推定値のの构造构造体体をを返す返す返す返す返す返す

x = 1:100;y = -0.3*x + 2*randn(1,100);[p,s] = polyFit(x,y,1);

Xの各点でpの 1 次多項式近似を評価します。polyvalの 3 番目の入力として誤差推定の構造体を指定し、標準誤差の推定値を計算します。標準誤差の推定値は三角洲に返されます。

[y_fit,delta] = polyval(p,x,s);

95%の区间区间区间区间区间区间区间区间区间区间区间区间 y ± 2 Δ をプロットし。

情节(x,y,'bo') 抓住情节(x,y_fit,'r-')plot(x,y_fit+2*delta,'M--',x,y_fit-2*delta,'M--')title('Linear Fit of Data with 95% Prediction Interval')legend('Data',,,,“线性拟合”,,,,'95%的预测间隔'

图包含一个轴。带有标题的数据线性拟合的轴具有95%的预测间隔,包含4个类型线的对象。这些对象表示数据,线性拟合,95%的预测间隔。

入力引数

すべて折りたたむ

クエリ点ベクトルとして指定。。Xの点は、yに含まれる近似された関数の値に対応します。Xがベクトルでない,polyfitはそれを列ベクトルX(:)に変换し。

Xが同じ(またはほぼ点)ををまたはまたはXのセンタリングが必要なる性が场合に,警告メッセージがが出力ささ。。。

データ型:single|double
复素数サポート:あり

クエリ点近似。ベクトル指定します。yの値は、Xに含まクエリ点対応します。yがベクトルでない,polyfitはそれを列ベクトルy(:)に変换し。

データ型:single|double
复素数サポート:あり

多项式近似。正整数スカラーとしてし。。。nは,pの最も系数の多项式の乘指定指定ますます。

出力引数

すべて折りたたむ

最小乘近项式の系数。として返されます。pの長さはn+1で,大べき乘がnである多項式の係数を降べきの順に含みます。Xまたはyのいずれかに値が含ま,n< length(x)である场合,pのすべてのがです。

クエリ点でpを計算するにはpolyvalを使用します。

誤差推定の構造体。このオプションの出力構造体は、主に誤差推定を得るために関数polyvalへの入力として使用します。sには次のフィールドが含まれています。

フィールド 说明
r Xのののの分解によって得られる(置换さて可能性ある)三角r因子
DF 自由度
normr 残差のノルム

データyがランダムな場合、pの共分散分散の推定,,((rinv*Rinv')*normr^2/dfになり。ここで,rinvrの逆行列です。

yのデータの誤差が一定の分散をもつ独立した正規分布の場合、関数[[y,,,,三角洲] = polyval(...)50%をを含む误差范囲を出力ししつまりつまりつまりつまりy±三角洲の范囲に,X50%以上以上が含ま。。。。。。。。。。。

センタリング値スケーリング。。要素ベクトルとしてれれ。。亩((1)平均(x)亩((2)std(x)です。の値は,Xのクエリ点が単位標準偏差をもち、ゼロ センタリングされるために使用されます。

polyval4番目番目入力使用する,スケーリングされ点点(x -mu(1))/mu(2)pを計算します。

制限

  • 多くの点をもつ問題に対してpolyfitをし项式近似次元数をても,たた近似がが得得られるられるととは限りませんん。のの多项式はは““より”近似に场合がありありこのような,低次のの多项式多项式似似似似似似似似似似似似似似似似似似の(

  • 多項式は本質的に非有界の振動関数です。このため、有界のデータや、単調増加または単調減少するデータの外挿にはあまり適していません。

アルゴリズム

polyfitXを使用してn+1列およびm =长度(x)行のヴァンデルモンド行列vを形成,の线形式を导きます。

(( X 1 n X 1 n - 1 1 X 2 n X 2 n - 1 1 X m n X m n - 1 1 (( p 1 p 2 p n + 1 = (( y 1 y 2 y m ,,,,

polyfitはこれをp =v\yによって解き。ヴァンデルモンドの列はベクトルXのべき乗であるため、vの数高次近似のにはしばしば大きくなり,特异特异系数系数行列行列ににになりなります。このこのようようなな场合场合,,センタリングセンタリングととスケーリングスケーリングによってによってによってによって方程式数値特性特性特性特性场合があり。

拡張機能

r2006a より前に導入