9章:不等間隔補間
作成2012.10.06
工学的な現象においては、必ずしも理論解が得られず実験が必要な場合があります。データ点数が多いと実験に必要な時間が増大するためデータ点数が制限されます。
このような場合、不等間隔補間が必要となります。
1次補間
図9-1に示すように任意の位置xにおけるyの値を求める場合、両側の位置x1とx2の値、y1とy2からyの値を直線近似して求めます。直線の方程式から
(9.1)式と(9.2)式から
として定数AとBが決定できます。X1とx2の間に位置xにおけるyの値は
として決定できます。また(9.5)式を変形すると
となります。
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の値は
として決定できます。
不等間隔補間(フリーワークブック)
EXCELワークシート関数にはさまざまな種類があり、VBAを使用しなくても不等間隔補間の計算を実行できます。ダウンロード、実行時のアラームがなくなるため手軽になります。
不等間隔補間ワークブック「f20-9.xls 」 にいく。
不等間隔補間を計算します。
使用方法
(1)行の最大は200行です。(これ以上はファイルの変更が必要です。)
(2)B16セルからC213セルの領域にxyデータを貼り付けます。
(3)xの値は小さい値から大きい方向に順に配置する必要があります。
(4)データのない領域は空白にする必要があります。
(5)B4(任意x値)に求めたいxの値を入力します。
(6)1次補間y値と2次補間y値は自動計算されます。
(7)xの値は必ずしも等間隔である必要はありません。
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関数を使って「エラー」を表示します。
補間表自動作成.xls(フリーソフト)のダウンロード
ダウンロード
下記の[補間表自動作成.xls(フリーソフト)]をダウンロードしてください。
ダウンロード後はダブルクリックで解凍してから使用してください。
[補間表自動作成.xls(フリーソフト)]をダウンロード する。
補間表自動作成.xls(フリーソフト)
ファイル構成
(1) 補間表自動作成.xls :フリーソフトです。
(2)シート「Sheet1」:基礎データ設定、補間表作成条件を設定します。
(3)シート「Sheet2」:指定間隔の補間表が出力されます。
注意事項
(1)ファイルの保存場所の制限はありません。
標準的な実行方法
(1)「堰の流量.xls」をダブルクリックで起動します。
(マクロを有効にして開いてください!!)
(2)基礎データ表を設定します。
(3)補間表作成条件を設定します。
(4)「計算実行」ボタンを押します。
(5)補間表が「Sheet2」に作成されます。
補間精度の検証
基礎データ表を下記の条件で作成し補間精度の検証を行います。
基礎データ表作成方程式 y=SIN(x)+SIN(x/3)
x値の間隔 dx=0.4
補間表作成条件
初期値x0=0
間隔dx=0.05
回数N=50
この条件では、関係式がわかっているため補間誤差を容易に計算できます。計算結果を図9-3に示します。
図9-3から、2次補間のほうが全体としては、補間誤差が小さいことがわかります。
プログラムリスト
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章:高次代数方程式(ベアストウ法、別名ヒッチコック法) に行く。
トップページ に戻る。