Максима дает сумасшедший ответ для интеграции (exp (x ^ 2))

Я пытаюсь научиться пользоваться Максимой. Что-то пошло не так с интеграцией:

(%i) integrate(exp(x^3),x,1,2);
(%o) (gamma_incomplete(1/3,-8)-gamma_incomplete(1/3,-1))/3
(%i) float(%);
(%o) .3333333333333333 (- 715.7985328824436 %i - 413.26647564521807)
(%i) expand(%);
(%o) - 238.59951096081454 %i - 137.75549188173935

Что вы думаете?


person user29831    schedule 20.09.2012    source источник
comment
Этот интеграл должен быть действительным (и положительным).   -  person user29831    schedule 21.09.2012


Ответы (2)


Сравнивая результат Maxima с Wolfram Alpha, похоже, что Maxima предположил, что -x/((-x^3)^(1/3)) = 1. После небольшой отладки я не могу сказать, был ли этот термин изначально в результате, и это упростилось, или если его никогда не было. С учетом этого термина и использованием основной ветви для кубического корня я получаю 275,510983 + (эпсилон)*%i, что согласуется с числовым результатом, а именно quad_qags(exp(x^3), x, 1, 2) = > 275,510983.

Для справки, этот интеграл обрабатывается как «Тип 1a» в maxima/src/sin.lisp, в функции INTEGRATE-EXP-SPECIAL.

person Robert Dodier    schedule 25.09.2012
comment
Глобальный флаг «домен» управляет упрощением кубического корня. Вот что я получаю сейчас, и я считаю, что результат ищет OP: domain:complex; интегрировать (exp (x ^ 3), x, 1, 2); =› ((-1)^(2/3)*gamma_incomplete(1/3,-8)-(-1)^(2/3)*gamma_incomplete(1/3,-1))/3 %, число , расширять; => 275.5109837633115-7.71234927772942E-14*%i (извините за беспорядочный код, я не знаю, как вставить пустую строку в комментарий) - person Robert Dodier; 25.09.2012

Математически я не думаю, что есть что-то принципиально неправильное в сложном ответе на экспоненциальное интегрирование. В общем, если вы интегрируете e ^ (x ^ n), вы столкнетесь со странными функциями, такими как неполная гамма-функция и т. Д., Потому что ответ не выражается в обычных функциях, поэтому у него нет обычного реального аналитического решения.

Однако я думаю, что здесь определенно есть некоторая неточность. Mathematica дает другой ответ, гораздо более близкий к реальному ответу, и поскольку я прошу большей точности, действительная часть, как и следовало ожидать, стремится к нулю.

Если вы хотите численно интегрировать (и похоже, что вы это делаете), вы можете использовать другую функцию. integrate предназначен для аналитической интеграции, поэтому он дал вам формулу, а не число. Поищите в quad_qags и его друзьях действительно умные функции численного интегрирования.

person AndrewC    schedule 21.09.2012
comment
@ user29831 Возможно, некоторая неточность занижает это, и ошибка может быть ближе к истине. Возможно, стоит поднять этот вопрос через список рассылки. - person AndrewC; 23.09.2012