Le 26/01/2015 10:57, Dang, Christophe a écrit :
Hello,

De  Claus Futtrup
Envoyé : samedi 24 janvier 2015 17:53

I've made a small script to play around with Bessel functions of the first kind
[...]
for m=0:19 // ...
powerseries_m = ((-1)^m / (factorial(m) * factorial(m + n))) * (x/2)^(2*m);
powerseries = powerseries + powerseries_m; // sum the powerseries
end
Generally speaking, I think you'd better use the possibilities of vector 
calculation as much as possible, to have a faster calculation.

The lines above could look like the following, assuming x is a column vector:

m = 0:19;

[x_mat, m_mat] = ndgrid(x, m); // rectangular matrices for group evaluation

f = 1 ./(factorial(m) .* factorial(m + n));

f_mat = ndgrid(f, x)';

powerseries = sum((-1).^m_mat.*f_mat.*(x_mat/2).^(2*m_mat), "c");

However, this quite naive implementation is probably not accurate when x and m 
are high,
for f would have some zeros (if m or m+n > 170) leading to zeros in powerseries,
whereas f*(x/2)^(2m) might not be negligible.

The reason why you should follow Nikolay's advice and use built-in functions, 
which usually use strong algorithms.

--
Christophe Dang Ngoc Chan
Mechanical calculation engineer
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error), please 
notify the sender immediately and destroy this e-mail. Any unauthorized 
copying, disclosure or distribution of the material in this e-mail is strictly 
forbidden.
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users
Almost every numerical analysis textbook comprises a chapter on the evaluation of Bessel functions, as for instance Abramowitz ans Stegun, Handbook of mathematical functions, chapters 9,10 (elegant use of recurrence relation)
    Press et al., Numerical recipes, chapter 6 (rational approximations)
Enjoy!
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to