代码
# 画指定复合次数的函数曲线图
import sympy as sp
import numpy as np
import matplotlib.pyplot as plt
# 声明迭代方程
mu = sp.Symbol('mu')
x = sp.Symbol('x')
expr = 1 - mu * x**2
# 复合函数
def compositeExpr(expr, x, times):
composite = expr
for i in range(1, times):
composite = composite.replace(x, expr)
return composite
# 复合p次
pArr = [1, 2, 4]
for i in range(len(pArr)):
p = pArr[i]
composite = compositeExpr(expr, x, p)
# 指定一个接近mu无穷的值
composite = composite.replace(mu, 1.4)
# 映射函数化
func = sp.lambdify(x, composite)
# x区间
xArr = np.linspace(-1, 1, 100)
# 根据x区间计算y值
yArr = [func(x) for x in xArr]
# 画图
plt.subplot(len(pArr), 1, i+1)
plt.plot(xArr, yArr)
# 展示
plt.show()
运行结果: