Am Donnerstag, den 20.10.2011, 14:34 -0500 schrieb Barton Willis:
>
> "Edwin Woollett" <woollett at charter.net> wrote on 10/20/2011 12:39:04
> PM:
>
> > (%i4) float(struve_h(0,100));
> > (%o4) -7.2734918013969798E+23 ***not ok***
>
> Thanks for catching this bug:
>
> (%i26) hypergeometric([1],[3/2,3/2], -10000.0);
> (%o26) 4.391887286825863*10^65
>
> (%i28) hypergeometric([1],[3/2,3/2], -10000.0b0);
> (%o28) -4.0120302702491972103831671317134763299116280927551908191b-4
>
> I'll file a report.
I am the author of the implementation of the Struve functions. I am
sorry about the missing documentation in English. I have written the
documentation in German and for a lot of other special functions I have
extended the documentation, too. Rupert Swarbrick has offered some help
to translate the German documentation into English. The first function
he has translated in English are `abs' and `cabs'. I will add these
functions soon.
This is the German documentation of struve_h:
-- Funktion: struve_h (<v>, <z>)
Die Struve-Funktion H der Ordnung v mit dem Argument z. Siehe
Abramowitz und Stegun, Handbook of Mathematical Functions, Kapitel
12. Die Definition ist
inf
==== k 2 k
z v + 1 \ (- 1) z
H (z) = (-) > ----------------------------------
v 2 / 2 k 3 3
==== 2 gamma(k + -) gamma(v + k + -)
k = 0 2 2
Die Struve-Funktion `struve_h' ist f?r das numerische und
symbolische Rechnen geeignet. Im Unterschied zu den
Bessel-Funktionen ist jedoch die Implementation der Funktion
`struve_h' weniger vollst?ndig.
Maxima berechnet `struve_h' numerisch f?r reelle und komplexe
Gleitkommazahlen als Argumente f?r v und z. Mit der Funktion
`float' oder der Optionsvariablen `numer' kann die numerische
Auswertung erzwungen werden, wenn die Argumente Zahlen sind.
Hat die Optionsvariable `besselexpand' den Wert `true', wird die
Struve-Funktion `struve_h' mit einer halbzahligen Ordnung v als
Sinus- und Kosinusfunktionen entwickelt.
Maxima kennt die Ableitung der Struve-Funktion `struve_h' nach dem
Argument z.
Siehe auch die Struve-Funktion `struve_l'.
Beispiele:
(%i1) struve_h(1, 0.5);
(%o1) .05217374424234107
(%i2) struve_h(1, 0.5+%i);
(%o2) 0.233696520211436 %i - .1522134290663428
(%i3) struve_h(3/2,x), besselexpand: true;
2
2 x sin(x) + 2 cos(x) - x - 2
(%o3) - ------------------------------
3/2
sqrt(2) sqrt(%pi) x
(%i4) diff(struve_h(v, x), x);
v
x
(%o4) (------------------------- - struve_h(v + 1, x)
v 3
sqrt(%pi) 2 gamma(v + -)
2
+ struve_h(v - 1, x))/2
Dieter Kaiser