Re: Question: how to get Sin[n*Pi]=0 (n integer)
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg1960] Re: Question: how to get Sin[n*Pi]=0 (n integer)
- From: Bob Hanlon <hanlon at pafosu2.hq.af.mil>
- Date: Sun, 27 Aug 1995 23:23:38 -0400
> Newsgroups: comp.soft-sys.math.mathematica
> From: izovko at dominis.phy.hr (Ilija I Zovko)
> Subject: Question: how to get Sin[n*Pi]=0 (n integer)
> Date: Fri, 25 Aug 1995 04:08:30 GMT
>
> Hi,
>
> How can one tell Mathematica to simplify Sin[n Pi]=0 or
> Cos[n Pi]=(-1)^n and similar kind of stuff.
>
> Also, how does one tell it "A" & "B" are matrices so it doesn't
> commute them (AB.not equal.BA).
>
> Thanks.
> )
>
> --
> Ilija I Zovko
> izovko at phy.hr
Try this.
Bob Hanlon
_______________
(* Extend definitions of standard functions *)
Unprotect[Sin, Csc, Cos, Sec, Tan, Cot, IntegerQ, EvenQ, OddQ];
Clear[Sin, Cos, Tan, IntegerQ, EvenQ, OddQ];
IntegerQ[x_?IntegerQ y_?IntegerQ + z_:0] := IntegerQ[z];
EvenQ[x_ y_ + z_:0] := ( ( EvenQ[x] || EvenQ[y] ) && EvenQ[z] ) ||
( OddQ[x] && OddQ[y] && OddQ[z] );
OddQ[x_ y_ + z_:0] := ( ( EvenQ[x] || EvenQ[y] ) && OddQ[z] ) ||
( OddQ[x] && OddQ[y] && EvenQ[z] );
Sin[ n_?EvenQ Pi/2 ] = 0;
Sin[ n_?OddQ Pi/2 ] := ((-1)^Expand[(n-1)/2]) /.
(-1)^(c_ + d_?EvenQ) -> (-1)^c;
Sin[ n_?EvenQ Pi/2 + x_ * a_. ] := (-1)^(n/2) Sin[a x];
Sin[ n_?OddQ Pi/2 + x_ * a_. ] := ((-1)^Expand[(n-1)/2]) Cos[a x] /.
(-1)^(c_ + d_?EvenQ) -> (-1)^c;
Sin[ n_?IntegerQ Pi ] = 0;
Sin[ n_?IntegerQ Pi + x_ * a_. ] :=
Which[ EvenQ[n], Sin[a x], OddQ[n], -Sin[a x],
True, (-1)^n Sin[a x] /. (-1)^(c_ d_?OddQ) ->
(-1)^c ];
Csc[ n_?EvenQ Pi/2 ] = ComplexInfinity;
Csc[ n_?OddQ Pi/2 ] := ((-1)^Expand[(n-1)/2]) /.
(-1)^(c_ + d_?EvenQ) -> (-1)^c;
Csc[ n_?EvenQ Pi/2 + x_ * a_. ] := (-1)^(n/2) Csc[a x];
Csc[ n_?OddQ Pi/2 + x_ * a_. ] := ((-1)^Expand[(n-1)/2]) Sec[a x] /.
(-1)^(c_ + d_?EvenQ) -> (-1)^c;
Csc[ n_?IntegerQ Pi ] = ComplexInfinity;
Csc[ n_?IntegerQ Pi + x_ * a_. ] :=
Which[ EvenQ[n], Csc[a x], OddQ[n], -Csc[a x],
True, (-1)^n Csc[a x] /. (-1)^(c_ d_?OddQ) ->
(-1)^c ];
Cos[ n_?EvenQ Pi/2 ] = (-1)^(n/2); Cos[ n_?OddQ Pi/2 ] := 0;
Cos[ n_?EvenQ Pi/2 + x_ * a_. ] := (-1)^(n/2) Cos[a x];
Cos[ n_?OddQ Pi/2 + x_ * a_. ] := ((-1)^Expand[(n-1)/2]) Sin[a x] /.
(-1)^(c_ + d_?EvenQ) -> (-1)^c;
Cos[ n_?IntegerQ Pi ] :=
Which[ EvenQ[n], 1, OddQ[n], -1,
True, (-1)^n /. (-1)^(c_ d_?OddQ) -> (-1)^c ];
Cos[ n_?IntegerQ Pi + x_ * a_. ] :=
Which[ EvenQ[n], Cos[a x], OddQ[n], -Cos[a x],
True, (-1)^n Cos[a x] /. (-1)^(c_ d_?OddQ) ->
(-1)^c ];
Sec[ n_?EvenQ Pi/2 ] = (-1)^(n/2);
Sec[ n_?OddQ Pi/2 ] := ComplexInfinity;
Sec[ n_?EvenQ Pi/2 + x_ * a_. ] := (-1)^(n/2) Sec[a x];
Sec[ n_?OddQ Pi/2 + x_ * a_. ] := ((-1)^Expand[(n-1)/2]) Csc[a x] /.
(-1)^(c_ + d_?EvenQ) -> (-1)^c;
Sec[ n_?IntegerQ Pi ] :=
Which[ EvenQ[n], 1, OddQ[n], -1,
True, (-1)^n /. (-1)^(c_ d_?OddQ) -> (-1)^c ];
Sec[ n_?IntegerQ Pi + x_ * a_. ] :=
Which[ EvenQ[n], Sec[a x], OddQ[n], -Sec[a x],
True, (-1)^n Sec[a x] /. (-1)^(c_ d_?OddQ) ->
(-1)^c ];
Tan[ n_?EvenQ Pi/2 ] = 0; Tan[ n_?OddQ Pi/2 ] = ComplexInfinity;
Tan[ n_?IntegerQ Pi + x_ * a_. ] := Tan[a x];
Tan[ n_?IntegerQ Pi ] = 0;
Cot[n_?EvenQ Pi/2] = ComplexInfinity; Cot[n_?OddQ Pi/2] = 0;
Cot[ n_?IntegerQ Pi ] = ComplexInfinity;
Protect[Sin, Csc, Cos, Sec, Tan, Cot, IntegerQ, EvenQ, OddQ];
(* Define m and n as integers *)
m/: IntegerQ[m] = True; n/: IntegerQ[n] = True;
(* Define keven as an even integer *)
keven/: IntegerQ[keven] = True; keven/: EvenQ[keven] = True;
(* Define kodd as an odd integer *)
kodd/: IntegerQ[kodd] = True; kodd/: OddQ[kodd] = True;
TableForm[ Partition[Flatten[{ f[n Pi], f[keven Pi], f[kodd Pi],
f[n Pi/2], f[keven Pi/2], f[kodd Pi/2] } /.
{ {f -> Sin}, {f -> Cos}, {f -> Tan} } ], 3],
TableSpacing -> {1, 6} ]
0 0 0
n Pi
Sin[----] -(1/2) + kodd/2
2 0 (-1)
n
(-1) 1 -1
n Pi
Cos[----] keven/2
2 (-1) 0
0 0 0
n Pi
Tan[----]
2 0 ComplexInfinity
test = {comment, f[a b Pi], f[a b Pi + c x] } /.
{ {comment -> "integer:", a -> n, b -> m},
{comment -> "one even:", a -> 2n, b -> m},
{comment -> "one odd:", a -> 2n+1, b -> m},
{comment -> "both odd:", a -> 2n+1, b -> 2m+1} };
TableForm[test /. f -> Sin, TableSpacing -> {2, 9} ]
m n
integer: 0 (-1) Sin[c x]
one even: 0 Sin[c x]
m
one odd: 0 (-1) Sin[c x]
both odd: 0 -Sin[c x]
TableForm[test /. f -> Cos, TableSpacing -> {2, 6} ]
m n m n
integer: (-1) (-1) Cos[c x]
one even: 1 Cos[c x]
m m
one odd: (-1) (-1) Cos[c x]
both odd: -1 -Cos[c x]
test = {comment, f[a b Pi/2], f[a b Pi/2 + c x] } /.
{ {comment -> "integer:", a -> n, b -> m},
{comment -> "one even:", a -> 2n, b -> m},
{comment -> "both even:", a -> 2n, b -> 2m},
{comment -> "one odd:", a -> 2n+1, b -> m},
{comment -> "both odd:", a -> 2n+1, b -> 2m+1} };
TableForm[test /. f -> Sin, TableSpacing -> {2, 4} ]
m n Pi m n Pi
Sin[------] Sin[------ + c x]
integer: 2 2
m n
one even: 0 (-1) Sin[c x]
both even: 0 Sin[c x]
m (1 + 2 n) Pi m (1 + 2 n) Pi
Sin[--------------] Sin[-------------- + c x]
one odd: 2 2
m + n m + n
both odd: (-1) (-1) Cos[c x]
TableForm[test /. f -> Cos, TableSpacing -> {2, 4} ]
m n Pi m n Pi
Cos[------] Cos[------ + c x]
integer: 2 2
m n m n
one even: (-1) (-1) Cos[c x]
both even: 1 Cos[c x]
m (1 + 2 n) Pi m (1 + 2 n) Pi
Cos[--------------] Cos[-------------- + c x]
one odd: 2 2
m + n
both odd: 0 (-1) Sin[c x]