Maple

Dec 20, 2014 12:32

Maple, популярная, но очень отвратительная система математических вычислений, легко считает интеграл int(ln(cos(4.+ 0.5*z)),z = 2...3.) (численно), но наотрез отказывается считать int(ln(cos(3.+ 0.5*z)),z = 2. .. 3.). При этом неопределенный интеграл она охотно пишет через дилогарифм (а значения дилогарифма умеет считать!) Я в ступоре. Это что, ( Read more... )

Leave a comment

Comments 36

rus4 December 20 2014, 09:43:26 UTC
Надо указать, какое имеется в виду значение логармфма у отрицательных чисел.

Reply

potap December 20 2014, 12:25:49 UTC
Хелп говорит, что это значение всегда однозначно определено:
For complex-valued expressions x, ln(x) = ln(abs(x))+I*argument(x), where -Pi

Reply

potap December 21 2014, 02:30:02 UTC
Кстати, выражение ln(-1.) без лишних разговоров оценивается мэйплом как 0.+3.141592654*I. А почему под знаком интеграла этого не происходит? Налицо программистская безграмотность.

Reply


roman_rogalyov December 20 2014, 09:48:16 UTC
В первом случае аргумент логарифма положительный, во втором - отрицательный.

Reply

potap December 20 2014, 12:27:16 UTC
Ну и что?
Мейпл-хелп утверждает, что значение логарифма всегда однозначно определено:
For complex-valued expressions x, ln(x) = ln(abs(x))+I*argument(x), where -Pi

Reply

roman_rogalyov December 20 2014, 12:46:48 UTC
Возможно, мэйпл сбоит при изготовлении комплекснозначного выражения из поданного ему как бы вещественного.

Reply

potap December 20 2014, 12:51:01 UTC
Ну я на это и намекал, когда писал слово "тупость" (позднее исправленное на "небрежность"). Неужели за 20+ лет нельзя было такую тривиальную вещь отладить и выправить?

Reply


orleanz December 20 2014, 10:51:18 UTC
Привычка видеть всюду где можно тупость программистов сыграла с вами злую шутку, судя по комментам выше.

Поверьте, программисты вовсе не тупее чем население в среднем.

Reply

potap December 20 2014, 12:28:08 UTC
Виноват. Я хотел сказать не тупость, а небрежность.

Reply

potap December 20 2014, 12:51:49 UTC
Кстати, приглашаю почитать мои ответы на упомянутые комменты.

Reply

potap December 20 2014, 13:21:58 UTC
И, кстати, я не всех программистов имел в виду, а только тех, кто пишет Maple.

Reply


pphantom December 20 2014, 13:55:24 UTC
Это не баг, это фича. :) Считается, что без явного указания на необходимость комплекснозначного расширения делать его автоматически не надо (и, пожалуй, для многих пользователей это действительно должно быть удобно).

У Maxima, например, это организовано иначе - расширение, если оно нужно, происходит всегда, если только не задан явный запрет. Соответственно, она выписывает оба определенных интеграла.

Reply

orleanz December 20 2014, 14:36:36 UTC
Но неужели нигде не появляется warning , обьясняющий почему операция не может быть выполнена? Если не появляется, то это явный косяк в плане usability

Reply

pphantom December 20 2014, 14:41:16 UTC
Насколько я помню Maple, нет. Но я бы не сказал, что это косяк: правило выглядит вполне естественным и для многих приложений это поведение наиболее удобно.

Reply

potap December 21 2014, 01:07:57 UTC
Косяк, да. Я вспомнил, что в таких случаях надо прибавлять 0.*I, чтобы величина воспринималась как комплексная. Наверное, это где-то у них описано в RTFM, но разумно было бы такую подсказку выдавать всякий раз, когда ответ выдается как задержанный.

Reply


aleatorius December 20 2014, 14:18:36 UTC
а не пробовали кстати такой софт
http://en.wikipedia.org/wiki/Sage_%28mathematics_software%29

Reply

pappadeux December 20 2014, 19:50:10 UTC
так там внутре максима

Reply

potap December 21 2014, 01:19:54 UTC
Што максима. Там даже GAP и PARI зашиты целиком фабрично, а подключить можно вообще что угодно, хоть SnapPy.

Reply

potap December 21 2014, 01:13:05 UTC
Разумеется, пробовал: он у меня тут стоит на походном нетбуке. Но я им пользуюсь для более продвинутых вычислений, ну там найти список примитивных групп данной степени, определить тип кватернионной алгебры или число классов идеалов числового поля. А тут у меня был старый готовый скрипт на Maple, и я к нему приписал еще несколько строк для подсчета объемов гиперболических тетраэдров...

Reply


Leave a comment

Up