Вычислять экспоненциальную функцию или функцию Бесселя сложнее с вычислительной точки зрения?

Часто желательно получить решение математической задачи в замкнутой форме, то есть в виде выражения, содержащего общепринятые функции, такие как многочлены, рациональные и иррациональные функции, корни, экспоненты и логарифмы. Одно из оправданий, которое я часто слышу, состоит в том, что когда задействованы известные функции, легче визуализировать поведение функции. Другое оправдание состоит в том, что для оценки функции в наборе точек требуется меньше вычислительных ресурсов. Хотя я, безусловно, согласен с первым обоснованием, разумно ли второе обоснование? Например:

  • Требуется ли больше времени для вычисления модифицированной функции Бесселя первого рода и пятого порядка для 10 точек, чем для вычисления экспоненты?

  • Требуется ли больше времени для вычисления экспоненциального интеграла, чем для вычисления экспоненциального?

Моя интуиция такова, что во всех трех случаях формируется разложение в ряд Тейлора вокруг искомой точки, поэтому все сводится к вычислению полинома, какого-то другого полинома или его первообразной.


person ToniAz    schedule 06.02.2018    source источник
comment
Не похоже, что это связано с конкретной проблемой программирования. Попробуйте cs или cstheory или программный стек. / Зависит от реализации, конечно.   -  person user202729    schedule 06.02.2018
comment
@ user202729 А, спасибо за предложение!   -  person ToniAz    schedule 06.02.2018
comment
Не забудьте прочитать их страницу «Как спросить», прежде чем спрашивать. Я не знаком ни с одним из этих сайтов, поэтому не знаю.   -  person user202729    schedule 06.02.2018


Ответы (1)


Одно из оправданий, которое я часто слышу, состоит в том, что когда задействованы известные функции, легче визуализировать поведение функции. Другое оправдание состоит в том, что для оценки функции в наборе точек требуется меньше вычислительных ресурсов.

Вот только если функция "простая", а не закрытая. Вы можете создавать закрытые формы произвольной сложности и требовательности к вычислительным ресурсам.

Я могу представить себе два реальных преимущества решений закрытой формы:

  • Поскольку большинство языков программирования поддерживают sqrt, sin и т.п., решения в закрытой форме легко представить в коде.

  • Если решение имеет закрытую форму, то будет ряд алгебраических шагов, которые вы можете выполнить, чтобы получить решение — алгебраический (или, возможно, тригонометрический) алгоритм решения. Эти алгоритмы также могут содержать только шаги «закрытой формы», поэтому их довольно легко реализовать.

Если вы знаете, что решение вашей проблемы, вероятно, не имеет закрытой формы, вам придется придерживаться совершенно другого подхода к ее решению. Это может быть довольно сложно: вавилоняне смогли решить квадратные уравнения за 2000 лет до нашей эры, и потребовалось еще более 3000 лет, чтобы найти корни многочленов произвольного порядка — с помощью чисел, а не алгебры.

person Nico Schlömer    schedule 15.02.2018