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

質問編集履歴

1

変数の説明を追記しました。また、コメント文に付した①~⑤の行が穴埋めになっている形式なので、それ以外の行に間違いはありません。宜しくお願い致します。

2020/07/02 23:40

投稿

ty59rhgaeraoih
ty59rhgaeraoih

スコア1

title CHANGED
File without changes
body CHANGED
@@ -13,11 +13,11 @@
13
13
  #include <stdio.h>
14
14
  #include <math.h>
15
15
  #define M_PI 3.14159265
16
- #define MM 300
16
+ #define MM 300 //フーリエ級数展開の打ち切り次数
17
- #define Tp 1.0
17
+ #define Tp 1.0 //周期波形の周期
18
18
 
19
- double aa[MM+1], bb[MM+1] ;
19
+ double aa[MM+1], bb[MM+1] ; //フーリエ展開係数
20
- int NN = 3 * MM ;
20
+ int NN = 3 * MM ; //数値積分の分割数
21
21
 
22
22
  double ft(double t)
23
23
  {
@@ -27,10 +27,10 @@
27
27
 
28
28
 
29
29
  if( fabs( t+Tp/2.0 ) < zero || fabs( t-Tp/2.0) < zero ) return 0.5 ;
30
- else return 0.5 - t/Tp;
30
+ else return 0.5 - t/Tp; //ここは間違っている可能性あり①
31
31
 
32
32
 
33
- return 0.5 + 0.5 * cos((2.0 * M_PI * t) / Tp);
33
+ return 0.5 + 0.5 * cos((2.0 * M_PI * t) / Tp); //ここは間違っている可能性あり②
34
34
  }
35
35
 
36
36
  double ak_dt(int k, double t)
@@ -39,11 +39,11 @@
39
39
  }
40
40
 
41
41
  double fcoeff_ak( int k )
42
- {
42
+ { /* 関数f(t)のフーリエ展開級数 a_kを数値積分で求める */
43
43
  double t, i, ak = 0.0, dt = Tp/(double)NN ;
44
44
  for( i = 0 ; i < NN ; i ++ ) {
45
45
  t = -Tp/2.0 + (double)i * dt ;
46
- ak = ak + sin(t) / t ; // ここがよくわかっていません。
46
+ ak = ak + sin(t) / t ; // ここがよくわかっていません。
47
47
  }
48
48
 
49
49
  return ak ;
@@ -59,7 +59,7 @@
59
59
  double t, i, bk = 0.0, dt = Tp/(double)NN ;
60
60
  for( i = 0 ; i < NN ; i ++ ) {
61
61
  t = -Tp/2.0 + (double)i * dt ;
62
- bk = bk + sin(t) / t ; // 同様にここがわかりません。
62
+ bk = bk + sin(t) / t ; // 同様にここがわかりません。
63
63
  }
64
64
  return bk ;
65
65
  }
@@ -67,7 +67,7 @@
67
67
  double fxfreq( double *aa, double *bb, int M, double t)
68
68
  {
69
69
  int k ; double ff = 0.0 ;
70
- for ( k = 0 ; k <= MM ; k++ ) ff = *aa*cos(((double)k * 2.0 * M_PI * t)/ Tp ) + *bb*sin(((double)k * 2.0 * M_PI * t)/Tp ) ;//ここは合っているのかどうかわかりません。
70
+ for ( k = 0 ; k <= MM ; k++ ) ff = *aa*cos(((double)k * 2.0 * M_PI * t)/ Tp ) + *bb*sin(((double)k * 2.0 * M_PI * t)/Tp ) ;//ここは合っているのかどうかわかりません。
71
71
  return ff;
72
72
  }
73
73