teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

修正

2020/11/16 09:22

投稿

tiroha
tiroha

スコア109

title CHANGED
@@ -1,1 +1,1 @@
1
- python 元の関数とフ―エ級数展開した式の近似誤差をグラフに出力する
1
+ python ユークッド距離を使って、近似誤差をグラフに出力する
body CHANGED
File without changes

1

追加情報

2020/11/16 09:22

投稿

tiroha
tiroha

スコア109

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,K)の部分と思います。フ―リエ級数展開した式は確認して確実にあっています。(return (-1)*(1.0-np.power(-1,k))*(np.sin(k*np.pi*t)/(k*np.pi)))
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, K):
28
+ def func_g(t, k):
26
- def func_g_k(t,k):
27
- return (-1)*(1.0-np.power(-1,k))*(np.sin(k*np.pi*t)/(k*np.pi))
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
- s = s + func_g_k(t,k+1)
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
  ```