• 検索結果がありません。

If(A) Vx(V) 1 最小 2 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M2) y = f ( x ) の関係から, 任意の x のときの y が求まるので,

N/A
N/A
Protected

Academic year: 2021

シェア "If(A) Vx(V) 1 最小 2 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M2) y = f ( x ) の関係から, 任意の x のときの y が求まるので,"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

求まるので,未測定点の予測ができること.また(M3)現象が比較的単純であれば,現象を支配 する原理の式が分かることである. Fig.1 には五つの測定データがプロットさ れており,これらは 1 次の関係,𝑦 = 𝐴𝑥 + 𝐵 のように見える.最小 2 乗法を使うと,式の パラメータ A と B が求められる.オレンジ 色の線は最小 2 乗法で求めた実験式である. データとよく一致していることが分かる. 次に Fig.2 には五つの測定データがプロッ トされており,これらは指数の関係, 𝑦 = 𝐴𝑒𝐵𝑥 のように見える.最小 2 乗法を使 うと,式のパラメータ A と B が求められる. オレンジ色の線がその実験式である.これ もデータとよく一致していることが分かる. n 個のデータの組,(xi, yi)(ただし i = 1, 2, 3, ..., n)から近似式のパラメータを最小 2 乗法で求められる.式の型はデータの分布 の状況によって選択する必要がある.本資 料では線形型,指数型および多項式型につ いて扱う. 2 線形型: y=Ax+B 型 n 個のデータの組,(xi, yi)(ただし i = 1, 2, 3, ..., n)からパラメータ A と B を求める.まず式の定義を行う. 𝑦 = 𝑓(𝑥) ≡ 𝐴𝑥 + 𝐵 この式の右辺を左辺へ移行すると, 𝑦 − (𝐴𝑥 + 𝐵) = 0 この式は数学的に正しい. 次にこの式にデータを代入した式について考えてみる.A と B を求めるためには少なくとも 2 回分のデータが必要となる.つまり i = 1, 2 の時のデータ(x1, x2), (y1, y2)があれば,連立さ せて A と B が求まる.

0

0.0005

0.001

0.0015

0

1

2

3

4

5

Ix(A) V x( V ) Fig. 1 Vx vs. Ix.

1

2

0.01

0.02

0.03

0.04

0.05

0

V(V) If(A) Fig.2 If vs. V.

(2)

