計算工学I 電子情報工学科五年(前期) 5回目(7/5/2015)

計算工学I
電子情報工学科5年(前期)
7回目(21/5/2015)
担当:古山彰一
([email protected])
1.0
2.0
3.0
4.0
5.0
Y
2.0
2.5
2.9
3.5
4.4
1
• でもやっぱり直線に乗るかどうかは現象
次第。
• この場合も曲線にしたほうがより良いか
も?
• ということで、曲線の式も求められるよう
にしよう!というのが今日のお題。
2
3
• プロットすると(→)、大体直線にこれらの
データがのりそう。
• グラフ中の赤い線の関数を求める…とい
うのが前回の話。
4
X
5
• 次の5点があったとする。
0
1
2
3
4
5
関数として1次式を使い場合の最小2乗法の
計算手順は以下の通りだった(復習その1)
• 直線の式なので、とりあえず直線の式を y=ax+b とする。
• 適切なa,bはどうなるだろうか?
• 直線の式に1点目のデータ(1.0, 2.0)を代入してみる。
• 2 = a + b となる。直線がこの点を通っていれば右辺は2となり、2=2となるはず。
• しかし、直線は点の「近く」を通る、としているので誤差がある。その誤差は、絶
対値を用いて|a+b-2|で表すことができる。
• 同様にして
• x=2では|2a+b-2.5|, x=3では|3a+b-2.9|, x=4では|4a+b-3.5|, x=5では|5a+b-4.4|となる。
• 誤差の合計(要は足し合わせる)をE0とすると、
E0= |a+b-2|+|2a+b-2.5|+|3a+b-2.9|+|4a+b-3.5|+|5a+b-4.4|
となる。絶対値が扱い辛いので、各項の二乗の合計を考えてそれをEとする。
復習その2
•
誤差の最小値を求めて直線の式を導出する
(復習その3)
a,bについて連立方程式を解くと、a= 0.58, b=1.32 が導出され、
目的の直線の式は、 y=0.58x + 1.32 と求められる。
ここまでは先週の話だが、
基本的には関数が一般化しても、計算の流れは同じ
一般的な最小二乗法
•
•
(4.26)
ここを書き換える
ここで式(4.26)を書き直すと、
x
b
のように書け
る。
ここで、A,bはデータ点から定まる値なので、この式は、a1〜akについてk個の連立方程式となり、以下のように掃き出せ
る。aが求まることで近似関数も導出できる。
つまり
課題
最小2乗法によるプログラムを作成しなさい。
1.任意の点数に対応し、近似関数として2つの一次独立関数の和で表せるものが選
べるプログラムを作成しなさい。
2.p.83例題2、p.87問5、p.88問7をそのプログラムを用いて解きなさい。
3.上記2.の3つの問題について、Gnuplotを用いて、求められた関数と、入力した点を
グラフに描く(本ファイルのgnuplotの説明のページにあるようなグラフを作成)
4.プログラムソースコード、3つの問題の入出力結果、それぞれのgnuplotでのグラフ
をレポートとしてまとめる。
上記課題をレポートにまとめてpdfファイルにしたうえで、本日中に古山までメー
ルで提出([email protected])しなさい。
なおファイル名は、07i5??.pdf とする。??は二桁の出席番号。