Неинтегральный показатель расширения Тейлора с использованием шалфея

Это моя функция

var('h,r')
f=r^2*arccos((r-h)/r)-(r-h)*sqrt(2*r*h-h^2)

taylor(f,h,0,3)

Результат:

-1/5*sqrt(2)*h^(5/2)/sqrt(r) + 4/3*sqrt(2)*h^(3/2)*sqrt(r)

Я ожидал выражения в форме топора ^3+bx^2+cx+d, но я получил 5/2 и 3/2 в качестве показателей степени для h. Это почему?

2 ответа

Решение

Это по сути напрямую с использованием Maxima, так

(%i11) display2d: false;

(%o11) false
(%i12) f:r^2*acos((r-h)/r)-(r-h)*sqrt(2*r*h-h^2);

(%o12) r^2*acos((r-h)/r)-(r-h)*sqrt(2*h*r-h^2)
(%i13) taylor(f,h,0,3);

(%o13) 4*sqrt(r)*sqrt(2)*h^(3/2)/3-sqrt(r)*sqrt(2)*h^(5/2)/(5*r)

Расширение вокруг других точек дает то, что мы ожидаем, так что я предполагаю, что это какая-то ошибка (или недокументированная особенность) в Maxima.

(%i22) taylor(sqrt(x),x,0,5);

(%o22) +sqrt(x)
(%i23) powerseries(sqrt(x),x,0);

(%o23) sqrt(x)

Может, им нравится серия Puiseux? Я сообщил об этом на https://sourceforge.net/p/maxima/bugs/2850/

Изменить: Конечно, есть проблема, что функция квадратного корня не особенно хорошо себя ведет в нуле! Но все же можно ожидать чего-то другого, я думаю.

Проблема, кажется, состоит из двух частей.

  1. Программа в Максима является более общей, чем может подразумевать название (Тейлор). Фактически он возвращает другие виды рядов, когда ряд Тейлора не существует. Это включает ряды Лорана (отрицательные показатели) и нецелые степени. Попробуйте, например, Тейлор (sqrt(1/sin(x)),x,0,5).

Это можно исправить, изменив имя команды на (скажем) series(). Хотя может возникнуть проблема с именами, потому что в мире существуют другие виды серий, и вы, возможно, захотите (скажем) какой-нибудь асимптотический ряд.

  1. Оригинальный постер и некоторые комментарии, кажется, предполагают, что Максима должен следовать строгой дисциплине выполнения только и именно того, что определено характером команды. И если система не может сделать то, что делает команда, она должна выдать сообщение об ошибке. Это не совсем то, что делает Максима. Для очень простого примера, если вы наберете f(3), а f не определено, некоторые системы могут сказать "ошибка, f не определено". Maxima возвращает f(3), потому что в данных обстоятельствах f (3) является разумным результатом, который может позволить вам продолжить. В качестве второго примера, интеграция некоторой формы, которую Maxima не знает, как интегрировать результаты в формулу с интегральным знаком. Не ошибка "не могу интегрировать...".

Общий комментарий: если вы используете Sage для доступа только к средствам в Maxima, вам может быть удобно просто использовать Maxima, систему компьютерной алгебры с собственным пользовательским интерфейсом wxmaxima, графикой и т.д.

Другие вопросы по тегам