Использование функций Bessel в MATLAB
Я пытаюсь перенести все свои функции из книги Excel в MATLAB. У меня проблема с использованием функций bessel в MATLAB. Я просто не получаю те же результаты от MATLAB, что и в Excel.
Например, в excel, если я выполняю
=0.32*BESSELI(0.32,0)/2/BESSELI(0.32,1)
Я получаю 1.012.
- Ошибка при чтении данных из файла csv в MATLAB
- Как сохранить значения переменной структуры в CSV-файл в MATLAB
- Экспорт диаграммы excel как изображение (через автоматизацию)
- fminsearch переписывает в цикле, сохраняя данные
- Как запретить Excel импортировать значения CSV как одиночные большие числа?
Когда я использую тот же подход в MATLAB
0.32*besseli(0.32,0)/2/besseli(0.32,1)
Я просто получаю нуль.
Может ли кто-нибудь помочь мне интегрировать функции bessel в мой сценарий MATLAB, чтобы они предоставляли тот же ответ, что и при использовании в excel?
- Matlab: открывать файлы «вне Matlab» по умолчанию
- Объединение данных из нескольких столбцов
- Matlab: странный файл был создан, когда я цвет ячейки в excel
- Разница в вычислениях Matlab vs Excel в вычислениях
- Цветная верхняя точка / нижняя точка в плоскости искровой линии через MATLAB
- Сортировка переменных после импорта данных Excel в Matlab
- Как отделить данные, написанные в том же столбце?
- Объединение ячеек в Matlab (например, в Excel) для таблицы на основе массива
MATLAB и Excel имеют аргументы функции besseli
в другом порядке.
Следующее выражение (обратите внимание, что порядок аргументов изменился):
0.32*besseli(0, 0.32)/2/besseli(1, 0.32)
будет давать:
> ans = 1.0127
в MATLAB.
Документация показывает формулы и показывает, что если вы используете Z = 0, который у вас есть в вашем первом besseli
, вы должны получить 0, что и вы. Второй призыв к besseli
не должен быть вам нулевым, и это действительно не так:
besseli(0.32,1) ans = 1.0744
Я скопировал следующее из вышеупомянутой документации:
Это показывает, что если ваша nu (эта греческая вещь, которая похожа на av) равна нулю, ваша модифицированная функция Бесселя первого рода при Z = 0 будет фактически равна нулю. На стороне примечания: почему вы вдвойне разделите, а не просто написание
0.32*besseli(0.32,0)*besseli(0.32,1)/2