[Date Index]
[Thread Index]
[Author Index]
Re: Plus Behavior Inside a Notation Box?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg64956] Re: Plus Behavior Inside a Notation Box?
*From*: Paul Abbott <paul at physics.uwa.edu.au>
*Date*: Fri, 10 Mar 2006 05:14:47 -0500 (EST)
*Organization*: The University of Western Australia
*References*: <duh39s$5ui$1@smc.vnet.net> <duls4s$35u$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
In article <duls4s$35u$1 at smc.vnet.net>, "Josh" <josh at gocougs.wsu.edu>
wrote:
> Thanks, that was the insight I was looking for. I did find that a
> single underscore worked better than the double and triple underscore.
> Not sure I understand why, the double or triple underscore should work
> better.
This is an issue with understanding how pattern-matching works. It
really has nothing to do with the Notation package.
> The motivation for this was to map the built in BesselJ[n,z] and
> BesselK[n,z] functions to J_n[z] and Y_n[z].
If you use TraditionalForm (at least for output -- if you've followed
some other recent threads on this topic) by doing
Cell | Default Output FormatType | TraditionalForm
then special functions such as the Bessel function are typeset
automatically.
(Note one potential problem: the Notation package expects that you are
using the same FormatType for Input and Output. If these are different
you will encounter problems using Notation.)
> This works quite nicely,
> with the subscript properly denoting the order of the Bessel function
> after differentiation and all the rules for simplification and such are
> still implemented. The subscripts tend to come out backwards, -1+n
> instead of n-1, but I can live with that.
That is also an issue with StandardForm. If you enter
n - 1
in StandardForm you get
-1 + n
TraditionalForm gives you
n - 1
> Notation[ J_n_ [z_] <=> BesselJ[n_, z_] ]
> Notation[ Y_n_ [z_] <=> BesselY[n_, z_] ]
>
> One alternative was to create the symbols J_n and Y_n, but I lose a lot
> of the built-in functionality that way. The other possibility was
> creating a function J_n_[z_] := BesselJ[n,z], which preserves all the
> built-in functions, but the output is in the BesselJ[n,z] format.
>
> I started running into trouble when I tried implementing the Hankel
> functions in a similiar manner. My understanding is that there is no
> built-in function for them yet, so I tried the following.
>
> Notation[H_n_ ^(1) [z_] <=> Plus[ J_n[z_], Complex[0,1] Y_n[z_] ] ]
> Notation[H_n_ ^(2) [z_] <=> Plus[ J_n[z_], Complex[0,-1] Y_n[z_] ] ]
>
> Again, this was working reasonably well. The symbols for H_n ^(1) and
> H_n ^(2) rendered properly and I was getting good results. Until I
> tried adding another number in, prompting my first post.
Since Mathematica only knows how to operate on BesselJ or BesselY, there
will be issues in "recognising" Hankel functions in expressions. Again,
this is really a pattern-matching issue, rather than an Notation package
one. If you operate on Hankel functions then you expect the result to
also be expressed in terms of Hankel functions. One way to achieve this
is to input expressions using the notation package (which can convert
Hankel functions on input to combinations of BesselJ and BesselY),
operate on this result and then use the patterns
{BesselJ[n_, z_] -> (Hankel[1][n,z] + Hankel[2][n,z])/2,
BesselY[n_, z_] -> (Hankel[1][n,z] - Hankel[2][n,z])/(2 I)}
(note that Hankel[1,2][n,z] is not [yet] defined) to express the answer
as Hankel functions.
Beware of automatic simplification/transformation. For example, entering
Sin[x]/Cos[x]
or
1/Cos[x]
will cause problems if your rules are expecting such combinations to be
left untouched.
> I've made some progress on this, but there are considerably more cases
> that need to be defined. If you want I'll post what I have so far
> (what's the best way of doing so?) for you to look at.
The easiest way is to put Notebooks in a publicly accessible location
(for download via http, ftp, afp, ...)
Cheers,
Paul
_______________________________________________________________________
Paul Abbott Phone: 61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
AUSTRALIA http://physics.uwa.edu.au/~paul
Prev by Date:
**Re: Mathematica and Education**
Next by Date:
**Re: Mathematica and Education**
Previous by thread:
**Re: Plus Behavior Inside a Notation Box?**
Next by thread:
**Compile Fourier (2)**
| |