#313 gradef for bessel functions

closed
nobody
None
5
2003-05-25
2003-05-12
No

Consider

(C1) display2d : false;
Evaluation took 0.00 seconds (0.00 elapsed)
(D1) FALSE
(C2) diff(bessel_j(x,x),x);
Evaluation took 0.00 seconds (0.00 elapsed)
(D2) 'DIFF(BESSEL_J[x](x),x,1)-BESSEL_J[x](x)
+BESSEL_J[x-1](x)

The derivative in the first term of (d2) is should
be with respect to the order of the bessel function --
instead it's a _total_ derivative. A good solution
isn't easy; in orthopoly, I handle this problem by
signaling an error. Thus (from orthopoly)

;; When a user requests the derivative of an a function in
this package
;; with respect to the order or some other parameter,
return a form
;; ((unk) input from user). We "simplify" this form by
printing an error.

(defprop unk simp-unk operators)

(defun simp-unk (x y z)
(declare (ignore y z))
(merror "Maxima doesn't know the derivative of ~:M
with respect the ~:M argument" (nth 2 x) (nth 1 x)))

(putprop '$legendre_p
'((n x)
((unk) "$first" "$legendre_p")
((mtimes)
((mplus)
((mtimes) n (($legendre_p) ((mplus) -1 n)
x))
((mtimes) -1 n (($legendre_p) n x) x))
((mexpt) ((mplus) 1 ((mtimes) -1 ((mexpt)
x 2))) -1)))
'grad)

(C3) build_info();

Maxima version: 5.9.0
Maxima build date: 19:10 2/9/2003
host type: i686-pc-mingw32
lisp-implementation-type: Kyoto Common Lisp
lisp-implementation-version: GCL-2-5.0

Evaluation took 0.00 seconds (0.00 elapsed)
(D3)
(C4)

Barton

Discussion

  • Raymond Toy

    Raymond Toy - 2003-05-25
    • status: open --> closed
     
  • Raymond Toy

    Raymond Toy - 2003-05-25

    Logged In: YES
    user_id=28849

    Derivative with respect to order added for Bessel J. It's a
    bit messy.

     

Log in to post a comment.