numpy绘制方波及方波无穷级数的表示
时间: 2023-10-22 11:04:58 浏览: 82
要使用NumPy绘制方波和方波无穷级数的表示,需要先导入NumPy和Matplotlib库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
接下来,可以使用NumPy的linspace函数生成一个从0到1的一维数组,表示自变量x的取值范围:
```python
x = np.linspace(0, 1, 1000)
```
然后,可以使用NumPy的where函数来定义方波函数f(x):
```python
f = np.where(np.sin(2*np.pi*x) >= 0, 1, -1)
```
这里使用了NumPy的sin函数和pi常量,生成了一个以sin函数为条件的where函数,当sin(2πx)>=0时,返回1,否则返回-1,从而得到方波函数f(x)。
接着,可以定义一个函数,使用NumPy的sum函数计算方波无穷级数的表示:
```python
def square_wave(x, n):
s = 0
for i in range(1, n+1, 2):
s += np.sin(i*np.pi*x)/i
return (4/np.pi)*s
```
这个函数接受两个参数,x表示自变量,n表示级数的项数。函数内部使用了一个for循环,将每一项的正弦函数值相加,并最终返回方波无穷级数的值。
最后,使用Matplotlib的plot函数绘制图像:
```python
plt.plot(x, f, label='square wave')
plt.plot(x, square_wave(x, 1), label='n=1')
plt.plot(x, square_wave(x, 3), label='n=3')
plt.plot(x, square_wave(x, 5), label='n=5')
plt.legend()
plt.show()
```
这里分别绘制了方波函数和方波无穷级数的前三项,可以通过调整参数n来控制级数的项数,观察其逼近方波函数的效果。
阅读全文