多項式補間

  多項式補間機能

%%多項式補間
%%説明:精度の精度、より細かい画像大きく、属性は属性値であり、それは未知の機能発現関数値が、そうでなければ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

  

おすすめ

転載: www.cnblogs.com/guliangt/p/12112771.html