19
カーブフィッティングの方法 EXCELの近似式で十分ですか?

カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

カーブフィッティングの方法

EXCELの近似式で十分ですか?

Page 2: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示 ③「多項式近似」を選択し、次数を変えてフィットするものを探す ④「グラフに数式を表示する」を選択

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

② ③

y = 9E-07x6 - 8E-05x5 + 0.0027x4 - 0.0362x3 + 0.1797x2 - 0.052x + 1.2858

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

多項式近似

多項式近似の次数は最高6次までのためフィッティングが困難な場合がある

Excel

Page 3: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

(1)

1

),(),,(),,(),,(

3

3

2

210

221100

  

きる係数を求めることがで

式の連立方程式により個のデータがあれば次

      

N

N

NN

xaxaxaxaay

N

yxyxyxyx

連立方程式を解いて係数を算出

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

連立方程式

NN

N

NNN

N

N

NN

NNN

N

N

N

y

y

y

A

a

a

a

xxx

xxx

xxx

A

a

a

a

xxx

xxx

xxx

y

y

y

1

0

1

1

0

21

1

2

1

1

1

0

2

0

1

0

1

0

21

1

2

1

1

1

0

2

0

1

0

1

0

1

1

1

1

1

1

とすると

代入した値以外の補間部分では 外れる値が多い

Page 4: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

Excel操作 逆行列の作成法

NN

N

NNN

N

N

NN

NNN

N

N

N

y

y

y

A

a

a

a

xxx

xxx

xxx

A

a

a

a

xxx

xxx

xxx

y

y

y

1

0

1

1

0

21

1

2

1

1

1

0

2

0

1

0

1

0

21

1

2

1

1

1

0

2

0

1

0

1

0

1

1

1

1

1

1

とすると

① =MINVERSE( : ) ② F2を押す ③ セル範囲を指定 ④ ShiftとCtrlを同時に押しながらEnter ①

Page 5: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

(2))()())((

)()())((

)()())((

)()())((

)()())((

)()())((

)()())((

)()())((

)()())((

)()())((

)()())((

)()())((

1210

1210

310

210

3

3231303

2102

2321202

310

1

1212101

3200

0302010

321

   

 

 

 

 

 

 

 

 

 

 

 

N

NNNNN

N

k

Nkkkk

N

N

N

N

N

N

N

N

N

yxxxxxxxx

xxxxxxxx

yxxxxxxxx

xxxxxxxx

yxxxxxxxx

xxxxxxxxy

xxxxxxxx

xxxxxxxx

yxxxxxxxx

xxxxxxxxy

xxxxxxxx

xxxxxxxxy

ラグランジュ補間 分母は定数 分子はN乗の式で前ページの式(1)と同じ 求めたいx値の値を代入してy値が得られる

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

ラグランジュ補間

連立方程式と同じ値となる

Page 6: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

Sub Macro1() '' Macro1 Macro Dim x() As Double Dim y() As Double Dim no As Integer '補間する関数表の点数 no = Cells(3, 4) ReDim x(no) As Double '補間する関数表のx値 ReDim y(no) As Double '補間する関数表のy値 For i = 0 To no - 1 x(i) = Cells(7 + i, 3) y(i) = Cells(7 + i, 4) Next noh = Cells(3, 7) '補間点数 Dim xx As Double '補間するx値 Dim yy As Double '補間するy値 Dim Lk As Double 'Lk(x) For i = 0 To noh - 1 xx = Cells(7 + i, 6) yy = 0# For k = 0 To no - 1 Lk = 1# For j = 0 To no - 1 If k <> j Then Lk = Lk * (xx - x(j)) / (x(k) - x(j)) Next yy = yy + Lk * y(k) Next Cells(7 + i, 7) = yy Next End Sub

Excelのマクロ

Page 7: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

スプライン補間法

x0 x1 x2

S0(x) S1(x)

0,0

)(2)(3

)(3

)2(3

)(1

)(

)2(3

3

3

2)(''

62)(''

2/)(''),('')(''

32)('

32

)(3)(2)('

)(3)(2)('

)('(1)

)(,

)()()()(

)()(

)()()()(

(1))()()()(

0

11111

1

1

100

01

0

0

10001

10

2

02

000001

0

010

0001

111

00010

1011

2

00000111

2

00000

2

010010010

2

000000

3

00

2

000001

010

3

010

2

0100100111

0000

3

11

2

111111

3

00

2

000000

n

jjjjjjjjj

j

jj

j

nn

nn

nn

cc

chchhchaah

aah

cch

aah

b

cchbb

cch

hchbaa

h

ccd

hdcc

CxS

hdcxS

CxSxSxS

hdhcbbxS

hdhcb

xxdxxcbxS

xxdxxcbxS

xSb

hdhchbaa

xfaxxh

xxdxxcxxbaaxS

xfaxS

xxdxxcxxbaxS

xxdxxcxxbaxS

  境界条件

  

    

とおくとを微分して式

  

 

Page 8: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

を算出及びを算出、次に

  

jjj

nn

n

jn

nn

nnnn

dbc

uAx

uxA

aah

aah

aah

aah

aah

aah

u

c

c

c

c

x

hhhh

hhhh

hhhh

A

1

21

21

12

1

23

2

01

0

12

1

2

1

0

1122

2121

1010

0

)(3

)(3

)(3

)(3

)(3

)(3

0

10000

)(20

)(2

0)(2

001

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

3次スプライン補間

Page 9: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

フーリエ変換

Page 10: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

どんな複雑な波もシンプルな波の足し算である

tAty sin)( シンプルな波

tAty sin)()(複雑な波

の波の振幅:周波数:周波数   )(A

dtAty sin)()(

整数

実数

deAty ti

)()(

itetit sincosオイラーの公式

sin波だけでなく cos波も仲間に 入れたい

虚数 は、我々の目に見えない「仏の世界」 愛 が世界に平和をもたらす

ii

Page 11: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

0 0.001 0.002 0.003 0.004 0.005 0.006

2×sin(440×2πt) 0.1×sin(880×2πt) 2×sin(440×2πt)+0.1×sin(880×2πt)

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

0 0.001 0.002 0.003 0.004 0.005 0.006

sin(440×2πt) sin(880×2πt) sin(440×2πt)+sin(880×2πt)

時報 ポッポッポ ポーン 440Hz 880Hz

)2880sin(1.0)2440sin(2)( ttty )2880sin(1)2440sin(1)( ttty

時間t

0

0.2

0.4

0.6

0.8

1

1.2

440 880

振幅A

周波数[Hz]

0

0.5

1

1.5

2

2.5

440 880

振幅A

周波数[Hz]

パワースペクトル

表の世界

裏の世界

フーリエ変換

Page 12: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

フーリエ変換

xを時間軸、yを振幅とした波とする 周波数fに対して振幅をプロットしたパワースペクトルとする

0

5

10

15

20

25

30

35

0 0.04 0.08 0.13 0.17 0.21 0.25 0.29 0.33

振幅

周波数f

パワースペクトル

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

測定データ

フーリエ逆変換

上記の振幅と周波数のcos波とsin波の 合成波である

Excelの分析ツールにある

Page 13: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

測定データ

-1.00

-0.50

0.00

0.50

1.00

1.50

2.00

2.50

3.00

0 5 10 15 20 25

0

1.5

3

4.5

6

7.5

9

10.5

12

合成波

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

フーリエ変換

フーリエ逆変換の結果

Page 14: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

y = 9E-07x6 - 8E-05x5 + 0.0027x4 - 0.0362x3 + 0.1797x2 - 0.052x + 1.2858

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

多項式近似

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

連立方程式

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

ラグランジュ補間

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

フーリエ変換

0

0.5

1

1.5

2

2.5

3

0 5 10 15 20 25

3次スプライン補間

Excelのマクロ組めればスプラインあるいは フーリエ変換が好ましい

Page 15: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

連続した曲線であれば三角関数で全て表せるか? 例えば矩形波は? 三角は?

おまけ

できます。

ればよいをフーリエ変換で求めと上記の係数

すは、以下の式で表せま連続した曲線

nn

n

n

n

ba

xbxaxf

xf

sincos)(

)(

0

以下参照

Page 16: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

矩形波をフーリエ変換してsinとcos波で表すと

Page 17: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示
Page 18: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

1 3 5 7 9 合計 -2π -2 3.1E-16 3.1E-16 3.12E-16 3.12E-16 3.12E-16 1.56E-15

-1.8 0.74839 0.40364 -2.8E-16 -0.17299 -0.08315 0.8958888 -1.6 1.21092 -0.2495 2.5E-16 0.106913 -0.13455 0.933825 -1.4 1.21092 -0.2495 -2.2E-16 0.106913 -0.13455 0.933825 -1.2 0.74839 0.40364 1.87E-16 -0.17299 -0.08315 0.8958888

-π -1 -2E-16 -2E-16 -1.6E-16 -1.6E-16 -1.6E-16 -7.8E-16 -0.8 -0.7484 -0.4036 1.25E-16 0.172989 0.083155 -0.895889 -0.6 -1.2109 0.24946 -9.4E-17 -0.10691 0.134547 -0.933825 -0.4 -1.2109 0.24946 6.24E-17 -0.10691 0.134547 -0.933825 -0.2 -0.7484 -0.4036 -3.1E-17 0.172989 0.083155 -0.895889

0 0 0 0 0 0 0 0 0.2 0.74839 0.40364 3.12E-17 -0.17299 -0.08315 0.8958888 0.4 1.21092 -0.2495 -6.2E-17 0.106913 -0.13455 0.933825 0.6 1.21092 -0.2495 9.36E-17 0.106913 -0.13455 0.933825 0.8 0.74839 0.40364 -1.2E-16 -0.17299 -0.08315 0.8958888

π 1 1.6E-16 1.6E-16 1.56E-16 1.56E-16 1.56E-16 7.8E-16 1.2 -0.7484 -0.4036 -1.9E-16 0.172989 0.083155 -0.895889 1.4 -1.2109 0.24946 2.18E-16 -0.10691 0.134547 -0.933825 1.6 -1.2109 0.24946 -2.5E-16 -0.10691 0.134547 -0.933825 1.8 -0.7484 -0.4036 2.81E-16 0.172989 0.083155 -0.895889

2π 2 -3E-16 -3E-16 -3.1E-16 -3.1E-16 -3.1E-16 -1.56E-15

矩形波を三角関数で表すと

EXCELで以下の個数まで算出

)9sin(9

1)7sin(

7

1)5sin(

5

1)3sin(

3

1)sin(

4)( xxxxxxf

-1.5

-1

-0.5

0

0.5

1

1.5

-3 -2 -1 0 1 2 3

計算の個数を増すと矩形波に近づく

Page 19: カーブフィッティングの方法...①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示

三角波をフーリエ変換してsinとcos波で表すと