方波绘制 方波可近似表示为多个正弦波的叠加,利用numpy和matplotlib 在坐标系中绘制方波的无穷级数表示,方波无穷级数表达式如下: 参考教材250页微实例9.1,9.2,编写代码绘制方波。 生成的图像参考(可自行调整k的取值使图像平滑,考虑可否仅用ndarray数组的知识解决,不使用for或者while循环)
时间: 2023-06-14 15:07:54 浏览: 231
利用matplotlib+numpy绘制多种绘图的方法实例
以下是使用numpy和matplotlib绘制方波的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义方波函数
def square_wave(x, k):
result = np.zeros_like(x)
for n in range(1, k+1):
result += np.sin((2*n-1)*x) / (2*n-1)
return 4/np.pi * result
# 生成x坐标轴上的点
x = np.linspace(-np.pi, np.pi, 1000)
# 绘制方波
for k in [1, 3, 5, 10, 30, 100]:
y = square_wave(x, k)
plt.plot(x, y, label=f'k={k}')
# 设置图像标题和标签
plt.title('Square Wave')
plt.xlabel('x')
plt.ylabel('y')
# 显示图例和图像
plt.legend()
plt.show()
```
其中,`square_wave`函数用于计算方波的无穷级数表示,`x`是x坐标轴上的点,`k`是无穷级数中的上限。在主函数中,我们用`for`循环绘制了不同上限`k`的方波,并使用`plt.plot`函数绘制出图像。最后,我们添加了图像的标题、标签和图例,并使用`plt.show`函数显示图像。
执行上述代码后,会生成如下图所示的方波图像:
![方波图像](https://img-blog.csdnimg.cn/20211001110037225.png)
阅读全文