If(A) Vx(V) 1 最小 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M) y = f ( x ) の関係から, 任意の x のときの y が求まるので, 未測定点の予測ができること. また (M3) 現象が比較的単純であれば, 現象を支配 する原理の式が分かることである. Fig.1 には五つの測定データがプロットされており, これらは 1 次の関係,y = Ax + B のように見える. 最小 乗法を使うと, 式のパラメータ A と B が求められる. オレンジ色の線は最小 乗法で求めた実験式である. データとよく一致していることが分かる. 次に Fig. には五つの測定データがプロットされており, これらは指数の関係, y = Ae Bx のように見える. 最小 乗法を使 5 4 3 1 0 0 0.0005 0.001 0.0015 Ix(A) Fig. 1 V x vs. I x. うと, 式のパラメータ A と B が求められる. オレンジ色の線がその実験式である. これもデータとよく一致していることが分かる. 個のデータの組,(x i, y i)( ただし i = 1,, 3,..., ) から近似式のパラメータを最小 乗法で求められる. 式の型はデータの分布の状況によって選択する必要がある. 本資料では線形型, 指数型および多項式型について扱う. 線形型 : y=ax+b 型 個のデータの組,(x i, y i)( ただし i = 1, 0.05 0.04 0.03 0.0 0.01 0 1 V(V) Fig. I f vs. V., 3,..., ) からパラメータ A と B を求める. まず式の定義を行う. y = f(x) Ax + B この式の右辺を左辺へ移行すると, y (Ax + B) = 0 この式は数学的に正しい. 次にこの式にデータを代入した式について考えてみる.A と B を求めるためには少なくとも 回分のデータが必要となる. つまり i = 1, の時のデータ (x 1, x ), (y 1, y ) があれば, 連立させて A と B が求まる.
{ y 1 (Ax 1 + B) = 0 y (Ax + B) = 0 A, B 次にその A,B と i = 3 のデータ,(x 3, y 3) で式を表すと, ほとんどの場合で次式のようになる. y 3 (Ax 3 + B) 0 右辺が 0 でないことに注意. これは y i と x i のデータには測定誤差が含まれることによる. 上の 式で 0 にならない分を残差 S i として定義する. S i y i (Ax i + B) = y i f(x i ) 0 S i の 乗和 S は, S = y i f(x i )] = y i Ax i B] Σ は全てのデータを対象とする意味である. 上の式は A と B についての 次式であり, それらの次数は最高で である.A と B を変化させたとき,S が極小, つまり誤差が最小となるためには次式を満足すればよい. A = 0, B = 0 これらを計算すると, 次が得られる. A + B = y i A x i + B = y i { または y i ] A B ] = y i ] 上の式は正規方程式 (ormal equatio) と呼ばれる. 上を連立させて A と B を求めると, A = S 1 x y S (x ), B = y S x S 1 S (x ) ただし, S 1 = 1 y i, S = 1, x = 1, y = 1 y i である. このようにして,x i と y i のデータからパラメータ A と B が求められる.
例 1: 半導体試料に電流 I x を流したとき, 端子間の電圧 V x を測定した (Table 1). データをグ ラフにプロットしたとき, プロット点間を通るような 1 次式,y = Ax + B を最小 乗法で 求めよ. Table 1. I x (ma) 0.50 0.75 1.00 1.5 1.50 V x (v) 1.4174.104.804 3.5164 4.159 x i = I i, y i = V i とすると, S 1 = 1 = 3.165 y i = 1 (0.5 1.4174 + 0.75.104 + 1.0.804 + 1.5 3.5164 + 1.5 4.159) 5 S = 1 = 1.15, x = 1 = 1.000, y = 1 y i =.815 A = S 1 x y S (x ) =.797, B = y S x S 1 S (x ) = 0.01766 測定した I X の単位は ma であるので,.797 を 1000 倍して A とする. 式は y=797x+0.01766 である. 式を Fig. 1 に, またこのプログラムを次に示す. /* Least Mea Square */ /* type: f(x)=ax+b */ #iclude<stdio.h> #iclude<math.h> #defie NUMBER_OF_DATA 5 it mai() { struct elemet { float x; float y; data(it)number_of_data] = { {0.50e-3, 1.4174, {0.75e-3,.104, {1.00e-3,.804, {1.5e-3, 3.5164, {1.50e-3, 4.159, ; it i, ; float sum1, sum, mx, my, x(it)number_of_data], y(it)number_of_data], a, b; char d; = (it)number_of_data; sum1 = sum = mx = my = 0; for(i=0; i<; i++) { sum1 += datai].x * datai].y; sum += datai].x * datai].x; mx += datai].x;
my += datai].y; sum1 /= ; sum /= ; mx /= ; my /= ; a= (sum1 - mx * my) / (sum - mx * mx); b= (my * sum - mx * sum1) / (sum - mx * mx); pritf("y=%fx+%f ", a, b); d=getchar(); 実行結果 問題 1(5 点 ) Table Q1 のデータによる式,y = Ax + Bを最小 乗法で求めよ. またエクセルで散布図のグラフを作成せよ. グラフには Table Q1 のデータのプロット点と求めた式による直線を合わせて表示すること ( 例 Fig. 1). 直線は X i = 0, 0.1,, 10 のときの Y i を求めた式で計算し, それらの関係を小さな点で散布図として表現すればよい. Table Q1. X i 0.0.0 4.0 6.0 8.0 10.0 Y i 1.0 3.0 5.0 7.0 9.0 11.0 3 指数型 : y = A e B x 型 個のデータの組,(x i, y i)( ただし i = 1,, 3,..., ) からパラメータ A と B を求める. まず 式の定義を行う. y = f(x) Ae Bx この式の自然対数をとると, l y = l f(x) = l A + Bx (e を底とした時は l,10 を底とした時は log とする ) 上の式を F(x) = l f (x), C = l A で置き かえると, F(x) = C + Bx これは 1 次関数式であるので, 前述の y=ax+b 型と同様に扱える. 残差 S i は次のとおり.
S i y i f(x i ) 0 S i の 乗和 S は, S = l y i (C + Bx i )] 上の式は B と C についての 次式であり, それらの次数は最高で である.B と C を変化させた とき,S が極小, つまり誤差が最小になるためには次式を満足すればよい. B = 0, C = 0 これを計算すると, 正規方程式は次のようになる. x i x ] C l y ] = i B x ] l y x i 次に上を連立させて,B と C を求めると, B = S 1 x l y S (x ), C = l y S x S 1 S (x ) である. ただし, S 1 = 1 l y i, S = 1, x = 1, l y = 1 l y i, A = e C である. このようにして,x i と y i のデータからパラメータ A と B が求められる. 例 : Ge ダイオードの特性, 電圧 V に対する順方向電流 I f を測定した (Table ). データを グラフにプロットしたとき, プロット点間を通るような指数関数の式,y = Ae Bx を最小 乗法で求めよ. Table. V (V) 0.80 1.000 1.500.000.00 I f (A) 0.001 0.004 0.01 0.033 0.050 x i = V i, y i = I f とすると, S 1 = 1 l y i = 1 (0.8 l(0.001) + 1.00 l(0.004) + 1.50 l(0.01) +.00 l(0.033) 5 +.0 l(0.050)) = 5.501 S = 1 =.434, x = 1 とすると, = 1.396, l y = 1 l y i = 4.65
B = S 1 x l y S (x ) =.049, C = l y S x S 1 S (x ) = 7.51, A = e C = 5.466 10 4 従って式は y=5.47 10-4 e.05 x である. 式を Fig. に, またこのプログラムを次に示す. /* Least Mea Square */ /* type: f(x)=aexp(bx) */ #iclude<stdio.h> #iclude<math.h> #defie NUMBER_OF_DATA 5 it mai() { struct elemet { float x; float y; data(it)number_of_data] = { {0.8, 0.001, {1.0, 0.004, {1.5, 0.01, {.0, 0.033, {., 0.050 ; it i, ; float sum1, sum, mx, my, a, b; char d; = (it)number_of_data; sum1 = sum = mx = my = 0; for(i=0; i<; i++) { datai].y = log(datai].y); sum1 += datai].x * datai].y; sum += datai].x * datai].x; mx += datai].x; my += datai].y; sum1 /= ; sum /= ; mx /= ; my /= ; a= (sum * my - sum1 * mx) / (sum - mx * mx); a = exp(a); b= (sum1 - my * mx) / (sum - mx * mx); pritf("y=aexp(bx)\"); pritf("a=%e, B=%e\",a, b); d=getchar(); 実行結果
問題 (5 点 ) Table Q のデータによる式,y = Ae Bx を最小 乗法で求めよ. またエクセルで散布図のグラフを作成せよ. グラフには Table Q のデータのプロット点と求めた式による曲線を合わせて表示すること ( 例 Fig. ). 曲線は X i = 0, 0.1,, 10 のときの Y i を求めた式で計算し, それらの関係を小さな点で散布図として表現すればよい. Table Q. X i 0.0.0 4.0 6.0 8.0 10.0 Y i 0.1000 0.718 0.7389.009 5.460 14.84 4 べき級数型 : y=a m x m + A m-1 x m-1 +,..., + A 1 x 1 +A 0 x 0 x と y のデータの組,(x i m, x i m 1,, x i 0, y i m, y i m 1,, y i 0 ) から, パラメータ A m, A m - 1,, A 0 を求める. まず式の定義を行う. y = f(x) A m x m + A m 1 x m 1 +,..., + A 1 x 1 + A 0 x 0 残差 S i は次のとおり. S i y i f(x i ) 0 S i の 乗和 S は次式となる. S = y i f(x i )] S が極小となるためには次式を満足すればよい. A m = 0, A m 1 = 0,, A 0 = 0 これを計算すると, 正規方程式は次のようになる. m 3 m m+1 m+1 m+m ] A 0 0 y i A 1 ] = x 1 i y i A m x m i y i ] 上を連立させて,A m, A m-1,, A 0 を求める. この連立方程式を解くにはガウス ジョルダン 法 ( 第 編 第 章 ) が利用できる.