Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
カーブフィッティングの方法
EXCELの近似式で十分ですか?
①データにカーソルを合わせ右クリック ②「近似曲線の追加」をクリックすると「近似曲線の書式設定」画面が表示 ③「多項式近似」を選択し、次数を変えてフィットするものを探す ④「グラフに数式を表示する」を選択
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
(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
とすると
代入した値以外の補間部分では 外れる値が多い
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 ①
(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
ラグランジュ補間
連立方程式と同じ値となる
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のマクロ
スプライン補間法
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
境界条件
とおくとを微分して式
を算出及びを算出、次に
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次スプライン補間
フーリエ変換
どんな複雑な波もシンプルな波の足し算である
tAty sin)( シンプルな波
tAty sin)()(複雑な波
の波の振幅:周波数:周波数 )(A
dtAty sin)()(
整数
実数
deAty ti
)()(
itetit sincosオイラーの公式
sin波だけでなく cos波も仲間に 入れたい
虚数 は、我々の目に見えない「仏の世界」 愛 が世界に平和をもたらす
ii
-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]
パワースペクトル
表の世界
裏の世界
フーリエ変換
フーリエ変換
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
y
X
測定データ
フーリエ逆変換
上記の振幅と周波数のcos波とsin波の 合成波である
Excelの分析ツールにある
0
0.5
1
1.5
2
2.5
3
0 5 10 15 20 25
y
X
測定データ
-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
フーリエ変換
フーリエ逆変換の結果
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のマクロ組めればスプラインあるいは フーリエ変換が好ましい
連続した曲線であれば三角関数で全て表せるか? 例えば矩形波は? 三角は?
おまけ
できます。
ればよいをフーリエ変換で求めと上記の係数
すは、以下の式で表せま連続した曲線
nn
n
n
n
ba
xbxaxf
xf
sincos)(
)(
0
以下参照
矩形波をフーリエ変換してsinとcos波で表すと
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
計算の個数を増すと矩形波に近づく
三角波をフーリエ変換してsinとcos波で表すと