编写程序画出下图:。 (1)在同一个窗口中面出1个周期 x=0~2π范围内,y=sin(3x) 及dy/dx的波形曲线。·(2) 利用 subplot 困数,分别在子窗口中画出1个周期 x=0~2π内,y=sin(x²),y=sin(x)+cos(2x)以及它们的一阶导数的图形。
时间: 2024-09-07 16:04:21 浏览: 69
要完成这个任务,你可以使用Python的matplotlib库来绘制所需的函数和它们的导数图形。这里提供一个基础的代码示例,你可以根据这个示例来绘制所需图形:
首先,我们需要导入必要的库:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import subplots
# 画出 y = sin(3x) 及其导数 dy/dx 的波形曲线
x = np.linspace(0, 2*np.pi, 1000)
y = np.sin(3*x)
dy_dx = 3*np.cos(3*x)
plt.figure(figsize=(10, 5))
plt.plot(x, y, label="y = sin(3x)")
plt.plot(x, dy_dx, label="dy/dx = 3cos(3x)")
plt.title("y = sin(3x) and its derivative")
plt.legend()
plt.show()
# 利用 subplot 函数,在子窗口中分别画出 y = sin(x²),y = sin(x) + cos(2x) 及它们的一阶导数图形
x2 = np.linspace(-2*np.pi, 2*np.pi, 1000)
y1 = np.sin(x2**2)
y2 = np.sin(x2) + np.cos(2*x2)
dy1_dx2 = 2*x2*np.cos(x2**2)
dy2_dx2 = np.cos(x2) - 2*np.sin(2*x2)
fig, axs = subplots(2, 2, figsize=(12, 12))
axs[0, 0].plot(x2, y1, label="y = sin(x²)")
axs[0, 0].set_title("y = sin(x²)")
axs[0, 0].legend()
axs[0, 1].plot(x2, dy1_dx2, label="dy/dx = 2x*cos(x²)")
axs[0, 1].set_title("dy/dx = 2x*cos(x²)")
axs[0, 1].legend()
axs[1, 0].plot(x2, y2, label="y = sin(x) + cos(2x)")
axs[1, 0].set_title("y = sin(x) + cos(2x)")
axs[1, 0].legend()
axs[1, 1].plot(x2, dy2_dx2, label="dy/dx = cos(x) - 2*sin(2x)")
axs[1, 1].set_title("dy/dx = cos(x) - 2*sin(2x)")
axs[1, 1].legend()
plt.tight_layout()
plt.show()
```
在上面的代码中,我们首先使用numpy库生成x值的范围,然后计算对应的y值和导数值。接着我们使用matplotlib的plot函数来绘制这些曲线。最后,使用subplot函数创建一个2x2的子图布局,每个子图显示一个函数及其导数。
请确保你的环境中已经安装了numpy和matplotlib库,然后运行上述代码即可得到图形。
阅读全文