{𝑦1− (𝐴𝑥1+ 𝐵) = 0 𝑦2− (𝐴𝑥2+ 𝐵) = 0 → A, B 次にその A,B と i = 3 のデータ,(x3, y3)で式を表すと,ほとんどの場合で次式のようになる. 𝑦3− (𝐴𝑥3+ 𝐵) ≠ 0 右辺が 0 でないことに注意.これは y iと x iのデータには測定誤差が含まれることによる.上の 式で 0 にならない分を残差 Siとして定義する. 𝑆𝑖≡ 𝑦𝑖− (𝐴𝑥𝑖+ 𝐵) = 𝑦𝑖− 𝑓(𝑥𝑖) ≠ 0 Siの 2 乗和 S は, 𝑆 = ∑[𝑦𝑖− 𝑓(𝑥𝑖)]2= 𝑛 𝑖=1 ∑[𝑦𝑖− 𝐴𝑥𝑖− 𝐵]2 𝑛 𝑖=1 Σ は全てのデータを対象とする意味である.上の式は A と B についての 2 次式であり,それらの次数 は最高で 2 である.A と B を変化させたとき,S が極小,つまり誤差が最小となるためには次式を満足す ればよい. ∂𝑆 ∂𝐴= 0, ∂𝑆 ∂𝐵= 0 これらを計算すると,次が得られる. { 𝐴 ∑ 𝑥𝑖+ 𝑛𝐵 = ∑ 𝑦𝑖 𝑛 𝑖=1 𝑛 𝑖=1 𝐴 ∑ 𝑥𝑖2+ 𝐵 ∑ 𝑥𝑖 𝑛 𝑖=1 = ∑ 𝑥𝑖𝑦𝑖 𝑛 𝑖=1 𝑛 𝑖=1 または [ ∑ 𝑥𝑖 𝑛 𝑖=1 𝑛 ∑ 𝑥𝑖2 𝑛 𝑖=1 ∑ 𝑥𝑖 𝑛 𝑖=1 ] [𝐴 𝐵] = [ ∑ 𝑦𝑖 𝑛 𝑖=1 ∑ 𝑥𝑖𝑦𝑖 𝑛 𝑖=1 ] 上の式は正規方程式(normal equation)と呼ばれる.上を連立させて A と B を求めると, 𝐴 = 𝑆1− 𝑥̅ 𝑦̅ 𝑆2− (𝑥̅)2 , 𝐵 =𝑦̅ 𝑆2− 𝑥̅𝑆1 𝑆2− (𝑥̅)2 ただし, 𝑆1= 1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 𝑦𝑖, 𝑆2= 1 𝑛∑ 𝑥𝑖 2, 𝑥̅ =1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 , 𝑛 𝑖=1 𝑦̅ =1 𝑛∑ 𝑦𝑖 𝑛 𝑖=1 である.このようにして,xi と yiのデータからパラメータ A と B が求められる.

(3)

例 1:半導体試料に電流 Ixを流したとき,端子間の電圧 Vxを測定した(Table 1).データをグ ラフにプロットしたとき,プロット点間を通るような 1 次式,𝑦 = 𝐴𝑥 + 𝐵を最小 2 乗法で 求めよ. Table 1. Ix (mA) 0.50 0.75 1.00 1.25 1.50 Vx (v) 1.4174 2.1204 2.8042 3.5164 4.2159 xi = Ii, yi = Vi とすると, 𝑆1= 1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 𝑦𝑖= 1 5(0.5 × 1.4174 + 0.75 × 2.1204 + 1.0 × 2.8042 + 1.25 × 3.5164 + 1.5 × 4.2159) = 3.165 𝑆2= 1 𝑛∑ 𝑥𝑖 2 𝑛 𝑖=1 = 1.125, 𝑥̅ =1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 = 1.000, 𝑦̅ =1 𝑛∑ 𝑦𝑖 𝑛 𝑖=1 = 2.815 A = 𝑆1− 𝑥̅ 𝑦̅ 𝑆2− (𝑥̅)2 = 2.797, B =𝑦̅ 𝑆2− 𝑥̅𝑆1 𝑆2− (𝑥̅)2 = 0.01766 測定した IX の単位は mA であるので,2.797 を 1000 倍して A とする.式は y=2797x+0.01766 である.式を Fig. 1 に,またこのプログラムを次に示す.

/* Least Mean Square */ /* type: f(x)=Ax+B */ #include<stdio.h> #include<math.h> #define NUMBER_OF_DATA 5 int main() { struct element { float x; float y; } data[(int)NUMBER_OF_DATA] = { {0.50e-3, 1.4174}, {0.75e-3, 2.1204}, {1.00e-3, 2.8042}, {1.25e-3, 3.5164}, {1.50e-3, 4.2159}, }; int i, n;

float sum1, sum2, mx, my, x[(int)NUMBER_OF_DATA], y[(int)NUMBER_OF_DATA], a, b; char d;

n = (int)NUMBER_OF_DATA; sum1 = sum2 = mx = my = 0; for(i=0; i<n; i++) {

sum1 += data[i].x * data[i].y; sum2 += data[i].x * data[i].x; mx += data[i].x;

(4)

my += data[i].y; } sum1 /= n; sum2 /= n; mx /= n; my /= n;

a= (sum1 - mx * my) / (sum2 - mx * mx); b= (my * sum2 - mx * sum1) / (sum2 - mx * mx); printf("y=%fx+%f¥n", a, b); d=getchar(); } 実行結果 問題 1(5 点) Table Q1 のデータによる式,𝑦 = 𝐴𝑥 + 𝐵を最小 2 乗法で求めよ.またエクセルで散布図のグラ フを作成せよ.グラフには Table Q1 のデータのプロット点と求めた式による直線を合わせて表 示すること(例 Fig. 1).直線は

X

i = 0, 0.1, …, 10 のときの

Y

i

を求めた式で計算し,それらの

関係を小さな点で散布図として表現すればよい. Table Q1. Xi 0.0 2.0 4.0 6.0 8.0 10.0 Yi 1.0 3.0 5.0 7.0 9.0 11.0 3 指数型: y = A e B x n 個のデータの組,(xi, yi)(ただし i = 1, 2, 3, ..., n)からパラメータ A と B を求める.まず 式の定義を行う. 𝑦 = 𝑓(𝑥) ≡ 𝐴𝑒𝐵𝑥 この式の自然対数をとると, 𝑙𝑛 𝑦 = 𝑙𝑛 𝑓(𝑥) = 𝑙𝑛 𝐴 + 𝐵𝑥 (e を底とした時は ln,10 を底とした時は log とする)上の式を F(x) = ln f (x), C = ln A で置き かえると, 𝐹(𝑥) = 𝐶 + 𝐵𝑥 これは 1 次関数式であるので,前述の y=Ax+B 型と同様に扱える. 残差 Siは次のとおり.

(5)

𝑆𝑖≡ 𝑦𝑖− 𝑓(𝑥𝑖) ≠ 0 Siの 2 乗和 S は, 𝑆 = ∑[𝑙𝑛 𝑦𝑖− (𝐶 + 𝐵𝑥𝑖)]2 𝑛 𝑖=1 上の式は B と C についての 2 次式であり,それらの次数は最高で 2 である.B と C を変化させた とき,S が極小,つまり誤差が最小になるためには次式を満足すればよい. ∂𝑆 ∂𝐵= 0, ∂𝑆 ∂𝐶= 0 これを計算すると,正規方程式は次のようになる. [𝑛 𝑥̅𝑖 𝑥̅𝑖 𝑥̅̅̅] [𝑖2 𝐶 𝐵] = [ 𝑙𝑛 𝑦 ̅̅̅̅̅ 𝑥 𝑙𝑛 𝑦 ̅̅̅̅̅̅̅] 次に上を連立させて,B と C を求めると, 𝐵 =𝑆1− 𝑥̅ 𝑙𝑛 𝑦̅̅̅̅̅ 𝑆2− (𝑥̅)2 , 𝐶 =𝑙𝑛 𝑦̅ 𝑆2− 𝑥̅𝑆1 𝑆2− (𝑥̅)2 である.ただし, 𝑆1= 1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 𝑙𝑛 𝑦𝑖, 𝑆2= 1 𝑛∑ 𝑥𝑖 2 𝑛 𝑖=1 , 𝑥̅ =1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 , 𝑙𝑛 𝑦̅̅̅̅̅ =1 𝑛∑ 𝑙𝑛 𝑦𝑖 𝑛 𝑖=1 , 𝐴 = 𝑒𝐶 である.このようにして,xi と yiのデータからパラメータ A と B が求められる. 例 2: Ge ダイオードの特性,電圧 V に対する順方向電流 Ifを測定した(Table 2).データを グラフにプロットしたとき,プロット点間を通るような指数関数の式,𝑦 = 𝐴𝑒𝐵𝑥を最小 2 乗法で求めよ. Table 2. V (V) 0.280 1.000 1.500 2.000 2.200 If (A) 0.001 0.004 0.012 0.033 0.050 xi = Vi , yi = If とすると, 𝑆1= 1 𝑛∑ 𝑥𝑖 𝑛 𝑖=1 𝑙𝑛 𝑦𝑖 =1 5(0.28 × 𝑙𝑛(0.001) + 1.00 × 𝑙𝑛(0.004) + 1.50 × 𝑙𝑛(0.012) + 2.00 × 𝑙𝑛(0.033) + 2.20 × 𝑙𝑛(0.050)) = −5.501 𝑆2= 1 𝑛∑ 𝑥𝑖 2 𝑛 𝑖=1 = 2.434, 𝑥̅ =1 𝑛∑ xi 𝑛 𝑖=1 = 1.396, 𝑙𝑛 𝑦̅̅̅̅̅ =1 𝑛∑ 𝑙𝑛 𝑦𝑖= −4.652 𝑛 𝑖=1 とすると,

(6)

𝐵 =𝑆1− 𝑥̅ 𝑙𝑛 𝑦̅̅̅̅̅ 𝑆2− (𝑥̅)2 = 2.049, 𝐶 =𝑙𝑛 𝑦̅ 𝑆2− 𝑥̅𝑆1 𝑆2− (𝑥̅)2 = −7.512, 𝐴 = 𝑒𝐶 = 5.466 × 10−4 従って式は y=5.47×10 -4 e 2.05 xである.式を Fig. 2 に,またこのプログラムを次に示す.

/* Least Mean Square */

/* type: f(x)=Aexp(Bx) */

#include<stdio.h>

#include<math.h>

#define NUMBER_OF_DATA 5

int main()

{

struct element {

float x;

float y;

} data[(int)NUMBER_OF_DATA] = {

{0.28, 0.001},

{1.0, 0.004},

{1.5, 0.012},

{2.0, 0.033},

{2.2, 0.050}

};

int i, n;

float sum1, sum2, mx, my, a, b;

char d;

n = (int)NUMBER_OF_DATA;

sum1 = sum2 = mx = my = 0;

for(i=0; i<n; i++) {

data[i].y = log(data[i].y);

sum1 += data[i].x * data[i].y;

sum2 += data[i].x * data[i].x;

mx += data[i].x;

my += data[i].y;

}

sum1 /= n;

sum2 /= n;

mx /= n;

my /= n;

a= (sum2 * my - sum1 * mx) / (sum2 - mx * mx);

a = exp(a);

b= (sum1 - my * mx) / (sum2 - mx * mx);

printf("y=Aexp(Bx)\n");

printf("A=%e, B=%e\n",a, b);

d=getchar();

}

実行結果

(7)

問題 2(5 点) Table Q2 のデータによる式,𝑦 = 𝐴𝑒𝐵𝑥を最小 2 乗法で求めよ.またエクセルで散布図のグラフ を作成せよ.グラフには Table Q2 のデータのプロット点と求めた式による曲線を合わせて表示 すること(例 Fig. 2).曲線は

X

i = 0, 0.1, …, 10 のときの

Y

i

を求めた式で計算し,それらの関

係を小さな点で散布図として表現すればよい. Table Q2. Xi 0.0 2.0 4.0 6.0 8.0 10.0 Yi 0.1000 0.2718 0.7389 2.009 5.460 14.84 4 べき級数型: y=Am xm + Am-1 xm-1 +, ..., + A 1 x1 +A0 x0 x と y のデータの組,(𝑥𝑖𝑚, 𝑥𝑖𝑚−1, … , 𝑥𝑖0, 𝑦𝑖𝑚, 𝑦𝑖𝑚−1, … , 𝑦𝑖0) から,パラメータ Am , A m - 1,…, A0 を求める.まず式の定義を行う. 𝑦 = 𝑓(𝑥) ≡ 𝐴𝑚 𝑥𝑚 + 𝐴𝑚−1 𝑥𝑚−1 +, . . . , + 𝐴1 𝑥1 + 𝐴0 𝑥0 残差 Siは次のとおり. 𝑆𝑖≡ 𝑦𝑖− 𝑓(𝑥𝑖) ≠ 0 Siの 2 乗和 S は次式となる. 𝑆 = ∑[𝑦𝑖− 𝑓(𝑥𝑖)]2 𝑛 𝑖=1 S が極小となるためには次式を満足すればよい. ∂𝑆 ∂A𝑚 = 0, ∂𝑆 ∂A𝑚−1 = 0, … , ∂𝑆 ∂A0 = 0 これを計算すると,正規方程式は次のようになる. [ 𝑛 ∑ 𝑥𝑖 𝑛 𝑖=1 ∑ 𝑥𝑖2 𝑛 𝑖=1 … ∑ 𝑥𝑖𝑚 𝑛 𝑖=1 ∑ 𝑥𝑖 𝑛 𝑖=1 ∑ 𝑥𝑖2 𝑛 𝑖=1 ∑ 𝑥𝑖3 𝑛 𝑖=1 … ∑ 𝑥𝑖𝑚+1 𝑛 𝑖=1 ⋮ ⋮ ⋮ ⋱ ⋮ ∑ 𝑥𝑖𝑚 𝑛 𝑖=1 ∑ 𝑥𝑖𝑚+1 𝑛 𝑖=1 … … ∑ 𝑥𝑖𝑚+𝑚 𝑛 𝑖=1 ] [ 𝐴0 𝐴1 ⋮ 𝐴𝑚 ] = [ ∑ 𝑥𝑖0𝑦 𝑖 𝑛 𝑖=1 ∑ 𝑥𝑖1𝑦 𝑖 𝑛 𝑖=1 ⋮ ∑ 𝑥𝑖𝑚𝑦 𝑖 𝑛 𝑖=1 ] 上を連立させて,Am, Am-1, …, A0を求める.この連立方程式を解くにはガウス・ジョルダン 法(第 2 編・第 2 章)が利用できる.

参照

関連したドキュメント

スライダは、Microchip アプリケーション ライブラリ で入手できる mTouch のフレームワークとライブラリ を使って実装できます。 また

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

最愛の隣人・中国と、相互理解を深める友愛のこころ

断するだけではなく︑遺言者の真意を探求すべきものであ

いてもらう権利﹂に関するものである︒また︑多数意見は本件の争点を歪曲した︒というのは︑第一に︑多数意見は

 今日のセミナーは、人生の最終ステージまで芸術の力 でイキイキと生き抜くことができる社会をどのようにつ

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から

LUNA 上に図、表、数式などを含んだ問題と回答を LUNA の画面上に同一で表示する機能の必要性 などについての意見があった。そのため、 LUNA