質問編集履歴
2
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
python
|
1
|
+
python ユークリッド距離を使って、近似誤差をグラフに出力する
|
body
CHANGED
File without changes
|
1
追加情報
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
python 近似誤差をグラフに出力する
|
1
|
+
python 元の関数とフ―リエ級数展開した式の近似誤差をグラフに出力する
|
body
CHANGED
@@ -3,8 +3,11 @@
|
|
3
3
|
数式の間違いがあり、それを正したところ、また間違ったグラフが出力されるようになってしまいました。
|
4
4
|
以前、回答をして下さった方のプログラムを少し変更しました。
|
5
5
|
def func_f(t)のところは特に間違いはないと思います。
|
6
|
-
間違いがあるとすると、def func_g(t,
|
6
|
+
間違いがあるとすると、def func_g(t,k)の部分と思います。フ―リエ級数展開した式は確認して確実にあっています。(return (-1)*(1.0-np.power(-1,k))*(np.sin(k*np.pi*t)/(k*np.pi)))
|
7
7
|
for文のインデントなど色々試しましたが、どれもうまくいきません。
|
8
|
+
~追記~
|
9
|
+
func_g(t,k)のところを少し変えました。
|
10
|
+
グラフの形は理想に近付きましたが、まだ少し違います。
|
8
11
|
|
9
12
|
```python
|
10
13
|
# -*- coding: utf-8 -*-
|
@@ -22,14 +25,14 @@
|
|
22
25
|
return f(t)
|
23
26
|
|
24
27
|
# 変換先関数 K項まで展開
|
25
|
-
def func_g(t,
|
28
|
+
def func_g(t, k):
|
26
|
-
def func_g_k(t,k):
|
27
|
-
|
29
|
+
return (-1)*(1.0-np.power(-1,k))*(np.sin(k*np.pi*t)/(k*np.pi))
|
28
30
|
s = (1.0/2.0)
|
29
31
|
for k in range(1,K):
|
30
|
-
|
32
|
+
s = s + func_g(t,k+1)
|
31
33
|
return s
|
32
34
|
|
35
|
+
|
33
36
|
def diff(K):
|
34
37
|
dt = 0.01
|
35
38
|
start = -1.0*np.pi
|
@@ -53,4 +56,5 @@
|
|
53
56
|
plt.show()
|
54
57
|
fig.savefig('fig323.pdf')
|
55
58
|
|
59
|
+
|
56
60
|
```
|