Определение серии Тейлора в клене - PullRequest
1 голос
/ 21 ноября 2011

Я пытаюсь определить функцию в Maple, которая определяет ряд Тейлора (без использования команды taylor ()).Я использую определение сигма-нотации, найденное здесь .

По сути, мне нужна функция, которая принимает переменную a, и переменную f, где f - функция a, как видно изэта страница википедии.Для простоты я использовал только переменную a и сам определил функцию.

В рамках этого вопроса давайте предположим, что я хочу, чтобы мой код возвращал ряд Тейлора sqrt(x) about x=16

Пока у меня есть следующий код для суммы:

t:=a->sum((D@@n)(f(a))*(x-a)^n/n!,n=0..4);

Я определил функцию f в предыдущей строке как sqrt (x).

Когда я вызываю функцию, t(16);, Maple возвращает только первый член ряда, 4.Когда я вытесняю переменную для a, я вижу, что Maple принимает производную от a, а не производную от f (a) в каждом члене.Это, конечно, создает нулевые условия и возвращает только 4.

1 Ответ

0 голосов
/ 21 ноября 2011

Синтаксис, который вы хотите использовать для D, здесь (D @@ n) (f) (a) вместо того, что вы имели.

Вы можете заставить оператора принимать другой параметр для обозначения верхней границыиндекс.Если вы не хотите, чтобы Maple попытался выполнить символическое суммирование (сомнительно, для таких конечных сумм и вашего намерения), вам, вероятно, лучше использовать add вместо sum для этого.

restart:
t:=(a,N)->add((D@@n)(f)(a)*(x-a)^n/n!,n=0..N):

f:=sqrt:
Digits:=15:

S:=t(16,4):
eval(S,x=17.0);
                    4.12310552597046
sqrt(17.0);
                    4.12310562561766

S:=t(16,10):
eval(S,x=17.0);
                    4.12310562561768
sqrt(17.0);
                    4.12310562561766
...