Як написати серію Taylor на Python

click fraud protection

Ряд Тейлора — це представлення функції за допомогою нескінченної суми. Комп’ютери часто роблять наближення значень тригонометричного, експоненційного чи іншого трансцендентального функція шляхом підсумовування кінцевої кількості членів її ряду Тейлора, і ви можете відтворити цей процес у 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 = .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 саме той процес, який багато комп’ютерів використовують для обчислення значень синуса та інших трансцендентних функцій.

Порада

Зробіть відступ і введіть команду «сум» у другому рядку циклу «for», щоб отримати загальну суму під час виконання коду. Це показує, як кожен наступний член ряду наближає суму до фактичного значення функції.