Может ли TI-84 Basic обрабатывать производные n-го порядка?

Я пытаюсь создать программу, которая будет оценивать ряд Тейлора (описанный ниже, если вы не знаете) в n-м порядке. Однако для этого мне нужно вычислить функцию (которую я держу в Y1) и ее n-ю производную. Я попытался использовать nDeriv и сохранить его как строку в Y2, Y3 и т. д., но TI-84 не позволяет мне складывать более двух из них одновременно. У кого-нибудь есть способ обойти это?

Серия Тейлора

        O  f^(n)(a)
f(x) ≈  Σ (-------- (x-C)^n)
       n=0    n!

где O — заданный порядок ряда (более высокие значения дают более точный результат), f^(n)(a) означает «n-ю производную функции f при значении a», а C — заданная константа для оценки


person Ky Leggiero    schedule 22.07.2013    source источник


Ответы (1)


Отказ от ответственности: у меня больше нет калькулятора TI, и это в основном основано на экспериментах, которые я провел примерно 7 лет назад, когда столкнулся с похожей проблемой. Математика в ответе должна быть правильной, но я могу ошибаться в некоторых мелочах, характерных для калькулятора.

Во-первых, я думаю, что должен исправить вашу математику. Определение ряда Тейлора функции f(x) в точке x=a просто

        ∞  f^(n)(a)
f(x) ≈  Σ (-------- (x-a)^n)
       n=0    n!

Нигде не задействован C (вы, возможно, подумали об теореме Тейлора о полиномиальном напоминании, которая другое дело), ​​и сумма ведется по всем неотрицательным целым числам n. Конечно, нет никакой надежды вычислить такой бесконечный ряд на TI-84, но мы можем усечь ряд, получив полином Тейлора N-го порядка:

        O  f^(n)(a)
f(x) ≈  Σ (-------- (x-a)^n)
       n=0    n!

Это то, что вы действительно можете надеяться вычислить численно, поскольку сумма конечна. Конечно, все, что вам нужно сделать, это вычислить n-е производное для n=0,1,...,O, так что с этого момента я сосредоточусь на этом. Я думаю, это то, что вы все равно хотели, но терминология «ряд Тейлора» всегда указывает на бесконечный ряд, а полином Тейлора используется, когда сумма конечна.

nDeriv не может быть вложен произвольно. Согласно этому сайту документации, он может быть вложен на один уровень в глубину, но я помню, что на моей более ранней модели даже в некоторых случаях это было запрещено. Однако nDeriv в любом случае вычисляет производную только численно, и используется следующая формула: nDeriv(f(t),t,x[,h])) = (f(x+h)-f(x-h))/(2h), где h=0,001 — значение по умолчанию. Вы можете рекурсивно применить это символически, чтобы получить выражения для высших производных:

f^(2)(x)=(f(x+2h)-2f(x)+f(x-2h))/(2h)^2
f^(3)(x)=(f(x+3h)-3f(x+h)+3f(x-h)-f(x-3h))/(2h)^3

и вообще:

            n   n    (-1)^m f(x+(n-2m)h)
f^(n)(x) =  Σ (   ) ---------------------
           m=0  m          (2h)^n

Где странно отформатированная вещь внутри суммы - это биномиальный коэффициент (n nCr m на TI-84). Это может быть вычислено в TI basic и эквивалентно конечному результату, который вы получили бы, если бы калькулятор позволял вам вкладывать nDeriv произвольно (по крайней мере, до тех пор, пока не станут важными эффекты машинной точности).

Вы, вероятно, захотите поиграть с h, пока не найдете хорошее значение (и для производных разных порядков вы можете использовать разные значения h). К сожалению, численное дифференцирование, естественно, трудно сделать, особенно с устройствами с низкой точностью, такими как калькуляторы, потому что вы вычитаете два очень близких числа, чтобы получить очень маленькое число, и делите на другое очень маленькое число. Для производных более высокого порядка все становится только хуже. Я помню, что для некоторых простых функций я мог получить 4 или 5 производных, прежде чем получить что-либо осмысленное было просто невозможно, потому что калькулятору просто не хватало точности.

Между прочим, если вы обнаружите, что приведенный выше метод недостаточно точен, есть масса литературы по численному дифференцированию с лучшими методами, чем описанный выше. Хорошим местом для начала будет статья Википедии о методах конечных разностей, в которой приведенная выше формула (не особенно хороший) пример. Несмотря ни на что, вы столкнетесь с проблемами машинной точности, но использование более сложного метода по крайней мере повысит точность до тех пор, пока эффекты машинной точности не станут важными.

person Logan M    schedule 27.07.2013