математика — Разложение в ряд Тейлора функции(Python). Приближённое значение функции
Вроде бы ввожу правильное значение разложения в ряд Тейлора функции, а выдаёт не правильное значение. Подскажите, в чём проблема.
import math from math import factorial a=3.0 b=4.0 lich = 0 krok=(b-a)/10 lich=0 def f(x): return 1/(1+((math.e)**(1+x))) def f_tochne(x, n): result=0 for i in range(n): result += ((factorial(n))/((1+x)**n)) return result while a<=b: print(round(a,2), end=' ') print(round(f(a),5),end=' ') print(round(f_tochne(a,lich),5)) lich+=1 a+=krok[![введите сюда описание изображения][1]][1]
- python
- математика
- ряды
1
Можно и без всяких импортов математики и факториалов…
def f(x): return 2.718281828459045**(1+x) def tailor(x, eps): x = 1+x sum = 1+x term = x; n = 2; while term*term > eps*eps: term *= x/n n += 1 sum += term return sum a=3.0 b=4.0 krok=(b-a)/10 while a<=b: print(round(a,2), end=' ') print(round(f(a),5),end=' ') print(round(tailor(a,1e-6),5)) a+=krok
Как там таблицу выводить красиво — это я не очень знаю, Python — не мое, смотрите сами. Но вот так считать, не по количеству членов, а по заданной точности — оно как-то надежнее 🙂 Кстати, пятью членами в этом диапазоне значений никак не отделаться — нужно штук 20…
3
from math import factorial def taylor(x, n): return sum((1+x) ** i / factorial(i) for i in range(n + 1))
2
Зарегистрируйтесь или войдите
Регистрация через GoogleРегистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
python — Вычисление функций разложением в ряд Тейлора
Вопрос задан
Изменён 2 года 2 месяца назад
Просмотрен 531 раз
Помогите, пожалуйста, решить проблему с вычислением функций разложением в ряд Тейлора. Первый столбец отвечает за значения аргумента, второй столбец за значения функции в точке. Третий столбец с неверными числами: там должны быть более точные значения функции (примерно равные числам со второго столбца), так как они вычисляются разложением функции в ряд Тейлора.
import math as m1 a = -0.1 b = 1 eps = 0.00001 def f(a): return (1/(m1.sqrt(1+a))) def doublefactorial(n): if n <= 0: return 1 else: return n * doublefactorial(n-2) def test(a): n=2 an=a S=0.0 while abs(an)>=eps: S+=an an*= (-1)**(n-1)*(doublefactorial(2*n-1))*(a**(n))/(doublefactorial(2*n)) n+= 1 return S print(" xi | f(xi)") print("---------------------------------------------------------------------") while a < b: if a != -0.1: print("", round(a, 2), "|", round(f(a), 3), round(test(a),3)) else: print(round(a, 2), "|", round(f(a), 3), round(test(a),3)) a += 0. 1 print("---------------------------------------------------------------------")
- python
- математика
- ряды
import math as m1 def f(a): return (1/(m1.sqrt(1+a))) def test(x,eps): sum = 1 n = 1 t = 1 while t*t > eps*eps: t *= -(2*n-1)*x/(2*n) n += 1 sum += t return sum a = -0.1 b = 0.9 eps = 0.00001 print(" xi | f(xi)") print("---------------------------------------------------------------------") while a < b: if a != -0.1: print("", round(a, 2), "|", round(f(a), 3), round(test(a,eps),3)) else: print(round(a, 2), "|", round(f(a), 3), round(test(a,eps),3)) a += 0.1 print("---------------------------------------------------------------------")
Только учтите, что ряд сходится, как у вас в условии написано, при -1<x<1, так что если написать
b = 1
то вычисления зациклятся — ряд не будет сходиться.
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почтуОтправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
численные методы — Разложение Тейлора для синуса и косинуса
спросил
Изменено 6 лет, 10 месяцев назад
Просмотрено 946 раз
$\begingroup$
Здесь: Есть ли формула для синуса и косинуса?, один из ответов, упомянутых с использованием разложения Тейлора для аппроксимации $\sin(x)$ и $\cos(x)$, и кто-то заметил, однако, что это работают только для небольших значений $x$. 5} {5!}-\cdots$$ по-прежнему сходится к точному значению для $\sin(x)$, независимо от того, насколько велико значение $x$. 95}{5!}-\cdots$$ Как мы видим, использование только первых трех членов аппроксимировало бы $\sin(x)$ по-другому — это работает лучше для значений, близких к $2\pi$. Таким образом, мы можем интуитивно увидеть, что да, взятие разложения Тейлора в другой точке влияет ли на то, как $\sin(x)$ аппроксимирует $x$.
$\endgroup$
3
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью GoogleЗарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
Ежемесячный обзор погоды, том 120, выпуск 1 (1992 г.)
- Предыдущая статья
- Следующая статья
Abstract
Разложение функции в двумерном пространстве в ряд по гармоническому синусу предлагается в виде суммы двух частей. Гармоническая часть представляет собой решение уравнения Лапласа с заданными граничными значениями этой функции. Внутренняя часть — это функция, из которой вычтена гармоническая часть; таким образом, он имеет нулевое граничное значение и может быть разложен двойным рядом синусов Фурье. С помощью разложения в ряд по гармоническому синусу показано, что для решения уравнений Лапласа, Пуассона и Гельмгольца с заданным граничным условием требуются лишь простые операции.
Разложение гармонического синусоидального ряда используется для решения задач разделения и реконструкции ветра на ограниченной территории. Внутренний ветер вычисляется из внутренних частей функции тока и потенциала скорости. Гармонический ветер – это разница между наблюдаемым ветром и внутренним ветром. В ограниченной области с внутренним ветром можно бороться так же, как с горизонтальным ветром на земном шаре. Развитие завихренности и дивергенции на ограниченном участке можно диагностировать по внутренним частям функции тока и потенциала скорости и соответствующим внутренним вращательным и дивергентным компонентам ветра. Поскольку внутренние части функции тока и потенциала скорости определены, разделение поля ветра на внутренний вращательный, внутренний расходящийся и гармонический становится вполне определенным. Гармонический ветер не только нерасходящийся, но и безвихревой в ограниченной области.
Как в задачах разделения, так и в задачах реконструкции ключом является решение уравнений Лапласа гармонических частей с заданным граничным значением гармонического ветра. Решение гармонических частей для ключевой задачи не является уникальным, но вычисленный гармонический ветер из гармонических частей является уникальным. На основе этой характеристики разработан итерационный метод. На примере реальных данных показано, что гармонические части функции тока и потенциала скорости, а также расчетный гармонический ветер могут быть точно определены в течение 15 итераций. Итерационный метод с использованием разложения в ряд по гармоническим синусам очень эффективен при решении задач разбиения и реконструкции в ограниченной области.
Abstract
Разложение функции в двумерном пространстве в ряд по гармоническому синусу предлагается в виде суммы двух частей. Гармоническая часть представляет собой решение уравнения Лапласа с заданными граничными значениями этой функции.
Внутренняя часть — это функция, из которой вычтена гармоническая часть; таким образом, он имеет нулевое граничное значение и может быть разложен двойным рядом синусов Фурье. С помощью разложения в ряд по гармоническому синусу показано, что для решения уравнений Лапласа, Пуассона и Гельмгольца с заданным граничным условием требуются лишь простые операции.Разложение гармонического синусоидального ряда используется для решения задач разделения и реконструкции ветра на ограниченной территории. Внутренний ветер вычисляется из внутренних частей функции тока и потенциала скорости. Гармонический ветер – это разница между наблюдаемым ветром и внутренним ветром. В ограниченной области с внутренним ветром можно бороться так же, как с горизонтальным ветром на земном шаре. Развитие завихренности и дивергенции на ограниченном участке можно диагностировать по внутренним частям функции тока и потенциала скорости и соответствующим внутренним вращательным и дивергентным компонентам ветра. Поскольку внутренние части функции тока и потенциала скорости определены, разделение поля ветра на внутренний вращательный, внутренний расходящийся и гармонический становится вполне определенным.