maximaにおける三角関数

数学関数

三角関数三角関数双曲線関数双曲線関数
  • sin(x) : 正弦
  • cos(x) : 余弦
  • tan(x) : 正接
  • csc(x) : 余割
  • sec(x) : 正割
  • cot(x) : 余接
  • asin(x) : 逆正弦
  • acos : 逆余弦
  • atan(x) : 逆正接
  • atan2(y,x) :-πから πまでの間の atan(y/x)の値を得る
  • acsc(x) : 逆余割
  • asec(x) : 逆正割
  • acot(x) : 逆余接
  • sinh(x) : 双曲正弦
  • cosh(x) : 双曲余弦
  • tanh(x) : 双曲正接
  • sech(x) : 双曲正割
  • csch(x) : 双曲余割
  • coth(x) : 双曲余接
  • acosh(x) : 逆双曲余弦
  • acoth(x) : 逆双曲余接
  • acsch(x) : 逆双曲余割
  • asech(x) : 逆双曲正割
  • asinh(x) : 逆双曲正弦
  • atanh(x) : 逆双曲正接

パッケージ

atrig1

atrig1パッケージは、逆三角関数のためのいくつかの追加の整理規則を含む。Maximaの既設の規則と共に、以下の角度が完全に提供される: 0, %pi/6, %pi/4, %pi/3, %pi/2。他の3象限の対応する角度も利用出来る。使用には load(atrig1);を実行すること。

ntrig

ntrigパッケージは、引数がf(n %pi/10)形式の三角関数を整理するのに使われる整理規則の集合を含む。ここでfは関数 sin, cos, tan, csc, sec, cotのいずれかである。

Maxima関数

関数名説明
trigexpand exprの中に現れる角の和や角の倍数の三角関数双曲線関数を展開する。
trigreduce sin(x),sinh(x),cos(x),cosh(x)の積、べき乗を、xの倍数の関数に統合する。
trigsimp tan, secなどを含む式を sin, cos, sinh, coshに整理するために、恒等式 sin(x)^2 + cos(x)^2 = 1 と cosh(x)^2 - sinh(x)^2 = 1 を用いる。
trigrat 三角関数の整理された標準疑似線形形式を与える

trigexpand

trigexpand (expr)

exprの中に現れる、角度の和や角度の積を持つ三角関数双曲線関数を展開する。最もよい結果を得るためにはexprを展開しておく。整理におけるユーザー制御を高めるために、この関数は、一度に1レベルのみ展開を行う。直ちにサインとコサインへの完全な展開を得るには trigexpand変数にtrueを設定すること。

trigexpandは以下のグローバル定数によって管理される:

trigexpand, halfangles, trigexpandplus, trigexpandtimes

