MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Adding new rules to Simplify

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56377] Re: [mg56311] Adding new rules to Simplify
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Sat, 23 Apr 2005 01:16:09 -0400 (EDT)
  • References: <200504221022.GAA18638@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On 22 Apr 2005, at 19:22, John Billingham wrote:

> I'm trying to teach Mathematica the obvious simplification rules for 
> Jacobi elliptic functions, which i had hoped would be built in! 
> Grumble
>
> Having defined
>
>
> sn[x_ /; !FreeQ[x, JacobiSN] :=
> x /. JacobiSN[u_, m_]-> Sqrt[(1 - JacobiDN[u, m]^2)/m];
>
> sn[x_] := x;
>
> mySimplify =
> Simplify[#, TransformationFunctions -> {sn, Automatic}] &;
>
> I find that
>
> mySimplify[1 - (1 - k^2) JacobiSN[p, 1 - k^2]]
>
> gives me
>
> JacobiDN[p, 1 - k^2]^2
>
> as I had hoped, but that the equivalent expression
>
> mySimplify[1 + (-1 + k^2) JacobiSN[p, 1 - k^2]
>
> leaves the formula unsimplified.
>
> What Mathematica subtlety am I missing here??
>
> Thanks,
>
> John
>
>
I can't beleive that either of your cases worked; they certainly do not 
work here. What is missing is that you need to specify a 
ComplexityFunction that will make the result of your desired 
simplification "simpler" than what you started with. For example this 
will work:

In[1]:=
sn[x_] /;  !FreeQ[x, JacobiSN] := x /. JacobiSN[u_, m_] -> Sqrt[(1 - 
JacobiDN[u, m]^2)/m];

In[2]:=
sn[x_] := x;

In[3]:=
mySimplify = Simplify[#1, TransformationFunctions -> {sn, Automatic},
      ComplexityFunction -> (Count[#1, JacobiSN[__], Infinity] & )] & ;

Now both of your "simplifications" (the results certainly look more 
"complex") work as intended.

Andrzej Kozlowski
Chiba, Japan
http://www.akikoz.net/andrzej/index.html
http://www.mimuw.edu.pl/~akoz/


  • Prev by Date: simplifying ulam spiral code
  • Next by Date: Re: Re: Re: (x-y) DiracDelta[x-y] does not simplify to 0
  • Previous by thread: Adding new rules to Simplify
  • Next by thread: Re: Adding new rules to Simplify