从图中曲线形态来看,这是一条**衰减振荡曲线**,典型形式如:
> **y = e^(-x) * cos(x) + C** 或 **y = e^(-x) * sin(x) + C**
但观察图像:
- 起始点 x=0 时 y≈1.8
- 随后快速下降到约 0.2(在 x≈0.5)
- 然后振荡衰减,最终趋于一个常数 ≈0.8
这提示我们:**可能是一个指数衰减的余弦函数加上一个偏移量**。
尝试拟合:
设
> **y = A * e^(-k*x) * cos(ω*x + φ) + B**
但从简单性考虑,题目说“基本三角函数绘制”,很可能只是:
> **y = e^(-x) * cos(x) + 1**
验证一下:
- x=0: e * cos(0) + 1 = 1*1 + 1 = 2 → 太高了(图中是1.8)
- 尝试:**y = 0.8 * e^(-x) * cos(x) + 1**
x=0: 0.8*1*1 + 1 = 1.8 ✅
x=π/2≈1.57: cos(π/2)=0 → y=1
x=π≈3.14: cos(π)=-1 → y=0.8*e^(-π)*(-1)+1 ≈ 0.8*(-0.043)+1 ≈ 0.965 —— 但图中在x=3附近是波峰约0.85?不太对。
再看图像趋势:振荡中心似乎趋近于 0.8,且第一个波谷在 x≈0.5, y≈0.2;第一个波峰在 x≈1, y≈1.2。
尝试另一个经典形式:
> **y = e^(-x) * (cos(x) + sin(x)) + 0.8**
或者更简单的:
> **y = e^(-x) * cos(x) + 0.8**
试算:
- x=0: 1*1 + 0.8 = 1.8 ✅
- x=0.5: e^(-0.5)≈0.606, cos(0.5)≈0.877 → 0.606*0.877≈0.532 + 0.8 = 1.332 —— 但图中x=0.5时y≈0.2 ❌ 不对!
等等——图中在x=0.5处是**波谷**,说明此时函数值最小。如果用的是 cos(x),它在x=0.5还是正的,不可能到0.2。
那可能是 **sin(x)**?
试试:
> **y = e^(-x) * sin(x) + 0.8**
x=0: sin(0)=0 → y=0.8 ❌ 不符合起点1.8
除非是:
> **y = e^(-x) * (a*cos(x) + b*sin(x)) + c**
但太复杂。
换个思路:观察图像,它非常像 **阻尼振动**,比如:
> **y = e^(-x) * cos(2πx) + 0.8**
但周期不对。
再仔细看横坐标:从0到6,有大约3个完整振荡?不,从0到1是一个大波动,1到2是一个小波动,之后越来越平缓。
实际上,这个图像非常接近:
> **y = e^(-x) * cos(x) + 1**
但我们之前算过x=0时为2,而图中是1.8 —— 所以调整振幅:
> **y = 0.8 * e^(-x) * cos(x) + 1**
x=0: 0.8*1*1 + 1 = 1.8 ✅
x=0.5: 0.8 * e^(-0.5) * cos(0.5) + 1 ≈ 0.8 * 0.606 * 0.877 + 1 ≈ 0.8*0.532 + 1 ≈ 0.426 + 1 = 1.426 —— 但图中x=0.5时y≈0.2 ❌ 还是不对!
等等!我可能看错了图!
重新审视图像:
- 在 x=0 时,y≈1.8
- 在 x≈0.5 时,y≈0.2 (最低点)
- 在 x≈1.0 时,y≈1.2 (最高点)
- 在 x≈1.5 时,y≈0.6 (次低点)
- 在 x≈2.0 时,y≈0.95 (次高点)
- 之后逐渐趋近于 0.8
这说明:**不是 cos(x),而是 sin(x) 的某种变形?**
注意:sin(x) 在 x=0 时为0,但如果我们用:
> **y = e^(-x) * sin(x + π/2) + 0.8 = e^(-x) * cos(x) + 0.8**
又回到原点。
或许它是:
> **y = e^(-x) * (1 + cos(x))**
x=0: 1*(1+1)=2 ❌
> **y = e^(-x) * (0.8 + 0.8*cos(x))**
x=0: 1*(0.8+0.8)=1.6 ❌
突然想到:会不会是 **y = e^(-x) * cos(2x) + 0.8**?
x=0: 1*1 + 0.8 = 1.8 ✅
x=0.5: e^(-0.5)≈0.606, cos(1)≈0.540 → 0.606*0.540≈0.327 + 0.8 = 1.127 ❌ 不是0.2
不行。
让我们反向思考:既然题目说“基本三角函数绘制”,而且图像明显是**指数衰减乘以三角函数再加常数**,那么最合理的猜测是:
> **y = e^(-x) * cos(x) + 1**
虽然x=0时是2,但也许图中的刻度或绘图有误差?或者我们接受近似?
但图中明确显示x=0时y=1.8,所以我们必须匹配这一点。
尝试:
> **y = 0.8 * e^(-x) * cos(x) + 1**
如前所述,x=0.5时计算得1.426,但图中是0.2 —— 差太远。
除非……我看错了纵坐标?
再看原图:
纵轴从0.2到1.8,间隔0.2。
在x=0.5处,曲线确实接近0.2。
那什么函数能在x=0时为1.8,x=0.5时为0.2?
假设是:
> **y = A * e^(-k*x) * cos(ω*x) + B**
代入两个点:
x=0: A * 1 * 1 + B = 1.8 → A + B = 1.8
x=0.5: A * e^(-0.5k) * cos(0.5ω) + B = 0.2
还需要更多点。
x=1: y≈1.2 → A * e^(-k) * cos(ω) + B = 1.2
x=1.5: y≈0.6 → A * e^(-1.5k) * cos(1.5ω) + B = 0.6
这太复杂了。
或许这不是 cos(x),而是 **cos(2πx)** 或其他频率?
另一个想法:图像看起来像 **sinc函数** 或 **damped sine wave with phase shift**.
但为了简化,考虑到这是教学题,“基本三角函数”,很可能是指:
> **y = np.exp(-x) * np.cos(x) + 1**
尽管数值不完全匹配,但在教学中常这样画。
或者,更精确地,我们可以用:
> **y = 0.8 * np.exp(-x) * np.cos(x) + 1**
并承认x=0.5时的理论值与图示有差异,可能是绘图分辨率或视觉误差。
但等一下!我发现了关键点:
在 x=0.5 时,如果是 **cos(x)**,cos(0.5 rad) ≈ cos(28.6°) ≈ 0.877,是正的,所以 y 应该大于1,但图中是0.2 —— 这说明在x=0.5时,三角函数部分应该是负的!
所以,应该是 **sin(x)** 吗?sin(0.5)≈0.479,还是正的。
除非是 **cos(x + π)** = -cos(x)
试试:
> **y = e^(-x) * (-cos(x)) + 1.8**
x=0: 1*(-1) + 1.8 = 0.8 ❌
> **y = e^(-x) * cos(x + π) + 1.8 = e^(-x) * (-cos(x)) + 1.8**
x=0: -1 + 1.8 = 0.8 ❌
不行。
> **y = e^(-x) * sin(x - π/2) + 1.8 = e^(-x) * (-cos(x)) + 1.8** 同上。
或许:
> **y = e^(-x) * cos(2x) + 1**
x=0: 1*1 +1=2 ❌
> **y = 0.8 * e^(-x) * cos(2x) + 1**
x=0: 0.8*1*1 +1=1.8 ✅
x=0.5: 0.8 * e^(-0.5) * cos(1) +1 ≈ 0.8*0.606*0.540 +1 ≈ 0.8*0.327 +1 = 0.262 +1 = 1.262 ❌ 还是不对。
我意识到:在x=0.5时,y=0.2,而在x=0时y=1.8,差值为1.6,且是下降的。
如果三角函数部分是 **cos(πx)** 呢?
cos(π*0.5) = cos(π/2) = 0 → y = e^(-0.5)*0 + B = B,但图中是0.2,所以B=0.2,但x=0时 cos(0)=1,y=e^0*1 +0.2=1.2 ❌ 不是1.8。
除非:
> **y = A * e^(-x) * cos(πx) + B**
x=0: A*1*1 + B = 1.8
x=0.5: A*e^(-0.5)*0 + B = B = 0.2 → 所以 B=0.2, A=1.6
then y = 1.6 * e^(-x) * cos(πx) + 0.2
验证:
x=0: 1.6*1*1 +0.2=1.8 ✅
x=0.5: 1.6*e^(-0.5)*0 +0.2=0.2 ✅
x=1: 1.6*e^(-1)*cos(π) +0.2 = 1.6*0.3679*(-1) +0.2 ≈ -0.588 +0.2 = -0.388 ❌ 但图中x=1时y≈1.2
不对。
cos(πx) 在x=1时是-1,导致负值,但图中是正值。
所以不是 cos(πx)。
试试 cos(2πx):
x=0: cos(0)=1
x=0.5: cos(π)= -1
x=1: cos(2π)=1
哦!这有可能!
设:
> **y = A * e^(-x) * cos(2πx) + B**
x=0: A*1*1 + B = 1.8
x=0.5: A*e^(-0.5)*(-1) + B = 0.2
x=1: A*e^(-1)*1 + B = 1.2
解方程组:
From x=0: A + B = 1.8 ...(1)
From x=0.5: -A*e^(-0.5) + B = 0.2 ...(2)
From x=1: A*e^(-1) + B = 1.2 ...(3)
用(1)和(2):
(1) - (2): A + B - [-A*e^(-0.5) + B] = 1.8 - 0.2
=> A + A*e^(-0.5) = 1.6
=> A(1 + e^(-0.5)) = 1.6
e^(-0.5)≈0.6065, so 1+0.6065=1.6065
A = 1.6 / 1.6065 ≈ 0.996
Then from (1): B = 1.8 - 0.996 = 0.804
Check with x=1: A*e^(-1) + B = 0.996*0.3679 + 0.804 ≈ 0.366 + 0.804 = 1.17 ≈ 1.2 ✅ 很接近!
所以,函数很可能是:
> **y = 1.0 * e^(-x) * cos(2πx) + 0.8**
取整后:
> **y = np.exp(-x) * np.cos(2*np.pi*x) + 0.8**
验证各点:
- x=0: 1*1*1 +0.8=1.8 ✅
- x=0.5: e^(-0.5)*cos(π) +0.8 = 0.6065*(-1) +0.8 = -0.6065+0.8=0.1935≈0.2 ✅
- x=1: e^(-1)*cos(2π) +0.8 = 0.3679*1 +0.8=1.1679≈1.2 ✅
- x=1.5: e^(-1.5)*cos(3π) +0.8 = e^(-1.5)*(-1) +0.8 ≈ 0.2231*(-1)+0.8=0.5769≈0.6 ✅
- x=2: e^(-2)*cos(4π) +0.8 = 0.1353*1 +0.8=0.9353≈0.95 ✅
- x=3: e^(-3)*cos(6π) +0.8 = 0.0498*1 +0.8=0.8498≈0.85 ✅
- x=6: e^(-6)*cos(12π) +0.8 ≈ 0.0025*1 +0.8=0.8025≈0.8 ✅
完美匹配!
因此,正确的函数是:
> **y = e^{-x} \cdot \cos(2\pi x) + 0.8**
现在,编写Python代码绘制此图。
使用 matplotlib 和 numpy。
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义x范围
x = np.linspace(0, 6, 1000)
# 定义函数
y = np.exp(-x) * np.cos(2 * np.pi * x) + 0.8
# 创建图形
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'r-', linewidth=2.5) # 红色粗线
# 设置坐标轴
plt.xlim(0, 6)
plt.ylim(0.1, 1.9) # 根据图中范围调整
# 添加网格(可选,图中没有网格,但可以加)
# plt.grid(True, alpha=0.3)
# 显示图形
plt.show()
```
注意:图中没有网格线,所以不加 grid。
另外,线条颜色是红色,宽度较粗,符合图示。
运行此代码将生成与题目描述一致的图像。
---
✅ 最终答案:
```python
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 6, 1000)
y = np.exp(-x) * np.cos(2 * np.pi * x) + 0.8
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'r-', linewidth=2.5)
plt.xlim(0, 6)
plt.ylim(0.1, 1.9)
plt.show()
```
这段代码会绘制出与题目图片完全一致的衰减振荡曲线。