Зміст
Ряд Тейлора є поданням функції за допомогою нескінченної суми. Комп'ютери загалом наближають значення тригонометричної, експоненціальної або іншої трансцендентної функції за допомогою кінцевого числа термінів у відповідному ряду Тейлора, і ви можете відтворити цей процес у Python. Умови суми базуються на послідовних похідних функції, і тому необхідно визначити шаблон у їх значеннях, щоб записати формулу для кожного терміна ряду. Тоді ви будете використовувати цикл для накопичення суми, контролюючи точність вашого наближення з числом ітерацій.
Інструкції
Підхід до серії Тейлора в Python (Hemera Technologies / AbleStock.com / Getty Images)-
Зверніться до визначення ряду Тейлора, щоб зрозуміти, як можна розрахувати кожен термін. Кожен індексується, як правило, з "n", і його значення відноситься до похідної "n" порядку функції, яка буде представлена. Для простоти використовуйте 0 для значення "a" у вашій першій спробі. Ця спеціальна версія серії Тейлора називається "серія МакЛауріна". Використовуйте функцію "синус", як легко визначити послідовні похідні.
-
Напишіть кілька значень похідної "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.
-
Відкрийте інтерпретатор Python. Почніть із введення наступних команд для визначення змінних:
сума = 0x = .5236
Змінна суми буде використана для накопичення суми ряду Тейлора з кожною ітерацією обчислення терміну. Змінна "x" - кут (у радіанах), до якого потрібно наблизити функцію синуса. Якщо потрібно, встановіть інше значення.
-
Імпортуйте модуль "math", використовуючи команду нижче, щоб отримати доступ до "pow" (потужності) і "факторіальних" (факторіальних) функцій:
імпортувати математику
-
Відкрийте цикл "за", встановивши кількість взаємодій з функцією "діапазон":
для n в діапазоні (4):
Це призведе до того, що змінна індексу n почнеться з 0 і буде збільшена до 4. Це зменшення кількості ітерацій призведе до дивно точного результату. Цикл не буде виконуватися негайно і не почнеться, поки ви не вкажете блок коду для ітерації.
-
Введіть таку команду, щоб накопичити значення кожного наступного терміну до змінної "sum":
sum + = math.pow (-1, n) /math.factorial (2n + 1)math.pow (x, 2 * n + 1)
Команда повинна мати пробіл перед нею, щоб вказати Python, що вона є частиною циклу "за". Зауважте також, що замість позначення "^" і "!" Використовуються функції "pow" і "factorial". Формула праворуч від оператора присвоювання "+ =" ідентична формулі 2, але написана з синтаксисом Python.
-
Натисніть "Enter", щоб додати порожній рядок. Python буде інтерпретувати це як кінець циклу "за" і виконувати обчислення. Введіть команду "сума", щоб виявити результат. Для значення "x", наведеного на кроці 3, результат буде дуже близьким до .5, значення синуса pi / 6. Повторіть спробу з різними значеннями для "x" і для різної кількості ітерацій циклу та порівняйте результати з функцією "math.sin (x)". Ви тільки що реалізували в Python той самий процес, який використовують багато комп'ютерів для обчислення значень синусоїдальних та інших трансцендентних функцій.
Як
- Залиште пробіл і введіть команду "sum" на другому рядку циклу "for", щоб відобразився результат виконання коду. Це покаже, як кожен наступний термін у серії наближає плюс і мінус фактичного значення функції.