numpy+matplotlib完成信号与系统课后练习1.2
第一章绘制函数图像1.2
题目如下
这个问题的要点如下:
- 表示出阶跃函数.
- 如何复用函数表达式以及时间来简化代码.
- 如何在一个大的"画布"中同时显示多个函数图像.
正文
首先导入需要的包
import numpy as np
from matplotlib import pyplot as plt
然后对时间采样并写出函数表达式
t = np.arange(-5,5,0.01) #对时间取样
f = lambda t : (1+t/2)*(np.heaviside(t+2,0)-np.heaviside(t-2,0)) #表示函数,会解释为什么用lambda实现
上边出现了一个np的函数heaviside,这是np包内定义的一个阶跃函数,可以接受数组为参数,具体情况大家可以自己查看文档.
但其实我们根据阶跃函数的定义可以自己定义一个heaviside使用lambda表达式
lambda x : 1 if x > 0 else 0
但是在处理数组是这个短小的函数弊端就显现出来,我们可能需要借助for循环来处理数组,为了简化问题,我们直接使用np的阶跃函数.
接下来解释为什么要用lambda来表示题目中的函数关系.如果不用lambda函数我们表示的函数可能是这个样子
f = (1+t/2)*(np.heaviside(t+2,0)-np.heaviside(t-