9章:不等間隔補間

作成2012.10.06
     工学的な現象においては、必ずしも理論解が得られず実験が必要な場合があります。データ点数が多いと実験に必要な時間が増大するためデータ点数が制限されます。
     このような場合、不等間隔補間が必要となります。

  1. 1次補間
     図9-1に示すように任意の位置xにおけるyの値を求める場合、両側の位置x1とx2の値、y1とy2からyの値を直線近似して求めます。直線の方程式から


    (9.1)式と(9.2)式から


    として定数AとBが決定できます。X1とx2の間に位置xにおけるyの値は

    として決定できます。また(9.5)式を変形すると

    となります。



  2. 2次補間  図9-2に示すように任意の位置xにおけるyの値を求める場合、x点を含む位置x1とx2とx3の値、y1とy2とy3からyの値を2次曲 線近似して求めます。 2次曲線の方程式から



    (9.7)式と(9.8)式と(9.9)式から






    として定数AとBとCが決定できます。X1とx2とx3の間の位置xにおけるyの値は

    として決定できます。



  3. 不等間隔補間(フリーワークブック)
      EXCELワークシート関数にはさまざまな種類があり、VBAを使用しなくても不等間隔補間の計算を実行できます。ダウンロード、実行時のアラームがなくなるため手軽になります。

    不等間隔補間ワークブック「f20-9.xls 」にいく。
     不等間隔補間を計算します。

  4. 使用方法
    (1)行の最大は200行です。(これ以上はファイルの変更が必要です。)
    (2)B16セルからC213セルの領域にxyデータを貼り付けます。
    (3)xの値は小さい値から大きい方向に順に配置する必要があります。
    (4)データのない領域は空白にする必要があります。
    (5)B4(任意x値)に求めたいxの値を入力します。
    (6)1次補間y値と2次補間y値は自動計算されます。
    (7)xの値は必ずしも等間隔である必要はありません。

  5. EXCELワークシート関数
      EXCELワークシート関数の設定セルは24セルにおよびます。代表的なセルに限定して説明します。
    (1)B10セルの設定=OFFSET(B$16,MATCH($B$4,$B$16:$B$216,1)-1,0,1,1)
    ・ MATCH(検査値,検査範囲,照合の型)
    検査値=B4セル(x入力値)
    検査範囲=B16:B216(x数表領域)
    照合の型=1 照合の型に 1 を指定すると、検査値以下の最大の値が検索されます。このとき検査範囲のデータは、昇順に並べ替えておく必要があります。
    ・OFFSET(基準,行数,列数,高さ,幅)
    基準=B16
    行数= MATCH値-1( MATCH値-1だけ行をシフトします。
    列数=0 (列のシフトはゼロ)
    高さ=1 (参照の行数は1)
    幅=1 (参照の列数は1)
    ・入力値xより小さく一番近いx1の値が選択されます。

    (2)B5セルの設定=IF(B11 ・ IF(論理式,真の場合,偽の場合)
    論理式= B11 真の場合= IF(B10=B4,B4,“エラー”) B10=B4でない場合「エラー」を表示します。 B10=B4の場合はB4を表示
    偽の場合= E9*B4+E10 yの値を計算します。

    (3)H12セル=IF(B12 ・ IF(論理式,真の場合,偽の場合)
    論理式= B12 真の場合=H10/H9 バックアップで計算します。(ひとつ前のデータを使用します。)
    偽の場合=G10/G9 基本で計算します。
     
     2次補間の場合、基礎データ表の最後の部分でX3とy3の値が空白となり矛盾が生じます。この場合ひとつ前のデータを使用します。
     また、基礎データ表のxの値が範囲外となると矛盾が生じます。このような場合IF関数を使って「エラー」を表示します。


  6. 補間表自動作成.xls(フリーソフト)のダウンロード
    1. ダウンロード
       下記の[補間表自動作成.xls(フリーソフト)]をダウンロードしてください。

       ダウンロード後はダブルクリックで解凍してから使用してください。
        [補間表自動作成.xls(フリーソフト)]をダウンロードする。


    2. 補間表自動作成.xls(フリーソフト)
    3. ファイル構成
      (1) 補間表自動作成.xls :フリーソフトです。
      (2)シート「Sheet1」:基礎データ設定、補間表作成条件を設定します。
      (3)シート「Sheet2」:指定間隔の補間表が出力されます。

    4. 注意事項
      (1)ファイルの保存場所の制限はありません。

    5. 標準的な実行方法
      (1)「堰の流量.xls」をダブルクリックで起動します。
         (マクロを有効にして開いてください!!)
      (2)基礎データ表を設定します。
      (3)補間表作成条件を設定します。
      (4)「計算実行」ボタンを押します。
      (5)補間表が「Sheet2」に作成されます。


  7. 補間精度の検証
    基礎データ表を下記の条件で作成し補間精度の検証を行います。
    基礎データ表作成方程式 y=SIN(x)+SIN(x/3)
    x値の間隔 dx=0.4

    補間表作成条件
    初期値x0=0
    間隔dx=0.05
    回数N=50

    この条件では、関係式がわかっているため補間誤差を容易に計算できます。計算結果を図9-3に示します。

    図9-3から、2次補間のほうが全体としては、補間誤差が小さいことがわかります。


  8. プログラムリスト
     VBAのプログラムリストは以下のようになります。
    Sub Main()
    Sheets("Sheet2").Select
    Cells.Select
    Selection.Clear
    '初期入力
    x0 = Sheets("Sheet1").Cells(3, 4).Value
    dx = Sheets("Sheet1").Cells(4, 4).Value
    N = Sheets("Sheet1").Cells(5, 4).Value
    'タイトル
    Sheets("Sheet2").Cells(1, 1).Formula = "No"
    Sheets("Sheet2").Cells(1, 2).Formula = "x"
    Sheets("Sheet2").Cells(1, 3).Formula = "1次補間y"
    Sheets("Sheet2").Cells(1, 4).Formula = "2次補間y"
    '表作成
    For i = 0 To N Step 1
    x = x0 + dx * i
    Sheets("Sheet1").Cells(10, 2).Value = x
    Sheets("Sheet2").Cells(2 + i, 1).Value = i
    Sheets("Sheet2").Cells(2 + i, 2).Value = x
    Sheets("Sheet2").Cells(2 + i, 3).Value = Sheets("Sheet1").Cells(11, 2).Value
    Sheets("Sheet2").Cells(2 + i, 4).Value = Sheets("Sheet1").Cells(12, 2).Value
    Next i
    End Sub

     上記のプログラムは単純な繰り返し転記をのみを行っています。

10章:高次代数方程式(ベアストウ法、別名ヒッチコック法)に行く。



トップページに戻る。