Как написать ряд Тейлора в Python
Ряд Тейлора — это представление функции с использованием бесконечной суммы. Компьютеры часто выполняют аппроксимацию значений тригонометрической, экспоненциальной или другой трансцендентной функции путем суммирования конечного числа членов ее ряда Тейлора, и вы можете воссоздать этот процесс в Python. Члены суммы основаны на последовательных производных функции, поэтому вам нужно определить закономерность в значениях этих производных, чтобы написать формулу для каждого члена ряда. Затем используйте цикл для накопления суммы, контролируя точность вашего приближения количеством итераций цикла.
Шаг 1
Обратитесь к определению ряда Тейлора, чтобы понять, как можно вычислить каждый член. Каждый член ряда индексируется, как правило, «n», и его значение связано с n-й производной представляемой функции. Для простоты используйте 0 вместо значения «a» при первой попытке. Эта специальная версия серии Тейлора называется серией Маклорена. Попробуйте функцию синуса, так как ее последовательные производные легко определить.
Шаг 2
Запишите несколько значений n-й производной функции синуса, оцененной как 0. Если n равно 0, значение равно 0. Если n равно 1, значение равно 1. Если n равно 2, значение равно 0. Если n равно 3 , значение равно -1. Отсюда шаблон повторяется, поэтому не принимайте во внимание каждый член ряда Тейлора с четным индексом, поскольку он умножается на 0. Формула для каждого члена результирующего ряда:
(-1)^n/(2n+1)!*x^(2n+1)
«2n+1» используется вместо «n» для переиндексации ряда, эффективно отбрасывая члены с четным индексом без изменения самого индекса. Фактор (-1)^n учитывает чередование положительных и отрицательных последовательных членов. Эта предварительная математическая работа может показаться излишней, но код Python будет намного проще писать и повторно использовать в других сериях Тейлора, если индекс всегда начинается с 0 и увеличивается с шагом 1.
Шаг 3
Откройте интерпретатор Python. Начните с ввода следующих команд для определения нескольких переменных:
сумма =0 x =0,5236
Переменная «сумма» будет использоваться для накопления суммы ряда Тейлора при вычислении каждого члена. Переменная «x» — это угол (в радианах), для которого вы хотите аппроксимировать синусоидальную функцию. Установите его на свое усмотрение.
Шаг 4
Импортируйте модуль «math» с помощью следующей команды, чтобы у вас был доступ к функциям «pow» и «factorial»:
импортировать математику
Шаг 5
Запустите цикл for, задав количество итераций с помощью функции range:
для n в диапазоне (4):
Это приведет к тому, что индексная переменная n будет начинаться с нуля и считать до 4. Даже это небольшое количество итераций даст удивительно точный результат. Цикл не выполняется немедленно и не начнется, пока вы не укажете весь блок кода для повторения.
Шаг 6
Введите следующую команду, чтобы добавить значение каждого последующего термина к «сумме:»
sum += 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 тот самый процесс, который многие компьютеры используют для вычисления значений синуса и других трансцендентных функций.
Совет
Сделайте отступ и введите команду «сумма» во второй строке цикла «для», чтобы получить промежуточную сумму суммы по мере выполнения кода. Это показывает, как каждый последующий член ряда приближает сумму к фактическому значению функции.