●按照如下泰勒级数公式计算正弦函数 y=sin(x)在 x0=π/2 处的二阶泰勒级数展开表达式(求导部分可手动先求解出来),并将该正弦函数y=sin(x)及其二阶展开表达式在[0, π/4, π/2, 3π/4, π, 5π/4, 3π/2, 7π/4, 2π]处的值都打印出来;
高级要求:●分别计算将正弦函数 y=sin(x)及其在 x=π/2 处的 0 阶、2 阶、4 阶泰勒级数展开表达式,并将该正弦函数y=sin(x)及其0 阶、2 阶、4 阶展开表达式在[0, π/4, π/2, 3π/4, π, 5π/4, 3π/2, 7π/4, 2π]处的值都打印出来。
import numpy as np
import math as mh
def jc(n):
count = 1
if n==0:
return 1
else:
for i in range(1, int(n + 1)):
count = count * i
return count
def qd(n):
if n == 1:
return mh.cos(mh.pi / 2)
elif n == 2:
return -mh.sin(mh.pi / 2)
elif n == 0:
return mh.sin(mh.pi / 2)
elif n == 3:
return -mh.cos(mh.pi / 2)
elif n == 4:
return mh.sin(mh.pi / 2)
# print(jc(2))
# print(qd(1))
def taylor(x, nn):
out = 0
for i in range(0,nn+1):
out += 1 / jc(i) * qd(i) * mh.pow(x - mh.pi/2, i)
print("在{}展开的值为:{}".format(x, out))
if __name__ == "__main__":
# print(mh.pi*mh.pi/8)
# 二阶taylor展开式
print("二阶taylor展开式")
taylor(0, 2)
taylor(mh.pi/4, 2)
taylor(mh.pi/2, 2)
taylor(3*mh.pi/4, 2)
taylor(mh.pi, 2)
taylor(5*mh.pi/4, 2)
taylor(3*mh.pi/2, 2)
taylor(7*mh.pi/4, 2)
taylor(2*mh.pi, 2)
# print(1-mh.pi*mh.pi/8+mh.pow(mh.pi/2, 4)/24)
# 四阶taylor展开式
print("四阶taylor展开式")
taylor(0, 4)
taylor(mh.pi/4, 4)
taylor(mh.pi/2, 4)
taylor(3*mh.pi/4, 4)
taylor(mh.pi, 2)
taylor(5*mh.pi/4, 4)
taylor(3*mh.pi/2, 4)
taylor(7*mh.pi/4, 4)
taylor(2*mh.pi, 4,)
# 零阶taylor展开式
print("零阶taylor展开式")
taylor(0, 0)
taylor(mh.pi/4, 0)
taylor(mh.pi/2, 0)
taylor(3*mh.pi/4, 0)
taylor(mh.pi, 0)
taylor(5*mh.pi/4, 0)
taylor(3*mh.pi/2, 0)
taylor(7*mh.pi/4, 0)
taylor(2*mh.pi, 0)
课程上机任务小练习
如有不足 多多指教



