Ряд Тейлора - это представление функции с помощью бесконечной суммы. Компьютеры часто приближают значения тригонометрических, экспоненциальных или других трансцендентных величин. функции, суммируя конечное число членов ее ряда Тейлора, и вы можете воссоздать этот процесс в 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», чтобы получить промежуточную сумму суммы по мере выполнения кода. Это показывает, как каждый последующий член ряда приближает сумму к фактическому значению функции.