(%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
                         2           2
(%o1)               - sin (x) + 3 cos (x) + x
(%i2) trigexpand(sin(10*x+y));
(%o2)          cos(10 x) sin(y) + sin(10 x) cos(y)

trigreduce

trigreduce (expr, x)

trigreduce (expr)

sin(x),sinh(x),cos(x),cosh(x)の積、べき乗を、xの倍数の関数に統合する。これらの関数が分母にある時これらの消去を試みる。xを引数に指定しない場合はexprの中の変数について行われる。

poissimpも参照してください。

(%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
               cos(2 x)      cos(2 x)   1        1
(%o1)          -------- + 3 (-------- + -) + x - -
                  2             2       2        2

trigsimp

trigsimp (expr)

tan, secなどを含む式を sin, cos, sinh, coshに整理するために、 恒等式 sin(x)^2 + cos(x)^2 = 1 と cosh(x)^2 - sinh(x)^2 = 1 を用いる。

trigreduce, ratsimp, radcanは結果を更に整理できるかもしれません。

demo ("trgsmp.dem")は trigsimpのいくつかの例を表示します。

trigrat

trigrat (expr)

三角関数の整理された標準疑似線形形式を与える; 式exprは いくつかのsin, cosもしくはtanの有理分数であり、それらの引数は、整数係数を持つ、いくつかの変数(もしくは核)と %pi/n (nは整数)の線形形式である。結果は sinと cosに関して線形の分子と分母を持つ整理された分数となる。trigrat関数は可能なときはいつも線形化を行う。

(%i1) trigrat(sin(3*a)/sin(a+%pi/3));
(%o1)            sqrt(3) sin(2 a) + cos(2 a) - 1

以下の例は Davenport, Siret, and TournierのCalcul Formel, Masson (もしくは英語版ではAddison-Wesley), 1.5.5節, モーレイの定理から引用。

(%i1) c : %pi/3 - a - b$
(%i2) bc : sin(a)*sin(3*c)/sin(a+b);
                                          %pi
                  sin(a) sin(3 (- b - a + ---))
                                           3
(%o2)             -----------------------------
                           sin(b + a)
(%i3) ba : bc, c=a, a=c;
                                         %pi
                    sin(3 a) sin(b + a - ---)
                                          3
(%o3)               -------------------------
                                  %pi
                          sin(a - ---)
                                   3
(%i4) ac2 : ba^2 + bc^2 - 2*bc*ba*cos(b);
         2         2         %pi
      sin (3 a) sin (b + a - ---)
                              3
(%o4) ---------------------------
                2     %pi
             sin (a - ---)
                       3
                                       %pi
 - (2 sin(a) sin(3 a) sin(3 (- b - a + ---)) cos(b)
                                        3
             %pi            %pi
 sin(b + a - ---))/(sin(a - ---) sin(b + a))
              3              3
      2       2              %pi
   sin (a) sin (3 (- b - a + ---))
                              3
 + -------------------------------
                2
             sin (b + a)
(%i5) trigrat (ac2);
(%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
 - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
 - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
 + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
 + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
 + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
 - 9)/4

オプション変数

変数名デフォルト値説明
%piargs true 引数が %pi, %pi/2, %pi/3, %pi/4, %pi/6のいずれかの整数倍の時は、三角関数を代数定数に整理する。
%iargs true 引数が明らかに虚数単位 %i との積である場合、 三角関数双曲線関数に整理する。
halfangles false 引数expr/2をとる三角関数をexprの関数に整理する。
trigexpandplus true trigexpandplusは trigexpandの「和」規則を制御する。
trigexpandtimes true trigexpandtimesは trigexpandの「積」規則を制御する。
triginverses true triginversesは三角関数双曲線関数とそれらの逆関数の合成の整理を制御する。
trigsign true trigsignがtrueの時、三角関数への負の引数の整理を制御する。

%piargs

デフォルト値: true

%piargsが trueの時で、 引数が %pi, %pi/2, %pi/3, %pi/4, %pi/6のいずれかの整数倍の時は、三角関数が代数定数に整理される。

Maximaは %pi etc.と整数変数(整数として宣言されたシンボル)の積について、幾つかの恒等式を用いて処理する。

(%i1) %piargs : false$
(%i2) [sin (%pi), sin (%pi/2), sin (%pi/3)];
                                %pi       %pi
(%o2)            [sin(%pi), sin(---), sin(---)]
                                 2         3
(%i3) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
                      %pi       %pi       %pi
(%o3)            [sin(---), sin(---), sin(---)]
                       4         5         6
(%i4) %piargs : true$
(%i5) [sin (%pi), sin (%pi/2), sin (%pi/3)];
                                sqrt(3)
(%o5)                    [0, 1, -------]
                                   2
(%i6) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
                         1         %pi   1
(%o6)                [-------, sin(---), -]
                      sqrt(2)       5    2
(%i7) [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3),
       cos (sqrt(2)*%pi/3)];
                1    1               sqrt(2) %pi
(%o7)          [-, - -, sqrt(3), cos(-----------)]
                2    2                    3

%piと %pi/2 が整数変数にかけられた時、いくつかの恒等式が適用される。

(%i1) declare (n, integer, m, even)$
(%i2) [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m),
       cos (%pi/2 * m)];
                                      m/2
