Еще раз про функции Бесселя
От: Jenyay http://jenyay.net
Дата: 06.06.05 16:13
Оценка:
Привет.

А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Софт, исходники и фото
Re: Еще раз про функции Бесселя
От: McSeem2 США http://www.antigrain.com
Дата: 06.06.05 16:57
Оценка:
Здравствуйте, Jenyay, Вы писали:

J>А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.


Есть еще вот:
http://www.ma.umist.ac.uk/gb/UA392/libs/392.html
http://www.ma.umist.ac.uk/gb/UA392/code/392math.html
Не знаю, поможет ли, но там тоже упоминается товарищ Бессель.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[2]: Еще раз про функции Бесселя
От: Jenyay http://jenyay.net
Дата: 06.06.05 17:04
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>http://www.ma.umist.ac.uk/gb/UA392/libs/392.html

MS>http://www.ma.umist.ac.uk/gb/UA392/code/392math.html

Чего то там исходник не качается.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Софт, исходники и фото
Re[3]: Еще раз про функции Бесселя
От: McSeem2 США http://www.antigrain.com
Дата: 06.06.05 17:33
Оценка:
Здравствуйте, Jenyay, Вы писали:
MS>>http://www.ma.umist.ac.uk/gb/UA392/libs/392.html
MS>>http://www.ma.umist.ac.uk/gb/UA392/code/392math.html

J>Чего то там исходник не качается.

У меня тоже не открывается. Но 392math.html — это собственно весь исходник и есть. Copy/Paste.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Еще раз про функции Бесселя
От: What Беларусь  
Дата: 06.06.05 18:03
Оценка:
Здравствуйте, Jenyay, Вы писали:

J>Привет.


J>А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.


Можно посмотреть Numerical Recipes, в частности, эту главу.

Кстати, есть такие функции в Microsoft CRT — _j0, _j1, _jn, можно посмотреть их исходники, если они есть.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[2]: Еще раз про функции Бесселя
От: Jenyay http://jenyay.net
Дата: 06.06.05 18:29
Оценка:
Здравствуйте, What, Вы писали:

W>Можно посмотреть Numerical Recipes, в частности, эту главу.


Вот как раз ее сейчас и хочу распечатать

W>Кстати, есть такие функции в Microsoft CRT — _j0, _j1, _jn, можно посмотреть их исходники, если они есть.


А это мысль
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Софт, исходники и фото
Re[2]: Еще раз про функции Бесселя
От: Jenyay http://jenyay.net
Дата: 06.06.05 19:25
Оценка:
Здравствуйте, What, Вы писали:

W>Можно посмотреть Numerical Recipes, в частности, эту главу.


Оказывается исходник из моего первого сообщения взят из этой главы как раз. Теперь надо будет проверить точность, но свиду (по графику) должно хватить.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Софт, исходники и фото
Re[3]: Еще раз про функции Бесселя
От: McSeem2 США http://www.antigrain.com
Дата: 06.06.05 19:54
Оценка:
Здравствуйте, Jenyay, Вы писали:

W>>Кстати, есть такие функции в Microsoft CRT — _j0, _j1, _jn, можно посмотреть их исходники, если они есть.


J>А это мысль


Однако, что-то странное... Не находит никаких исходников, ним в VC6, ни в VC7. Хотя указанные функции мало того, что есть, так они еще и работают!
То есть, они присутствуют в бинарном виде в TRAN.LIB. Что-то сильно секретное?

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\
  MATH.H                              22399    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\
  _SAMPLD_.DEF                         8811    06/17/98   01:00
  _SAMPLE_.DEF                         8789    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\Dll
  TRAN.LIB                            84120    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\Mt_
  TRAN.LIB                            82316    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\St_
  TRAN.LIB                            82536    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\XDl
  TRAN.LIB                            90312    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\XMt
  TRAN.LIB                            88578    06/17/98   01:00

