I wonder how the 42S bypasses this, but one reason is that its precision is only 12 digits, not 34, and that precision is reached with 255 evaluations of JNX, a reasonable amount. To get close to 34 digits precision (which is effectively what you're asking), hundreds of thousands of evaluations need to be made.
To heed the ACC factor, we may add a constant to the integrand and subtract it again after integration:
(I haven't seen the programs in the .raw file, these are my implementations:)
Code: Select all
00 { 23-Byte Prgm }
01▸LBL "JNX" @ integrand COS(N*A - X*SIN(A))
02 RCL "A"
03 RCL× "N"
04 LASTX
05 SIN
06 RCL× "X"
07 -
08 COS
09 1
10 +
11 END
Code: Select all
00 { 48-Byte Prgm }
01▸LBL "BESSEL" @ Bessel function Jn(x) = int(JNX,0,PI)/PI
02 MVAR "N"
03 MVAR "X"
04 MVAR "ACC"
05 CLX
06 STO "LLIM"
07 PI
08 STO "ULIM"
09 PGMINT "JNX"
10 INTEG "A"
11 PI
12 ÷
13 1
14 -
15 END
WIth the constant, it is 1134 times. Granted, the result is only accurate to about 7-8 digits now.
So, I don't think there's anything wrong with either SOLVE or INTEG.
Cheers, Werner