(%o2)                  [0, 1, 0, (- 1)   ]

%iargs

デフォルト値: true

%iargsが trueの時、引数が明らかに虚数単位%iとの積であるならば、三角関数双曲線関数に整理する。さらに引数が実数の時でも整理は実行る。; Maximaはただ、引数が逐語的に%iとの積であるかどうかをのみ考慮する。

(%i1) %iargs : false$
(%i2) [sin (%i * x), cos (%i * x), tan (%i * x)];
(%o2)           [sin(%i x), cos(%i x), tan(%i x)]
(%i3) %iargs : true$
(%i4) [sin (%i * x), cos (%i * x), tan (%i * x)];
(%o4)           [%i sinh(x), cosh(x), %i tanh(x)]

引数が明らかに実数の時においても整理は実行される。

(%i1) declare (x, imaginary)$
(%i2) [featurep (x, imaginary), featurep (x, real)];
(%o2)                     [true, false]
(%i3) sin (%i * x);
(%o3)                      %i sinh(x)

halfangles

デフォルト値: false

halfanglesがtrueの時、引数 expr/2の三角関数は exprの関数に整理される。

区間 0 &lt x &lt 2*%piの実引数 xに対して 半角の正弦は簡単な式に整理される:

                         sqrt(1 - cos(x))
                         ----------------
                             sqrt(2)

すべての複素引数zについてこの式を正しくするためには複雑な要素が必要となる:

           realpart(z)
     floor(-----------)
              2 %pi
(- 1)                   (1 - unit_step(- imagpart(z))

                            realpart(z)            realpart(z)
                      floor(-----------) - ceiling(-----------)
                               2 %pi                  2 %pi
                ((- 1)                                          + 1))

Maximaは、この要素と、関数sin, cos, sinh, coshに対する同様の要素を知っている。 引数zの特別な値に対してこれらの因子は相応に整理される。

(%i1) halfangles:false;
(%o1)                                false
(%i2) sin(x/2);
                                        x
(%o2)                               sin(-)
                                        2
(%i3) halfangles:true;
(%o3)                                true
(%i4) sin(x/2);
                                                    x
                                            floor(-----)
                                                  2 %pi
                      sqrt(1 - cos(x)) (- 1)
(%o4)                 ----------------------------------
                                   sqrt(2)
(%i5) assume(x>0, x<2*%pi)$
(%i6) sin(x/2);
                               sqrt(1 - cos(x))
(%o6)                          ----------------
                                   sqrt(2)

 

trigexpandplus

デフォルト値: true

trigexpandplusは trigexpand関数の「和」規則を制御する。trigexpand関数が使われる、あるいはtrigexpand変数がtrueに設定されている時、式中の和(例えば sin(x+y)))の展開は、trigexpandplusが trueの時だけ行われる。

trigexpandtimes

デフォルト値: true

trigexpandtimesは trigexpandの「積」規則を制御する。 trigexpand関数が使われる、 あるいはtrigexpand変数がtrueに設定されている時、式中の積(例えば sin(2*x))の展開は、 trigexpandtimesが trueの時だけ行われる。

triginverses

デフォルト値: true

triginversesは三角関数双曲線関数とそれらの逆関数の合成の整理を制御する。

もし allなら、 例えば、atan(tan(x))と tan(atan(x))のどちらも xに整理される。

もし trueなら、 arcfun(fun(x))の整理は行われない。

もし falseなら、 arcfun(fun(x))と fun(arcfun(x))のどちらの整理も行われない。

trigsign

デフォルト値: true

trigsignがtrueの時、三角関数への負の引数の整理を認める。例えば、trigsignがtrueの時だけsin(-x)は -sin(x)に変換される。