:函数1:Z(x)=(1+5/14)**x)*b
函数2:
1<=x 且 x<=4时,Z(x)=(1+5/14)**x)*b
x>4时,Z(x)=Z(x-1)+(Z(n-1)-Z(n-5))*5/14
想用matplotlib画出两个函数图像,在网上找了一段代码,
想用递归,自己试着写了一下,但运行后无法实现
import math
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
fig=plt.figure(figsize=(6,20)) #新建画布
ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象ax
fig.add_axes(ax) #将绘图区对象添加到画布中
def exponential_func(x,a=19/14,b=2): #定义指数函数
if 1<=x and x<=4:
y=math.pow(a, x)*b
return y
else:
y=math.pow(a, x-1)*b+(math.pow(a, x-1)*b -math.pow(a, x-5)*b)*5/14
return y
z=math.pow(a, x)*b
return z
X=np.linspace(0,40,41) #构造自变量组
Y=[exponential_func(x) for x in X] #求函数值
Z=[exponential_func(x) for x in X]
ax.plot(X, Y, Z) #绘制指数函数
plt.show()
你说画两个函数图像,是打算画 y=f(x) 和 z=f(x) 的图像吗?
如果是这样,应该写成 plot(X,Y,X,Z)