реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Модифицированную функцию Бесселя, чем лучше посчитать?
Pathfinder
сообщение Sep 15 2008, 20:35
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Ищу библиотеку, которая позволяет вычислить модифицированную функцию Бесселя с экспоненциальным масштабным множителем. Пока что использую GSL из GNUWin32, но она не считает функцию с порядком выше 32-го.
Насколько я понял, в Матлабе используется вот эта библиотека: http://www.netlib.org/amos, но она на фортране 05.gif ... боюсь, проблематично её будет с MSVC-шным проектом использовать.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Sep 16 2008, 11:11
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Посмотрите математические библиотеки, идущие в комплекте к Scientific linux. Библиотек несколько, в какой специальные функции не помню. Они добавлены в дистрибутив. Есть в исходных кодах на С. В linux есть транслятор fortran->C, скорее не очень эффективный, но все же.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
=GM=
сообщение Sep 17 2008, 12:58
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Pathfinder @ Sep 15 2008, 19:35) *
...позволяет вычислить модифицированную функцию Бесселя с экспоненциальным масштабным множителем. Пока что использую GSL из GNUWin32, но она не считает функцию с порядком выше 32-го

Можно посчитать нулевой и первый порядок с помощью рядов, потом считаете функцию требуемого порядка с помощью рекурсивной формулы. Вполне прилично получалось до 100 порядка, проверял по таблицам.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Sep 20 2008, 21:17
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



mdmitry
Насколько я понял, в Scientific Linux используется GSL, и как раз её я использую сейчас. Правда приходится пользоваться версией 1.8, поскольку свежие не понял, как под винду собрать...
За наводку про F2C спасибо, нашёл и попробовал. Исходник конечно не фонтан, но лучше чем ничего. Самое неприятное, что в результате сборки бесселя получается dll-ка размером 132КБ, поскольку приходится фортрановский рантайм прилинковывать. При таких размерах она скорее всего не влезет в страницу кэша и будет тормозить.

=GM=
Согласен, решение логичное, и в моём случае удобное, поскольку мне нужно считать I_0, I_n и I_2n для одного аргумента. Но смущает то, что его не используют (как мне показалось) ни в netlib.org/amos ни в GSL. Может при рекурсивном вычислении ошибка накапливается? Там ведь дробно-полиномиальный множитель будет...
А не помните, какая точность получалась в сравнении с таблицами? Мне очень желательно 12 знаков получить.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post
=GM=
сообщение Sep 21 2008, 23:21
Сообщение #5


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Pathfinder @ Sep 20 2008, 20:17) *
=GM=
А не помните, какая точность получалась в сравнении с таблицами? Мне очень желательно 12 знаков получить

Давно было, лет 25 назад, считал на фортране ряды Пуассона, плохо сходящиеся, помню, что точность переменных была удвоенная, то ли 64 бита, то ли 80, с таблицами совпадало до последнего знака.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016