Hi Nikolay, et al.
You're right, I should have checked Scilab help for Bessel functions
before trying to do my own.
I executed besselj(0,x_array) as well as besselj(1,x_array) ... it seems
that this function works exactly like what I made myself. And the output
is indistinguishable (for the range I'm interested in).
Trying to find the Scilab code for besselj, I see that it's an
uneditable and hard coded. Is there anywhere I can study in detail how
besselj was coded?
Best regards,
Claus
On 24-01-2015 18:01, Nikolay Strelkov wrote:
Dear Claus!
For me it seems that using standard functions is always better, than
writing them from scratch.
So I recommend to use built-in Scilab functions besseli, besselj,
besselk, bessely, besselh
<http://help.scilab.org/docs/5.5.1/en_US/bessel.html>.
With best regards,
maintainer ofMathieu functions toolbox for Scilab
<http://atoms.scilab.org/toolboxes/Mathieu>,
IEEE member, Ph.D.,
Nikolay Strelkov.
2015-01-24 19:53 GMT+03:00 Claus Futtrup <[email protected]
<mailto:[email protected]>>:
Hi
I've made a small script to play around with Bessel functions of
the first kind... but this is very basic and I'm wondering if
there's a smarter way.
Below is the script I made (the function + a small test which
plots the result).
Best regards,
Claus
// bessel_test.sce
function z=Jn(n,x)
// The following power series approximates the nth Bessel
// function of the first kind for each input x
// In acoustics x = 2ka, defines the iput frequency k = omega / c and
size
// of the piston radiator
powerseries = 0;
for m=0:19 // actually it should be infinity, but 10 approximates OK
...
powerseries_m = ((-1)^m / (factorial(m) * factorial(m +
n))) * (x/2)^(2*m);
powerseries = powerseries + powerseries_m; // sum the
powerseries
end
z = ((x/2)^n) .* powerseries;
endfunction
x_array = 0:0.1:9.9; // define 100 points on the x-axis
// with 2ka (x) from 0 to 10, and with m = 0-19,
// this approximation is reasonably good for 2ka< 10
z_0_array = Jn(0,x_array); // Calculate J0
z_1_array = Jn(1,x_array); // Calculate J1
scf();
a = gca();
plot(x_array,z_0_array,'-b');
plot(x_array,z_1_array,'-r');
xtitle("Bessel functions","x (2ka)","output (z)");
legend("J0","J1");
_______________________________________________
users mailing list
[email protected] <mailto:[email protected]>
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users