C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\Intel\XSt
  TRAN.LIB                            88802    06/17/98   01:00
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Еще раз про функции Бесселя
От: Аноним  
Дата: 07.06.05 11:23
Оценка:
Здравствуйте, Jenyay, Вы писали:

J>Привет.


J>А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.


Вот здесь Бессель маленько другой чем у тебя http://alglib.sources.ru/specialfunctions/bessel0.php
Re[2]: Еще раз про функции Бесселя
От: McSeem2 США http://www.antigrain.com
Дата: 07.06.05 13:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот здесь Бессель маленько другой чем у тебя http://alglib.sources.ru/specialfunctions/bessel0.php


А где там j1, jn, y1, yn? Они-то как правило и нужны...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Еще раз про функции Бесселя
От: krasin Россия  
Дата: 08.06.05 19:45
Оценка:
J>А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.

Есть еще метод вычисления с помошью интегрального представления. Но он актуален только, если надо считать Бессель от комплексного аргумента. В случае действительного аргумента, лучше всего — аппроксимация с помощью полиномов Чебышёва.

Из готового — GNU Scientific Library.
Re[2]: Еще раз про функции Бесселя
От: Jenyay http://jenyay.net
Дата: 08.06.05 19:50
Оценка:
Здравствуйте, krasin, Вы писали:

K>Есть еще метод вычисления с помошью интегрального представления. Но он актуален только, если надо считать Бессель от комплексного аргумента. В случае действительного аргумента, лучше всего — аппроксимация с помощью полиномов Чебышёва.


А тут есть пределы в которых эта опроксимация применима? Пока оставил ее, вроде свиду похоже на то что надо, но я еще не знаю пределы в которых будет она вычисляться в реале.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Софт, исходники и фото
Re[2]: Еще раз про функции Бесселя
От: ansi  
Дата: 09.06.05 12:01
Оценка:
Здравствуйте, krasin, Вы писали:

J>>А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.


K>Есть еще метод вычисления с помошью интегрального представления. Но он актуален только, если надо считать Бессель от комплексного аргумента.

Это не то представление, которое сильно осциллирует при большом модуле z?
Мне вообще-то комплексный Ханкель нужен... Есть идеи?
new RSDN@Home(1.1.4, 303) << new Message();d0std::head::ear << "Iron Maiden — Brave New World";
Re[3]: Еще раз про функции Бесселя
От: krasin Россия  
Дата: 09.06.05 20:27
Оценка: 2 (1)
A>Это не то представление, которое сильно осциллирует при большом модуле z?

Да, я имел ввиду разложение Пуассона. Оно вполне нормальное, особенно если интегрировать не прямоугольником
У меня совпадало до 10 знака с Maple-ом при модуле аргумента меньше 100 (мне в задаче модуль больше, чем 100 и не нужен был, так что даже не проверял, что там дальше). Число узлов интегрирование было в районе 200-300.

A>Мне вообще-то комплексный Ханкель нужен... Есть идеи?


Проверенных идей нет.
Re: Еще раз про функции Бесселя
От: Аноним  
Дата: 10.06.05 00:12
Оценка: 3 (1)
Вдогонку к имеющемуся — смотрите соответствующий раздел статей на www.ams.org, особенно если есть необходимость в высокой точности. В частности, имеется довольно удобное для вычислений представление отношения двух функций Бесселя последовательных номеров в виде цепной дроби (прикол — несколько формул этого типа я когда-то вывел сам...).
Re[4]: Еще раз про функции Бесселя
От: ansi  
Дата: 10.06.05 09:56
Оценка:
Здравствуйте, krasin, Вы писали:

A>>Это не то представление, которое сильно осциллирует при большом модуле z?


K>Да, я имел ввиду разложение Пуассона. Оно вполне нормальное, особенно если интегрировать не прямоугольником

