2 * Introduction to fast Fourier transform::
3 * Functions and Variables for fast Fourier transform::
4 * Introduction to Fourier series::
5 * Functions and Variables for Fourier series::
8 @c -----------------------------------------------------------------------------
9 @node Introduction to fast Fourier transform, Functions and Variables for fast Fourier transform, Numerical, Numerical
10 @section Introduction to fast Fourier transform
11 @c -----------------------------------------------------------------------------
13 @code{fft}パッケージは、高速Fourier変換の(数式計算ではなく)数値計算に関する関数を含みます。
16 @category{Fourier transform} @category{Numerical methods} @category{Share packages} @category{Package fft}
19 @c end concepts Numerical
21 @c -----------------------------------------------------------------------------
22 @node Functions and Variables for fast Fourier transform, Introduction to Fourier series, Introduction to fast Fourier transform, Numerical
23 @section Functions and Variables for fast Fourier transform
24 @c -----------------------------------------------------------------------------
26 @c -----------------------------------------------------------------------------
28 @deffn {関数} polartorect (@var{r}, @var{t})
30 形式@code{r %e^(%i t)}の複素値を形式@code{a + b %i}に変換します。
31 ここで、@var{r}は大きさで、@var{t}は位相です。
32 @var{r}と@var{t}は、同じサイズの1次元配列です。
33 配列のサイズは2のべき乗である必要はありません。
35 関数が戻ると、入力配列の元の値は、実部@code{a}と虚部@code{b}に置き換えられます。
43 @code{polartorect}は、@code{recttopolar}の逆関数です。
45 @code{load(fft)}はこの関数をロードします。
49 @category{Package fft} @category{Complex variables}
53 @c -----------------------------------------------------------------------------
55 @deffn {関数} recttopolar (@var{a}, @var{b})
57 形式@code{a + b %i}の複素値を形式@code{r %e^(%i t)}に変換します。
58 ここで、@var{a}は実部で、@var{b}は虚部です。
59 @var{a}と@var{b}は同じサイズの1次元配列です。
60 配列のサイズは2のべき乗である必要はありません。
62 関数が戻ると、入力配列の元の値は、大きさ@code{r}と偏角@code{t}に置き換えられます。
70 計算された偏角は、@code{-%pi}から@code{%pi}の範囲の中にあります。
72 @code{recttopolar}は@code{polartorect}の逆関数です。
74 @code{load(fft)}はこの関数をロードします。
78 @category{Package fft} @category{Complex variables}
82 @c -----------------------------------------------------------------------------
84 @deffn {関数} inverse_fft (@var{y})
87 @var{y}は、変換されるデータを含むリストもしくは配列です。
89 要素は、数リテラル(整数、有理数、浮動小数点、多倍長浮動小数点)、シンボル定数、
90 もしくは、@code{a}と@code{b}が数リテラルもしくはシンボル定数である式@code{a + b*%i}
93 @code{inverse_fft}は、@var{y}と同じタイプの新しいオブジェクトを返します。
95 結果はいつも浮動小数点、もしくは@code{a}と@code{b}が浮動小数点であるところの式
96 @code{a + b*%i}として計算されます。
98 逆離散Fourier変換は、以下のように定義されます。
100 @code{j}が0から@code{n - 1}まで変わる中、
103 x[j] = sum(y[k] exp(+2 %i %pi j k / n), k, 0, n - 1)
106 @code{load(fft)}はこの関数をロードします。
108 @code{fft} (正変換), @code{recttopolar}, @code{polartorect}も参照してください。
117 @c L : [1, 2, 3, 4, -1, -2, -3, -4] $
118 @c L1 : inverse_fft (L);
120 @c lmax (abs (L2 - L));
124 (%i2) fpprintprec : 4 $
125 (%i3) L : [1, 2, 3, 4, -1, -2, -3, -4] $
126 (%i4) L1 : inverse_fft (L);
127 (%o4) [0.0, 14.49 %i - .8284, 0.0, 2.485 %i + 4.828, 0.0,
128 4.828 - 2.485 %i, 0.0, - 14.49 %i - .8284]
130 (%o5) [1.0, 2.0 - 2.168L-19 %i, 3.0 - 7.525L-20 %i,
131 4.0 - 4.256L-19 %i, - 1.0, 2.168L-19 %i - 2.0,
132 7.525L-20 %i - 3.0, 4.256L-19 %i - 4.0]
133 (%i6) lmax (abs (L2 - L));
142 @c L : [1, 1 + %i, 1 - %i, -1, -1, 1 - %i, 1 + %i, 1] $
143 @c L1 : inverse_fft (L);
145 @c lmax (abs (L2 - L));
149 (%i2) fpprintprec : 4 $
150 (%i3) L : [1, 1 + %i, 1 - %i, -1, -1, 1 - %i, 1 + %i, 1] $
151 (%i4) L1 : inverse_fft (L);
152 (%o4) [4.0, 2.711L-19 %i + 4.0, 2.0 %i - 2.0,
153 - 2.828 %i - 2.828, 0.0, 5.421L-20 %i + 4.0, - 2.0 %i - 2.0,
156 (%o5) [4.066E-20 %i + 1.0, 1.0 %i + 1.0, 1.0 - 1.0 %i,
157 1.55L-19 %i - 1.0, - 4.066E-20 %i - 1.0, 1.0 - 1.0 %i,
158 1.0 %i + 1.0, 1.0 - 7.368L-20 %i]
159 (%i6) lmax (abs (L2 - L));
164 @category{Package fft}
168 @c -----------------------------------------------------------------------------
170 @deffn {関数} fft (@var{x})
173 @var{x}は、変換されるデータを含むリストもしくは配列です。
174 要素の数は2のべき乗でなければいけません。
175 要素は、数リテラル(整数、有理数、浮動小数点、多倍長浮動小数点)、シンボル定数、
176 もしくは、@code{a}と@code{b}が数リテラルもしくはシンボル定数である式@code{a + b*%i}
179 @code{fft}は、@var{x}と同じタイプの新しいオブジェクトを返します。
181 結果はいつも浮動小数点、もしくは@code{a}と@code{b}が浮動小数点であるところの式
182 @code{a + b*%i}として計算されます。
184 離散Fourier変換は、以下のように定義されます。
186 @code{k}が0から@code{n - 1}まで変わる中、
189 y[k] = (1/n) sum(x[j] exp(-2 %i %pi j k / n), j, 0, n - 1)
193 実係数@code{a}と@code{b}は以下のように計算することができます。
195 x[j] = sum(a[k]*cos(2*%pi*j*k/n)+b[k]*sin(2*%pi*j*k/n), k, 0, n/2)
201 a[0] = realpart (y[0])
205 そして、@code{k}が1からn/2 - 1まで変わる中、
208 a[k] = realpart (y[k] + y[n - k])
209 b[k] = imagpart (y[n - k] - y[k])
215 a[n/2] = realpart (y[n/2])
219 @code{load(fft)}はこの関数をロードします。
221 @code{inverse_fft} (逆変換), @code{recttopolar}, @code{polartorect}も参照してください。
230 @c L : [1, 2, 3, 4, -1, -2, -3, -4] $
232 @c L2 : inverse_fft (L1);
233 @c lmax (abs (L2 - L));
237 (%i2) fpprintprec : 4 $
238 (%i3) L : [1, 2, 3, 4, -1, -2, -3, -4] $
240 (%o4) [0.0, - 1.811 %i - .1036, 0.0, .6036 - .3107 %i, 0.0,
241 .3107 %i + .6036, 0.0, 1.811 %i - .1036]
242 (%i5) L2 : inverse_fft (L1);
243 (%o5) [1.0, 2.168L-19 %i + 2.0, 7.525L-20 %i + 3.0,
244 4.256L-19 %i + 4.0, - 1.0, - 2.168L-19 %i - 2.0,
245 - 7.525L-20 %i - 3.0, - 4.256L-19 %i - 4.0]
246 (%i6) lmax (abs (L2 - L));
255 @c L : [1, 1 + %i, 1 - %i, -1, -1, 1 - %i, 1 + %i, 1] $
257 @c L2 : inverse_fft (L1);
258 @c lmax (abs (L2 - L));
262 (%i2) fpprintprec : 4 $
263 (%i3) L : [1, 1 + %i, 1 - %i, -1, -1, 1 - %i, 1 + %i, 1] $
265 (%o4) [0.5, .3536 %i + .3536, - 0.25 %i - 0.25,
266 0.5 - 6.776L-21 %i, 0.0, - .3536 %i - .3536, 0.25 %i - 0.25,
268 (%i5) L2 : inverse_fft (L1);
269 (%o5) [1.0 - 4.066E-20 %i, 1.0 %i + 1.0, 1.0 - 1.0 %i,
270 - 1.008L-19 %i - 1.0, 4.066E-20 %i - 1.0, 1.0 - 1.0 %i,
271 1.0 %i + 1.0, 1.947L-20 %i + 1.0]
272 (%i6) lmax (abs (L2 - L));
281 @c L : [1, 2, 3, 4, 5, 6, 7, 8] $
283 @c x : make_array (any, n) $
284 @c fillarray (x, L) $
286 @c a : make_array (any, n/2 + 1) $
287 @c b : make_array (any, n/2 + 1) $
288 @c a[0] : realpart (y[0]) $
290 @c for k : 1 thru n/2 - 1 do
291 @c (a[k] : realpart (y[k] + y[n - k]),
292 @c b[k] : imagpart (y[n - k] - y[k]));
297 @c f(j) := sum (a[k] * cos (2*%pi*j*k / n) + b[k] * sin (2*%pi*j*k / n), k, 0, n/2) $
298 @c makelist (float (f (j)), j, 0, n - 1);
302 (%i2) fpprintprec : 4 $
303 (%i3) L : [1, 2, 3, 4, 5, 6, 7, 8] $
304 (%i4) n : length (L) $
305 (%i5) x : make_array (any, n) $
306 (%i6) fillarray (x, L) $
308 (%i8) a : make_array (any, n/2 + 1) $
309 (%i9) b : make_array (any, n/2 + 1) $
310 (%i10) a[0] : realpart (y[0]) $
312 (%i12) for k : 1 thru n/2 - 1 do
313 (a[k] : realpart (y[k] + y[n - k]),
314 b[k] : imagpart (y[n - k] - y[k]));
316 (%i13) a[n/2] : y[n/2] $
318 (%i15) listarray (a);
319 (%o15) [4.5, - 1.0, - 1.0, - 1.0, - 0.5]
320 (%i16) listarray (b);
321 (%o16) [0, - 2.414, - 1.0, - .4142, 0]
322 (%i17) f(j) := sum (a[k]*cos(2*%pi*j*k/n) + b[k]*sin(2*%pi*j*k/n),
324 (%i18) makelist (float (f (j)), j, 0, n - 1);
325 (%o18) [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]
329 @category{Package fft}
333 @c -----------------------------------------------------------------------------
335 @defvr {オプション変数} fortindent
338 @code{fortindent}は、@code{fortran}コマンドが表示する式の
340 0は、標準のプリントアウト(すなわち6スペース)を与え、
341 正の値は、式を更に右に印字するようにします。
344 @category{Translation and compilation}
348 @c -----------------------------------------------------------------------------
350 @deffn {関数} fortran (@var{expr})
352 Fortran文として@var{expr}を印字します。
355 @code{fortran}は継続行を印字します。
356 @code{fortran}は、指数演算子@code{^}を@code{**}として印字し、
357 複素数@code{a + b %i}を形式@code{(a,b)}で印字します。
359 @var{expr}は等式も取り、もしそうなら、@code{fortran}は、
360 等式の右辺を左辺に割り当てる割り当て文を印字します。
361 特に、もし@var{expr}の右辺が行列名なら、
362 @code{fortran}は、行列の要素それぞれに対する割り当て文を印字します。
364 もし@var{expr}が@code{fortran}が認識する何かでないなら、
365 エラーなしに、式が@code{grind}フォーマットで印字されます。
366 @code{fortran}は、リスト、配列、関数について知りません。
368 @code{fortindent}は、@code{fortran}コマンドが表示する式の
370 0は、標準のプリントアウト(すなわち6スペース)を与え、
371 正の値は、式を更に右に印字するようにします。
373 @code{fortspaces}が@code{true}の時、
374 @code{fortran}は、印字行それぞれを80カラムまでスペースで埋めます。
376 @code{fortran}は引数を評価します;
378 @code{fortran}はいつも@code{done}を返します。
383 (%i1) expr: (a + b)^12$
384 (%i2) fortran (expr);
387 (%i3) fortran ('x=expr);
390 (%i4) fortran ('x=expand (expr));
391 x = b**12+12*a*b**11+66*a**2*b**10+220*a**3*b**9+495*a**4*b**8+792
392 1 *a**5*b**7+924*a**6*b**6+792*a**7*b**5+495*a**8*b**4+220*a**9*b
393 2 **3+66*a**10*b**2+12*a**11*b+a**12
395 (%i5) fortran ('x=7+5*%i);
398 (%i6) fortran ('x=[1,2,3,4]);
408 @category{Translation and compilation}
412 @c -----------------------------------------------------------------------------
414 @defvr {オプション変数} fortspaces
417 @code{fortspaces}が@code{true}の時、
418 @code{fortran}は、印字行それぞれを80カラムまでスペースで埋めます。
421 @category{Translation and compilation}
425 @c -----------------------------------------------------------------------------
427 @deffn {関数} horner (@var{expr}, @var{x})
428 @deffnx {関数} horner (@var{expr})
430 Horner規則に従って、もし指定されないなら@var{x}を主変数として使い、
431 @var{expr}の再配列された表現を返します。
432 @code{x}は、@var{expr}の標準有理式形の主変数が使われる場合には、省略できます。
434 もし@code{expr}が数値的に評価されるものなら、
435 @code{horner}は、時々、安定性が改善されます。
436 また、もしMaximaがFortranで走らせるプログラムを生成するのに使われるなら、
438 @code{stringout}も参照してください。
441 (%i1) expr: 1e-155*x^2 - 5.5*x + 5.2e155;
443 (%o1) 1.0E-155 x - 5.5 x + 5.2E+155
444 (%i2) expr2: horner (%, x), keepfloat: true;
445 (%o2) (1.0E-155 x - 5.5) x + 5.2E+155
446 (%i3) ev (expr, x=1e155);
447 Maxima encountered a Lisp error:
449 floating point overflow
451 Automatically continuing.
452 To reenable the Lisp debugger set *debugger-hook* to nil.
453 (%i4) ev (expr2, x=1e155);
458 @category{Numerical methods}
462 @c -----------------------------------------------------------------------------
464 @anchor{bf_find_root}
465 @anchor{find_root_error}
466 @anchor{find_root_abs}
467 @anchor{find_root_rel}
468 @deffn {関数} find_root (@var{expr}, @var{x}, @var{a}, @var{b}, [@var{abserr}, @var{relerr}])
469 @deffnx {関数} find_root (@var{f}, @var{a}, @var{b}, [@var{abserr}, @var{relerr}])
470 @deffnx {関数} bf_find_root (@var{expr}, @var{x}, @var{a}, @var{b}, [@var{abserr}, @var{relerr}])
471 @deffnx {関数} bf_find_root (@var{f}, @var{a}, @var{b}, [@var{abserr}, @var{relerr}])
472 @deffnx {オプション変数} find_root_error
473 @deffnx {オプション変数} find_root_abs
474 @deffnx {オプション変数} find_root_rel
476 式@var{expr}もしくは関数@var{f}の根を、閉区間@math{[@var{a}, @var{b}]}上で見つけます。
477 式@var{expr}は等式でも問題ありません。
478 その場合、@code{find_root}は@code{lhs(@var{expr}) - rhs(@var{expr})}の根を探します。
480 Maximaは@var{expr}もしくは@var{f}を@math{[@var{a}, @var{b}]}上で評価可能であり、
481 @var{expr}もしくは@var{f}は連続と仮定して、@code{find_root}は根もしくは、
482 もし複数の根があるなら、根の1つを見つけることを保証します。
484 @code{find_root}は初め、2分木探索を適用します。
485 もし対象の関数が十分滑らかなら,@code{find_root}は代わりに線形内挿を適用します。
487 @code{f_find_root}は@code{find_root}の多倍長浮動小数点版です。
488 関数は多倍長浮動小数点数値を使って計算され、多倍長浮動小数点の結果が返されます。
489 そうでなければ、@code{bf_find_root}は@code{find_root}と同一で、以下の記述は@code{bf_find_root}に同様に適用されます。
491 @code{find_root}の精度は@code{abserr}と@code{relerr}に支配されます。
492 それらは@code{fine_root}へのオプションのキーワード引数です。
493 これらのキーワード引数は形式@code{key=val}を取ります。
497 根での関数値の望まれる絶対エラー。デフォルトは、@code{find_root_abs}です。
499 根の望まれる相対エラー。デフォルトは@code{find_root_rel}です。
502 懸案の関数が@code{abserr}以下の何かに評価される時、または、
503 近似値@var{x_0}, @var{x_1}の差が@code{relerr * max(abs(x_0), abs(x_1))}以下になるなら、@code{find_root}は停止します。
505 @code{find_root_abs}と@code{find_root_rel}のデフォルト値はともに零です。
507 @code{find_root}は、探索区間の端で対象の関数が異なる符号を持つことを期待します。
508 関数が両方の終端での数に評価されて、それらの数が同じ符号を持つ時、
509 @code{find_root}の振る舞いは、@code{find_root_error}に支配されます。
510 @code{find_root_error}が@code{true}の時、
511 @code{find_root}はエラーメッセージを出力します。
512 そうでなければ、@code{find_root}は@code{find_root_error}の値を返します。
513 @code{find_root_error}のデフォルト値は@code{true}です。
515 もし@var{f}が探索アルゴリズムの中の任意のステップで、数以外の何かに評価するなら、
516 @code{find_root}は、部分的に評価された@code{find_root}式を返します。
517 @var{a}と@var{b}の順序は無視されます;
518 根が探索される区間は@math{[min(@var{a}, @var{b}), max(@var{a}, @var{b})]}です。
521 @c PREVIOUS EXAMPLE STUFF -- MAY WANT TO BRING TRANSLATE BACK INTO THE EXAMPLE
522 @c f(x):=(mode_declare(x,float),sin(x)-x/2.0);
523 @c interpolate(sin(x)-x/2,x,0.1,%pi) time= 60 msec
524 @c interpolate(f(x),x,0.1,%pi); time= 68 msec
526 @c interpolate(f(x),x,0.1,%pi); time= 26 msec
527 @c interpolate(f,0.1,%pi); time= 5 msec
530 @c f(x) := sin(x) - x/2;
531 @c find_root (sin(x) - x/2, x, 0.1, %pi);
532 @c find_root (sin(x) = x/2, x, 0.1, %pi);
533 @c find_root (f(x), x, 0.1, %pi);
534 @c find_root (f, 0.1, %pi);
535 @c find_root (exp(x) = y, x, 0, 100);
536 @c find_root (exp(x) = y, x, 0, 100), y = 10;
540 @c bf_find_root (exp(x) = y, x, 0, 100), y = 10;
544 (%i1) f(x) := sin(x) - x/2;
546 (%o1) f(x) := sin(x) - -
548 (%i2) find_root (sin(x) - x/2, x, 0.1, %pi);
549 (%o2) 1.895494267033981
550 (%i3) find_root (sin(x) = x/2, x, 0.1, %pi);
551 (%o3) 1.895494267033981
552 (%i4) find_root (f(x), x, 0.1, %pi);
553 (%o4) 1.895494267033981
554 (%i5) find_root (f, 0.1, %pi);
555 (%o5) 1.895494267033981
556 (%i6) find_root (exp(x) = y, x, 0, 100);
558 (%o6) find_root(%e = y, x, 0.0, 100.0)
559 (%i7) find_root (exp(x) = y, x, 0, 100), y = 10;
560 (%o7) 2.302585092994046
562 (%o8) 2.302585092994046
565 (%i10) bf_find_root (exp(x) = y, x, 0, 100), y = 10;
566 (%o10) 2.3025850929940456840179914546844b0
568 (%o11) 2.3025850929940456840179914546844b0
572 @category{Algebraic equations} @category{Numerical methods}
577 @c -----------------------------------------------------------------------------
579 @deffn {関数} newton (@var{expr}, @var{x}, @var{x_0}, @var{eps})
581 @var{expr}を@var{x}の1変数関数と考えて、
582 Newton法による、@code{@var{expr} = 0}の近似解を返します。
583 探索は、@code{@var{x} = @var{x_0}}で始まり、
584 (@var{x}の現在値で評価された@var{expr}を使った)@code{abs(@var{expr}) < @var{eps}}が成り立つまで続きます。
586 終了テスト@code{abs(@var{expr}) < @var{eps}}が@code{true}または@code{false}に評価される限り、
587 @code{newton}は、未定義変数が@var{expr}の中に現れることを許します。
590 @var{expr}は数に評価される必要はありません。
592 @code{load(newton1)}はこの関数をロードします。
594 @code{realroots}, @code{allroots}, @code{find_root}, @code{mnewton}も参照してください。
600 @c newton (cos (u), u, 1, 1/100);
601 @c ev (cos (u), u = %);
603 @c newton (x^2 - a^2, x, a/2, a^2/100);
604 @c ev (x^2 - a^2, x = %);
607 (%i1) load (newton1);
608 (%o1) /usr/share/maxima/5.10.0cvs/share/numeric/newton1.mac
609 (%i2) newton (cos (u), u, 1, 1/100);
610 (%o2) 1.570675277161251
611 (%i3) ev (cos (u), u = %);
612 (%o3) 1.2104963335033528E-4
613 (%i4) assume (a > 0);
615 (%i5) newton (x^2 - a^2, x, a/2, a^2/100);
616 (%o5) 1.00030487804878 a
617 (%i6) ev (x^2 - a^2, x = %);
619 (%o6) 6.098490481853958E-4 a
623 @category{Algebraic equations} @category{Numerical methods}
627 @c -----------------------------------------------------------------------------
628 @node Introduction to Fourier series, Functions and Variables for Fourier series, Functions and Variables for fast Fourier transform, Numerical
629 @section Introduction to Fourier series
630 @c -----------------------------------------------------------------------------
632 @code{fourie}パッケージは、Fourier級数のシンボル計算のための関数を含みます。
634 @code{fourie}パッケージの中には
635 Fourier積分係数を計算する関数や、式の操作のためのいくつかの関数があります。
638 @category{Fourier transform} @category{Share packages} @category{Package fourie}
641 @c -----------------------------------------------------------------------------
642 @node Functions and Variables for Fourier series, , Introduction to Fourier series, Numerical
643 @section Functions and Variables for Fourier series
644 @c -----------------------------------------------------------------------------
648 @c -----------------------------------------------------------------------------
650 @deffn {関数} equalp (@var{x}, @var{y})
652 もし@code{equal (@var{x}, @var{y})}なら、@code{true}を返し、
653 そうでないなら、@code{false}を返します。
654 (この場合、@code{equal (x, y)}がするようなエラーメッセージを与えません。)
658 @category{Package fourie}
662 @c -----------------------------------------------------------------------------
664 @deffn {関数} remfun (@var{f}, @var{expr})
665 @deffnx {関数} remfun (@var{f}, @var{expr}, @var{x})
667 @code{remfun (@var{f}, @var{expr})}は、
668 @var{expr}の中の@code{@var{f} (@var{arg})}すべてを@var{arg}で置き換えます。
670 @code{remfun (@var{f}, @var{expr}, @var{x})}は、
671 @var{expr}の中の@code{@var{f} (@var{arg})}を
672 @var{arg}が変数@var{x}を含むときだけ
677 @category{Package fourie}
681 @c -----------------------------------------------------------------------------
683 @deffn {関数} funp (@var{f}, @var{expr})
684 @deffnx {関数} funp (@var{f}, @var{expr}, @var{x})
686 @code{funp (@var{f}, @var{expr})}は、
687 もし@var{expr}が関数@var{f}を含むなら
690 @code{funp (@var{f}, @var{expr}, @var{x})}は、
691 もし@var{expr}が関数@var{f}を含み、変数
692 @var{x}が@var{f}のインスタンスの1つの引数のどこかにあるなら、
697 @category{Package fourie}
701 @c -----------------------------------------------------------------------------
703 @deffn {関数} absint (@var{f}, @var{x}, @var{halfplane})
704 @deffnx {関数} absint (@var{f}, @var{x})
705 @deffnx {関数} absint (@var{f}, @var{x}, @var{a}, @var{b})
707 @code{absint (@var{f}, @var{x}, @var{halfplane})}は、
708 与えられた半平面(@code{pos}, @code{neg}, または@code{both})での
709 @var{f}の@var{x}に関する不定積分を返します。
711 @code{abs (x)}, @code{abs (sin (x))}, @code{abs (a) * exp (-abs (b) * abs (x))}
714 @code{absint (@var{f}, @var{x})}は@code{absint (@var{f}, @var{x}, pos)}と同値です。
716 @code{absint (@var{f}, @var{x}, @var{a}, @var{b})}は、
719 @var{a}から@var{b}までの定積分
722 @c SAME LIST AS ABOVE ??
723 @var{f}は、絶対値を含むことができます。
727 @category{Package fourie} @category{Integral calculus}
733 @c -----------------------------------------------------------------------------
735 @deffn {関数} fourier (@var{f}, @var{x}, @var{p})
737 区間@code{[-p, p]}上で定義された@code{@var{f}(@var{x})}のFourier係数のリストを返します。
741 @category{Package fourie}
745 @c NEES EXPANSION. WHAT IS THE ARGUMENT l ??
747 @c -----------------------------------------------------------------------------
749 @deffn {関数} foursimp (@var{l})
751 もし@code{sinnpiflag}が@code{true}なら、@code{sin (n %pi)}を0に整理します。
752 もし@code{cosnpiflag}が@code{true}なら、@code{cos (n %pi)}を@code{(-1)^n}に整理します。
756 @category{Package fourie} @category{Trigonometric functions} @category{Simplification functions}
760 @c -----------------------------------------------------------------------------
762 @defvr {オプション変数} sinnpiflag
765 @code{foursimp}を参照してください。
768 @category{Package fourie}
772 @c -----------------------------------------------------------------------------
774 @defvr {オプション変数} cosnpiflag
777 @code{foursimp}を参照してください。
780 @category{Package fourie}
784 @c NEEDS EXPANSION. EXPLAIN x AND p HERE (DO NOT REFER SOMEWHERE ELSE)
786 @c -----------------------------------------------------------------------------
788 @deffn {関数} fourexpand (@var{l}, @var{x}, @var{p}, @var{limit})
790 Fourier係数@var{l}のリストから
791 @var{limit}項までのFourier級数を構成し、返します。
792 (@var{limit}は@code{inf}もあり得ます。)
793 @var{x}と@var{p}は、@code{fourier}におけるものと同じ意味を持ちます。
797 @category{Package fourie}
803 @c -----------------------------------------------------------------------------
805 @deffn {関数} fourcos (@var{f}, @var{x}, @var{p})
807 @code{[0, @var{p}]}上で定義された
808 @code{@var{f}(@var{x})}のFourierコサイン係数を返します。
812 @category{Package fourie}
818 @c -----------------------------------------------------------------------------
820 @deffn {関数} foursin (@var{f}, @var{x}, @var{p})
822 @code{[0, @var{p}]}上で定義された
823 @code{@var{f}(@var{x})}のFourierサイン係数を返します。
827 @category{Package fourie}
833 @c -----------------------------------------------------------------------------
834 @anchor{totalfourier}
835 @deffn {関数} totalfourier (@var{f}, @var{x}, @var{p})
837 @code{fourexpand (foursimp (fourier (@var{f}, @var{x}, @var{p})), @var{x}, @var{p}, 'inf)}を返します。
841 @category{Package fourie}
847 @c -----------------------------------------------------------------------------
849 @deffn {関数} fourint (@var{f}, @var{x})
851 @code{[minf, inf]}上で定義された
852 @code{@var{f}(@var{x})}のFourier積分係数のリストを構成し、返します。
856 @category{Package fourie}
862 @c -----------------------------------------------------------------------------
864 @deffn {関数} fourintcos (@var{f}, @var{x})
865 @code{[0, inf]}上の@code{@var{f}(@var{x})}のFourierコサイン積分係数を返します。
869 @category{Package fourie}
875 @c -----------------------------------------------------------------------------
877 @deffn {関数} fourintsin (@var{f}, @var{x})
878 @code{[0, inf]}上の@code{@var{f}(@var{x})}のFourierサイン積分係数を返します。
883 @category{Package fourie}