多項式補間機能
%%多項式補間 %%説明:精度の精度、より細かい画像大きく、属性は属性値であり、それは未知の機能発現関数値が、そうでなければ0 1であることが知られているときに 機能Polynomial_interpolation PI =(F、X、精度、属性) X-ソート=(X-); IF属性== 0 [M、N - ] =サイズ(X-);最大= MAX([M、N - ]); X-RESHAPE =(X- ,. 1、MAX)、エラー= []; 私は= 1:最大 Y(I)= SUBS(F、X-(I)); エンド Y_value =ダブル(Y); A =分(X-); B = MAX(X-); T = A (BA)/精度:B; T =ゼロ(1、精密+ 1); Yreal = SUBS(F、T); コー= VPA(Polynomial_interpolation_cofficient(F、X、属性),. 4); 私は=のために1:。 。。1:精密1 + T(I)= Polynomial_value(コー、T(I)); エンド Iは=のために1:MAX。 エラー(I)= ABS(Y(I)-Polynomial_value(コー、X-(I))); エンド %%プロット H =図を、 SET(H、 'カラー'、 'W'); [HAX、hLine1、 hLine2] = plotyy(T、T、X、Y、 'プロット'、 'STEM'); タイトル( '多項式補間'); は、xlabel( '変数X'); ylabelの(HAX(1)、 '変数')。 ylabelの(HAX(2)、 '変数'); グリッド上の ON HOLD プロット(T、Yreal); 凡例( 'Yreal:実像'、 'Y:フィッティング多項式画像'、 'T:実際のデータ'); % %の表示座標 Iため= 1:MAXの テキスト(X-(I)、Y_value(I)、[ '('、num2strは(X-(I))、 ''、num2strは(Y_value(I))、 '')] 、 'カラー'、[0.02 0.79 150]); エンド DISP( 'エラー値「);エラー 。ELSEIF属性1 == [M、N] =サイズ(X); MAX = MAX([M、N]); X =変形(X、1、MAX); F =変形(F、1、MAX)。 A =分(X); B = MAX(X)。 T =(B-A)/精度:B。 T =ゼロ(1、精度+ 1)。 COE = VPA(Polynomial_interpolation_cofficient(F、X、属性)、4)。 1:I = 1のための精密+ 1 T(I)= Polynomial_value(コー、T(I))。 エンド H =図。 セット(H、 '色'、 'W')。 プロット(T、T、 'B'、X、F、G '*')。 上のグリッド のタイトル( '多项式插值'); xlabel( '変数X')。 ylabelの( '変数y')。 凡例( 'Y:拟合多项式图像'、 'T:已知数据')。 iは=のために1:MAX シムズは、X。 、テキスト(X(I)、F(I)、[ '('、num2strは(X(i))を、 '' 以上 より より
2.多項式関数の値
%%多项式函数值 機能PV = Polynomial_value(P、T) [M、N] =サイズ(P)。 MAX = MAX([M、N])。 合計= 0; iは、MAX =ために:-1:1つの 合計=合計+ P(I)* Power_function(I-1、T)。 エンド PV =合計。 %%幂函数 関数PF = Power_function(インデックス、T) PF = T ^指数。 エンド・ エンド
3.多項式係数
%%所与のノードの数から1を引いた多項式係数のこの機能 %%説明:属性は、未知の機能発現関数値が1であることが知られている属性値であり、そうでなければ0 関数Polynomial_interpolation_cofficient PIC =(F、X- 、属性) グローバルMAX、グローバルM; N-グローバル;グローバルI; Xソート=(X-); IF属性== 0 [M、N - ] =サイズ(X-);最大= MAX([M、N - ]); X- RESHAPE =(X- ,. 1、MAX); A =ゼロ(MAX、MAX); Y =ゼロ、(1、MAX) Iは、=のために1:MAX 。A(:、I)=(X- ')^(I- 。1)、 Y(I)= SUBS(F、X-(I)); エンド 係数= VPA(RESHAPE(A \(Y「),. 1、MAX),. 4) 。ELSEIF項目1 == [M、N - ] =サイズ(X-); MAX = MAX([M、N - ]); PIC =セル(1、MAX + 1); X- = RESHAPE(X- ,. 1、MAX); A =ゼロ(MAX、MAX); Y = RESHAPE(F ,. 1、MAX); 私は=のために1:MAX。 A(:、I)=(X- ')^(I-1);. エンド 係数= VPA(RESHAPE(A \(Y'),. 1、MAX),. 4); エンド DISP( 'の最大数N =' ) 。MAX 1- PIC =係数; %%値多項式 関数Polynomial_value PV =(P、T) [M、N - ] =サイズ(P); MAX = MAX([M、N - ]); SUM = 0; のためMAX = I:-1 :. 1 SUM = SUM + P(I)* Power_function(1-I、T。); エンド PV = SUMと、 %%電力機能 機能Power_function PF =(指数、T) PF = T ^指数。 ; 終わり 終わり 終わり
【請求項4】例
全てクリア CLC 精密= 500; 。X- = 1 :. 1 :. 6; RL = RESHAPE(RAND(6)、1,36); R2 = RESHAPE(RAND(12)と、1,144); R&LT =ゼロ(1,6)。 = I. 1 :. 6 R&LT(I)RL =(I * 6。)R2 *(24 * I)* 100; エンド %%公知機能 DISP( '公知の多項式適合関数'); シムズX; F *のSiN X =(X ^ 2)* EXP(-X- ^ 2)+ログ(ABS(SIN(X))); Polynomial_interpolation(F、X、高精度、0) %%既知関数値 知らDISP(」多項式関数の値を「)フィッティング; Polynomial_interpolation(R&LT、X-、精密,. 1)
結果
多項式フィッティング用の既知の関数 の最大数= N- ANS = 5の 誤差値 誤差= 1.0E-08 * 0.0066 0.0092 0.0027 0.0473 0.1507 0.3463 ANS = 0.1248 ^ 5 * X - 2.291 * 15.64 * + X ^ X ^ 4 3 - 48.61 * X ^ 2 + 66.56 * X - 31.29 の値の既知の関数フィッティング多項式 時間= N-の最大数 ANS = 5。 ANS = - 1.993 * X ^ X ^ * 5 4 31.02 + - 。175.7 + 444.1 * X * X ^ 3 ^ 2から491.6 * X + 201.5