Як написати серію Тейлора з Python

Автор: Marcus Baldwin
Дата Створення: 15 Червень 2021
Дата Оновлення: 20 Листопад 2024
Anonim
Матан за час. Шпаргалка для первокурсника. Высшая математика
Відеоролик: Матан за час. Шпаргалка для первокурсника. Высшая математика

Зміст

Ряд Тейлора є поданням функції за допомогою нескінченної суми. Комп'ютери загалом наближають значення тригонометричної, експоненціальної або іншої трансцендентної функції за допомогою кінцевого числа термінів у відповідному ряду Тейлора, і ви можете відтворити цей процес у Python. Умови суми базуються на послідовних похідних функції, і тому необхідно визначити шаблон у їх значеннях, щоб записати формулу для кожного терміна ряду. Тоді ви будете використовувати цикл для накопичення суми, контролюючи точність вашого наближення з числом ітерацій.


Інструкції

Підхід до серії Тейлора в Python (Hemera Technologies / AbleStock.com / Getty Images)
  1. Зверніться до визначення ряду Тейлора, щоб зрозуміти, як можна розрахувати кожен термін. Кожен індексується, як правило, з "n", і його значення відноситься до похідної "n" порядку функції, яка буде представлена. Для простоти використовуйте 0 для значення "a" у вашій першій спробі. Ця спеціальна версія серії Тейлора називається "серія МакЛауріна". Використовуйте функцію "синус", як легко визначити послідовні похідні.

  2. Напишіть кілька значень похідної "n" функції синуса, оціненої в 0. Якщо "n" дорівнює 0, значення буде 0. При n = 1 значення буде 1. У випадку n = 2, значення буде 0. Коли n = 3, значення буде -1. Шаблон повторюється звідси, так що ви можете усунути всі парні терміни в серії Тейлора, оскільки воно буде помножено на 0. Формула для кожного терміна в результуючій серії буде:


    (1n) 2n + (2n + 1)

    Якщо "2n + 1" використовується замість "n" для переіндексації серії, ефективно виключається навіть індексний термін без зміни самих індексів. Коефіцієнт "(-1) ^ n" дозволяє змінювати знак послідовних термінів. Цей урок математики може здатися дивним, але код Python буде набагато простішим для запису та повторного використання в інших серіях, якщо індекс завжди починається з 0 і збільшується на 1.

  3. Відкрийте інтерпретатор Python. Почніть із введення наступних команд для визначення змінних:

    сума = 0x = .5236

    Змінна суми буде використана для накопичення суми ряду Тейлора з кожною ітерацією обчислення терміну. Змінна "x" - кут (у радіанах), до якого потрібно наблизити функцію синуса. Якщо потрібно, встановіть інше значення.

  4. Імпортуйте модуль "math", використовуючи команду нижче, щоб отримати доступ до "pow" (потужності) і "факторіальних" (факторіальних) функцій:


    імпортувати математику

  5. Відкрийте цикл "за", встановивши кількість взаємодій з функцією "діапазон":

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

    Це призведе до того, що змінна індексу n почнеться з 0 і буде збільшена до 4. Це зменшення кількості ітерацій призведе до дивно точного результату. Цикл не буде виконуватися негайно і не почнеться, поки ви не вкажете блок коду для ітерації.

  6. Введіть таку команду, щоб накопичити значення кожного наступного терміну до змінної "sum":

    sum + = math.pow (-1, n) /math.factorial (2n + 1)math.pow (x, 2 * n + 1)

    Команда повинна мати пробіл перед нею, щоб вказати Python, що вона є частиною циклу "за". Зауважте також, що замість позначення "^" і "!" Використовуються функції "pow" і "factorial". Формула праворуч від оператора присвоювання "+ =" ідентична формулі 2, але написана з синтаксисом Python.

  7. Натисніть "Enter", щоб додати порожній рядок. Python буде інтерпретувати це як кінець циклу "за" і виконувати обчислення. Введіть команду "сума", щоб виявити результат. Для значення "x", наведеного на кроці 3, результат буде дуже близьким до .5, значення синуса pi / 6. Повторіть спробу з різними значеннями для "x" і для різної кількості ітерацій циклу та порівняйте результати з функцією "math.sin (x)". Ви тільки що реалізували в Python той самий процес, який використовують багато комп'ютерів для обчислення значень синусоїдальних та інших трансцендентних функцій.

Як

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