Download presentation
Presentation is loading. Please wait.
1
プログラミング論 II 2008年吉日 主成分分析 数値積分
2
概要 主成分分析 難しい.簡易に触れるのみ. 数値積分 易しい.詳しく説明.
3
主成分分析 主成分分析とは,複数(N個)の要素からなるデータを,重要なM個(M≦N)の要素に代表させて把握する手法. データの要素数を減らす
→ 情報量は失われる → 情報の把握が容易になる 重要度の低い情報を捨て, 重要度の高い情報のみにする.
4
例A(相関の強いデータ) 英語Listeningと 英語Readingの成績 二つのデータ (Listening成績
非常に強い相関が あった場合. 右上がりの軸(水色) でデータを把握すれば ほぼ正確に, データを把握する ことが可能.
5
例A(相関の強いデータ) 水色の横軸の値のみを考えれば,各人の能力はほぼ分かる. 2次元データが1次元データになった.
厳密さは失われたが,理解が容易に. 横軸は,大まかに英語力を示していると言える.
6
例A(相関の強いデータ) 下図の緑色の横の軸1本を 用いて,両データを 代表させた場合, 緑軸の値は英語力を 適切に表現していない.
次元を減らして, 全体を代表させる 場合は, 軸を適切に選択 せねばならない.
7
主成分分析 (2次元値の場合) 第一主成分 重心を通り分散が 最大の方向に 軸をとり,それを とする. それと垂直方向に
英語と数学の成績 重心を通り分散が 最大の方向に 軸をとり,それを 第一主成分 とする. それと垂直方向に 重心を通る軸をとり, これを 第二主成分とする.
8
主成分分析 (N次元値の場合) N次元空間上で,重心点を通り,最も分散の大きい方向に軸をとり,それを第一主成分とする.
第一主成分と垂直な軸の中で,重心点を通り,最も分散が大きい方向に軸をとり,それを第二主成分とする. 以下,同様に第1~第N主成分全てに垂直で,重心点を通り,分散が最大の方向に第N+1主成分をとる.
9
積分 区分求積法と台形公式のみ解説
10
積分 不定積分は,「微分」の逆操作.すなわち,f(x)を不定積分する/の不定積分を求めるとは,「微分したらf(x)になる関数を探す」こと.
定積分は,関数f(x)とx軸に挟まれる部分の面積を求めること. 本講義では,定積分のみを扱う.
11
定積分 とは? y=f(x)と,x軸と x=aと,x=bで 囲まれた領域の面積を 求めること x=a x=b
12
この短冊の面積は,(xi+1-xi) f(xi)
区分求積法 細かい区間毎の長方形の面積の合計で近似. 全短冊の面積の合計と, はほぼ等しい f(xi+1) f(xi) y=f(x) この短冊の面積は,(xi+1-xi) f(xi) a xi xi+1 b
13
区分求積法 a=x0<x1<…<xn-1<xn=bとして, f (x0),f (x1),…,f (xn)が既知なら
14
区分求積法 当然, 長方形の高さは 左の値を使用しても, 右の値を使用しても良い. f(xi) f(xi+1) 左の値を使用 xi xi+1
右側の値を使用 xi xi+1
15
区分求積法の誤差 f(xi+1) f(xi) この部分が近似の誤差 xi xi+1
16
区分求積法 より細かい区間に分割するほど誤差は少なくなる. 長方形でなく台形で近似した方が,より正確な近似になると期待される.
台形公式 (これは1次近似である) 近傍3点を用い,2次式で近似した方がより正確な近似になると期待される. シンプソンの公式 3次式,4次式で近似した方が更に正確. ニュートン・コーツの積分公式
17
区分求積法台形公式 長方形ではなく,台形で近似する. より少ない誤差で計算が可能 f(xi) f(xi+1) xi xi+1
18
区分求積法台形公式 a=x0<x1<…<xn-1<xn=bとして,
f (x0),f (x1),…,f (xn)が既知なら 区間[a,b]をn当分した場合, として
19
C言語プログラミング を求めるには? h = (b-a)/N; N当分すると仮定 f(x1) f(x2) h a x1 x2 x3 x4 b
xn
20
C言語プログラミング を求めるには? x0~xnを表示してみる. for(i=0; i<=N; i++){
h = (b-a)/N; x0 = a; x1 = a + h*1; x2 = a + h*2; : xi = a + h*i; なので, for(i=0; i<=N; i++){ printf("%lf\n", a+h*i); } N当分すると仮定 x1 x2 f(x1) f(x2) a b h x0 x3 x4 xn
21
C言語プログラミング を求めるには? 各短冊の面積を表示してみる. for(i=0; i<N; i++){ xi = a+h*i;
xi~xi+1の短冊の横の長さは h, 縦の長さは f (xi) なので, h = (b-a)/N; for(i=0; i<N; i++){ xi = a+h*i; area = f(xi)*h; printf("%lf\n",area); } N当分すると仮定 x1 x2 f(x1) f(x2) a b h x0 x3 x4 xn
22
C言語プログラミング を求めるには? 全短冊の面積の合計を出す. すなわち,定積分. for(i=0; i<N; i++){
h = (b-a)/N; sum = 0.0; for(i=0; i<N; i++){ xi = a+h*i; area = f(xi)*h; sum += area; } printf("%lf\n", sum); N当分すると仮定 x1 x2 f(x1) f(x2) a b h x0 x3 x4 xn
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.