Как написать серию Тейлора на Python

click fraud protection

Ряд Тейлора - это представление функции с помощью бесконечной суммы. Компьютеры часто приближают значения тригонометрических, экспоненциальных или других трансцендентных величин. функции, суммируя конечное число членов ее ряда Тейлора, и вы можете воссоздать этот процесс в Python. Члены суммы основаны на последовательных производных функции, поэтому вам нужно будет определить шаблон в значениях этих производных, чтобы написать формулу для каждого члена ряда. Затем используйте цикл для накопления суммы, контролируя точность вашего приближения с помощью количества итераций цикла.

Шаг 1

Проконсультируйтесь с определением ряда Тейлора, чтобы понять, как можно вычислить каждый член. Каждый член ряда индексируется, обычно «n», и его значение связано с n-й производной представляемой функции. Для простоты используйте 0 вместо значения «а» с первой попытки. Эта специальная версия серии Тейлора называется серией Маклорена. Попробуйте использовать синусоидальную функцию, поскольку ее последовательные производные легко определить.

Видео дня

Шаг 2

Запишите несколько значений n-й производной синусоидальной функции с оценкой 0. Если n равно 0, значение равно 0. Если n равно 1, значение равно 1. Если n равно 2, значение равно 0. Если n равно 3, значение равно -1. Отсюда шаблон повторяется, поэтому не обращайте внимания на каждый член ряда Тейлора с четным индексом, поскольку он умножается на 0. Формула для каждого члена результирующего ряда:

(-1) ^ п / (2n + 1)! * Х ^ (2n + 1)

«2n + 1» используется вместо «n» для повторной индексации ряда, эффективно отбрасывая термины с четным индексом без изменения самого индекса. Фактор (-1) ^ n учитывает чередование положительных и отрицательных последовательных членов. Эта предварительная математическая работа может показаться излишней, но код Python будет намного проще написать и повторно использовать в других сериях Тейлора, если индекс всегда начинается с 0 и увеличивается с шагом 1.

Шаг 3

Откройте интерпретатор Python. Начните с ввода следующих команд, чтобы определить несколько переменных:

сумма = 0 х = 0,5236

Переменная «сумма» будет использоваться для накопления суммы ряда Тейлора при вычислении каждого члена. Переменная «x» - это угол (в радианах), для которого вы хотите аппроксимировать синусоидальную функцию. Установите то, что вам нравится.

Шаг 4

Импортируйте модуль «math» с помощью следующей команды, чтобы у вас был доступ к функциям «pow» и «factorial»:

импортная математика

Шаг 5

Запустите цикл for, задав количество итераций с помощью функции range:

для n в диапазоне (4):

Это заставит индексную переменную n начать с нуля и считать до 4. Даже такое небольшое количество итераций даст удивительно точный результат. Цикл не выполняется немедленно и не начнется, пока вы не укажете весь блок кода для итерации.

ШАГ 6

Введите следующую команду, чтобы добавить значение каждого последующего термина к «сумме»:

сумма + = math.pow (-1, n) /math.factorial (2 * n + 1) * math.pow (x, 2 * n + 1)

Обратите внимание на то, что команда имеет отступ с табуляцией, что указывает Python, что она является частью цикла for. Также обратите внимание, как "pow" и "factorial" используются вместо "^" и "!" обозначение. Формула справа от оператора присваивания «+ =» идентична формуле на шаге 2, но написана с использованием синтаксиса Python.

Шаг 7

Нажмите «Enter», чтобы добавить пустую строку. Для Python это означает завершение цикла for, поэтому вычисление выполняется. Введите команду «сумма», чтобы увидеть результат. Если вы использовали значение x, указанное в шаге 3, результат будет очень близок к 0,5, синусу числа пи / 6. Попробуйте снова выполнить процесс для разных значений x и для разного количества итераций цикла, сравнивая свои результаты с функцией «math.sin (x)». Вы реализовали в Python тот самый процесс, который используют многие компьютеры для вычисления значений синуса и других трансцендентных функций.

Подсказка

Сделайте отступ и введите команду «sum» во второй строке цикла «for», чтобы получить промежуточную сумму суммы по мере выполнения кода. Это показывает, как каждый последующий член ряда приближает сумму к фактическому значению функции.