K>У меня совпадало до 10 знака с Maple-ом при модуле аргумента меньше 100 (мне в задаче модуль больше, чем 100 и не нужен был, так что даже не проверял, что там дальше). Число узлов интегрирование было в районе 200-300.

Я проверял на методе Симпсона. Число узлов — 60-70. Плохо дело — мне надо довольно интенсивно считать эту функцию. Можно сказать — это основной тормоз расчетов. Да и не подходят они в общем, потому как они растут с ростом модуля (мне нужна только первая четверть), а Ханкель очень быстро убывает. Короче, вычитать два астрономических числа, чтобы получить очень маленькое известно чем грозит... Хотя, для Ханкеля есть асимптотика в дальней зоне... Но серединку то мне надо как-то считать

A>>Мне вообще-то комплексный Ханкель нужен... Есть идеи?


K>Проверенных идей нет.


Ну ты выкладывай, а проверить не проблема Я единственное знаю выражение через модифицированную функцию Бесселя, но у нее тоже были какие-то проблемы (вроде бы тоже осциллировала).
new RSDN@Home(1.1.4, 303) << new Message(); std::head::ear << "Iron Maiden — Dream Of Mirrors";
Re[5]: Еще раз про функции Бесселя
От: McSeem2 США http://www.antigrain.com
Дата: 10.06.05 13:32
Оценка:
Здравствуйте, ansi, Вы писали:

A>Я проверял на методе Симпсона. Число узлов — 60-70. Плохо дело — мне надо довольно интенсивно считать эту функцию. Можно сказать — это основной тормоз расчетов. Да и не подходят они в общем, потому как они растут с ростом модуля (мне нужна только первая четверть), а Ханкель очень быстро убывает. Короче, вычитать два астрономических числа, чтобы получить очень маленькое известно чем грозит... Хотя, для Ханкеля есть асимптотика в дальней зоне... Но серединку то мне надо как-то считать


А почему бы для этого не использовать табулирование? Именно для "серединки". Создаем точно вычисленную таблицу, хоть на 10000 значений, а точное значение вычисляем интерполяцией. Можно — простой линейной интерполяцией, можно даже кубическим сплайном — будет не сильно медленней.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: Еще раз про функции Бесселя
От: krasin Россия  
Дата: 11.06.05 04:48
Оценка:
K>>Проверенных идей нет.

A>Ну ты выкладывай, а проверить не проблема Я единственное знаю выражение через модифицированную функцию Бесселя, но у нее тоже были какие-то проблемы (вроде бы тоже осциллировала).


С учетом того, что функция Ханкеля — линейная комбинация функций Бесселя первого и второго рода, проще научиться считать именно функцию Бесселя. Есть подозрение, что функцию Бесселя можно довольно быстро считать, если воспользоваться выражением через гипергеометрическую функцию, но этого пока не проверял.
Re: Еще раз про функции Бесселя
От: peterbes Россия  
Дата: 11.06.05 17:30
Оценка:
Здравствуйте, Jenyay, Вы писали:

J>Привет.


J>А есть ли какие-нибудь еще методы для их вычисления кроме апроксимации полиномом? Или может уже есть готорвые исходники на C#? Пока смотрю в сторону переделки из вот этих исходников.


Есть есть открытая библиотека http://www.gnu.org/software/gsl/gsl.html
Бессель легко переписывается с С на шарп. Если дело срочное, то могу вам сбросить статическую библиотеку
Re[2]: Еще раз про функции Бесселя
От: Jenyay http://jenyay.net
Дата: 11.06.05 17:56
Оценка:
Здравствуйте, peterbes, Вы писали:

P>Есть есть открытая библиотека http://www.gnu.org/software/gsl/gsl.html

P>Бессель легко переписывается с С на шарп. Если дело срочное, то могу вам сбросить статическую библиотеку

Я пока переделал из исходника по той ссылке которую дал в начале. Свиду пока подходит, а там будет видно.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Софт, исходники и фото
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.