我正在尝试将泰勒级数从1项到50项动画化。我目前拥有的代码允许我指定一些术语并将其绘制到一个图上(与另一个图进行比较):
import math
import numpy as np
import matplotlib.pyplot as plt
def func_cos(x, n):
cos_approx = 0
for i in range(n):
coef = (-1)**i
num = x**(2*i)
denom = math.factorial(2*i)
cos_approx += ( coef ) * ( (num)/(denom) )
return cos_approx
def func_sin(x, n):
sin_approx = 0
for i in range(n):
coef = (-1)**i
num = x**(2*i+1)
denom = math.factorial(2*i+1)
sin_approx += ( coef ) * ( (num)/(denom) )
return sin_approx
i = 1j
e = math.e
x = np.linspace(0, 10, 1000)
fx = e**(i*x)
taylor = lambda j: np.array([func_cos(x_val,j) + i*func_sin(x_val,j) for x_val in x])
plt.plot(fx.real, fx.imag)
plt.plot(taylor(50).real, taylor(50).imag)
plt.show()
字符串
有没有一种方法来动画的图形,使线改变方程的每一帧的泰勒级数的数目?
1条答案
按热度按时间f2uvfpb91#
动画模块
一种是
animation
模块。在这种情况下,这可能是最好的方法,因为您对第i帧应该是什么样子有了明确的定义。下面是您的代码,更新了一些注解行。
字符串
另外(见最后一行注解),
animation
允许轻松创建很酷的动画gif(或mp4,但需要gif来放入[so]消息),如离子
另一种方法是使情节互动,并更新它(甚至每次从头开始重绘一切,这取决于你),使用你自己的时间策略。
型
或者两者的混合
型
请注意,我想在这里只关注动画部分。所以没有针对您的情况进行优化。例如,通过每次计算
taylor(k)
,taylor(k)
本身计算所有项,我基本上计算了30倍的常数系数,29倍的x系数,28倍的x²系数,...显然,这是可以优化的。
比如像这样
型