Message Boards Message Boards

[✓] Calculate Bessel Function zeros? (Can PayPal for solution)

GROUPS:

I am working on a drum synthesizer based off the Bessel Function zeros. (The modal frequencies of a circular drum membrane are predicted by the Bessel Function zeros.)

To built it, I have been manually calculating Bessel zeros using Casio's calculator: http://keisan.casio.com/exec/system/1180573472

This is working. However, it is very slow work, as I am calculating each zero one by one, manually.

Bessel equations in Wolfram are incredibly easy by contrast. How they work is summarized here: http://mathworld.wolfram.com/BesselFunctionZeros.html

the Bessel function enter image description here for nonnegative integer values of n and k can be found in the Wolfram Language using the command BesselJZero[n, k].

In an ideal world, I'd like bessel zeros to 6 significant digits for, n = 0...99 and k = 1...100. This would produce a table or list of 10,000 Bessel zeros.

If it is easy, can anyone here maybe do me a huge favor and punch these into your Wolfram Language system to produce a table or list you can share? I would be happy to PayPal you $20 for your effort if so. If it's more work than that, let me know what it would cost.

Otherwise, how would I set up my Windows system to do this? Can I work with Wolfram Language from Windows? I don't have a Raspberry Pi.

I've calculated 1200 of these things manually which as you can imagine has been very tedious. While I'm getting the results I want, I will likely need at least 2000 more to get truly realistic results. I'd hate to spend days and weeks manually working out Wolfram can spit out in 5 minutes!

In an ideal world, I'd like a table like this in Excel or any other workable format:

enter image description here

Very hopeful for any help. Thank you very much.

Mike

POSTED BY: Michael M
Answer
3 months ago

Hello,

Here's a nice pile of $J_n(z)$ zeroes: https://pastebin.com/raw/vepKVF8s

For reference, here's the code that generated it:

With[{count = 100, ord = 99, digits = 6}, 
     Export["bz.dat", 
            Table[NumberForm[N[BesselJZero[n, k]], digits], {k, count}, {n, 0, ord}], "Table",
            Alignment -> Left, "FieldSeparators" -> " ", 
            TableHeadings -> {Range[count], Table[J[n, x], {n, 0, ord}]}]]

Adjust the parameters in the first part of With[] for a bigger table or more digits.


FWIW, you could try generating smaller-scale versions of the table from the free Wolfram Development Platform. Go here, and after it finishes loading, try

With[{count = 50, ord = 20, digits = 8}, 
     TableForm[Table[NumberForm[N[BesselJZero[n, k]], digits], {k, count}, {n, 0, ord}],
               TableAlignments -> {Left, Center}, TableHeadings -> {Range[count], Table[J[n, x], {n, 0, ord}]}]]
POSTED BY: J. M.
Answer
3 months ago

Thanks both of you guys but especially thanks J.M.!!! You are a lifesaver!!! That text file imports beautifully into Excel.

Now I can play with it ...

Can't believe how much time I wasted calculating the first 1200 by hand LOL. Well at least it proved the concept worked....

Now I will see what it sounds like with 5-6x more many modes from all these other Bessel zeros...

If you want the $20, PM or post your e-mail and I'll send it you by PayPal. Otherwise thanks for your good Samaritan deed. You've made my life a lot easier. Cheers.

POSTED BY: Michael M
Answer
3 months ago

Hi,

If you wish to send me a message (Community does not have a PM function), my (encoded) e-mail address is in my profile.

POSTED BY: J. M.
Answer
3 months ago

Here is a less robust method than J.M's but may be simpler to read.

A list with 10000 rows and 3 columns:

data = Flatten[
   Table[
    {n, k, N@BesselJZero[n, k]},
    {n, 0, 99},
    {k, 1, 100}
    ],
   1
   ];

Export that data to an Excel file in your Documents directory

Export[FileNameJoin[{$UserDocumentsDirectory,  "Bessel_Zeros.xls"}], data]

You can download the result here.

POSTED BY: W. Craig Carter
Answer
3 months ago

Group Abstract Group Abstract