行莫
行莫
发布于 2025-11-25 / 8 阅读
0
0

斜率

斜率

目录

  1. 引言:斜率就在我们身边
  2. 第一部分:什么是斜率?
  3. 第二部分:如何计算斜率?
  4. 第三部分:斜率的几何意义
  5. 第四部分:不同类型的斜率
  6. 第五部分:斜率在实际中的应用
  7. 总结与回顾

引言:斜率就在我们身边

生活中的斜率

想象你正在爬山

  • 平缓的山坡:走起来轻松,斜率小
  • 陡峭的山坡:走起来费力,斜率大
  • 垂直的悬崖:几乎不可能爬,斜率非常大

斜率就是描述"有多陡"的数学工具!

斜率的本质

斜率 = 倾斜程度 = 变化率

就像:

  • 楼梯的陡峭程度:每走一步,高度增加多少
  • 道路的坡度:每前进一米,高度变化多少
  • 价格的变化速度:每过一天,价格变化多少

第一部分:什么是斜率?

1.1 直观理解:爬楼梯的类比

想象你在爬楼梯:

楼梯 A:每走 1 步,高度增加 0.5 米 → 斜率 = 0.5
楼梯 B:每走 1 步,高度增加 1 米   → 斜率 = 1.0
楼梯 C:每走 1 步,高度增加 2 米   → 斜率 = 2.0

斜率越大,楼梯越陡!

1.2 数学定义

对于一条直线,斜率定义为:

$$\text{斜率} = \frac{\text{垂直变化}}{\text{水平变化}} = \frac{\Delta y}{\Delta x} = \frac{y_2 - y_1}{x_2 - x_1}$$

其中:

  • $(x_1, y_1)$ 和 $(x_2, y_2)$ 是直线上的两个点
  • $\Delta y$ = 垂直方向的变化(上升或下降)
  • $\Delta x$ = 水平方向的变化(前进的距离)

1.3 可视化:理解斜率

让我们用图表来直观地理解斜率:

import numpy as np
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

# 创建图形
fig, axes = plt.subplots(1, 3, figsize=(15, 5))

# 示例1:平缓的斜率(斜率 = 0.5)
x1 = np.array([0, 4])
y1 = np.array([0, 2])
axes[0].plot(x1, y1, 'b-', linewidth=3, label='斜率 = 0.5')
axes[0].plot(x1, y1, 'ro', markersize=10)
axes[0].annotate('(0, 0)', (0, 0), xytext=(5, -10), textcoords='offset points')
axes[0].annotate('(4, 2)', (4, 2), xytext=(5, 5), textcoords='offset points')
axes[0].grid(True, alpha=0.3)
axes[0].set_xlim(-0.5, 5)
axes[0].set_ylim(-0.5, 3)
axes[0].set_xlabel('x (水平距离)', fontsize=11)
axes[0].set_ylabel('y (高度)', fontsize=11)
axes[0].set_title('平缓的斜率:每前进4米,上升2米', fontsize=12, fontweight='bold')
axes[0].legend(fontsize=10)

# 示例2:中等斜率(斜率 = 1)
x2 = np.array([0, 4])
y2 = np.array([0, 4])
axes[1].plot(x2, y2, 'g-', linewidth=3, label='斜率 = 1')
axes[1].plot(x2, y2, 'ro', markersize=10)
axes[1].annotate('(0, 0)', (0, 0), xytext=(5, -10), textcoords='offset points')
axes[1].annotate('(4, 4)', (4, 4), xytext=(5, 5), textcoords='offset points')
axes[1].grid(True, alpha=0.3)
axes[1].set_xlim(-0.5, 5)
axes[1].set_ylim(-0.5, 5)
axes[1].set_xlabel('x (水平距离)', fontsize=11)
axes[1].set_ylabel('y (高度)', fontsize=11)
axes[1].set_title('中等斜率:每前进4米,上升4米', fontsize=12, fontweight='bold')
axes[1].legend(fontsize=10)

# 示例3:陡峭的斜率(斜率 = 2)
x3 = np.array([0, 2])
y3 = np.array([0, 4])
axes[2].plot(x3, y3, 'r-', linewidth=3, label='斜率 = 2')
axes[2].plot(x3, y3, 'ro', markersize=10)
axes[2].annotate('(0, 0)', (0, 0), xytext=(5, -10), textcoords='offset points')
axes[2].annotate('(2, 4)', (2, 4), xytext=(5, 5), textcoords='offset points')
axes[2].grid(True, alpha=0.3)
axes[2].set_xlim(-0.5, 3)
axes[2].set_ylim(-0.5, 5)
axes[2].set_xlabel('x (水平距离)', fontsize=11)
axes[2].set_ylabel('y (高度)', fontsize=11)
axes[2].set_title('陡峭的斜率:每前进2米,上升4米', fontsize=12, fontweight='bold')
axes[2].legend(fontsize=10)

plt.suptitle('不同斜率的直观对比', fontsize=16, fontweight='bold')
plt.tight_layout()
plt.show()

1.4 斜率的符号意义

正斜率:向上倾斜

  • 从左到右,y 值增加
  • 就像上坡:越走越高

负斜率:向下倾斜

  • 从左到右,y 值减少
  • 就像下坡:越走越低

零斜率:水平线

  • y 值不变
  • 就像平地:高度不变

未定义斜率:垂直线

  • x 值不变(Δx = 0 不能做为分母运算)
  • 就像垂直的墙:无法用单一数值描述

让我们可视化这些情况:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

fig, axes = plt.subplots(2, 2, figsize=(12, 10))

x = np.linspace(-3, 3, 100)

# 正斜率
y_positive = 2*x + 1
axes[0, 0].plot(x, y_positive, 'g-', linewidth=3, label='正斜率 = 2')
axes[0, 0].grid(True, alpha=0.3)
axes[0, 0].set_title('正斜率:向上倾斜(上坡)', fontsize=12, fontweight='bold')
axes[0, 0].set_xlabel('x', fontsize=11)
axes[0, 0].set_ylabel('y', fontsize=11)
axes[0, 0].legend(fontsize=11)
axes[0, 0].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[0, 0].axvline(x=0, color='k', linestyle='--', alpha=0.3)

# 负斜率
y_negative = -2*x + 1
axes[0, 1].plot(x, y_negative, 'r-', linewidth=3, label='负斜率 = -2')
axes[0, 1].grid(True, alpha=0.3)
axes[0, 1].set_title('负斜率:向下倾斜(下坡)', fontsize=12, fontweight='bold')
axes[0, 1].set_xlabel('x', fontsize=11)
axes[0, 1].set_ylabel('y', fontsize=11)
axes[0, 1].legend(fontsize=11)
axes[0, 1].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[0, 1].axvline(x=0, color='k', linestyle='--', alpha=0.3)

# 零斜率
y_zero = np.full_like(x, 3)
axes[1, 0].plot(x, y_zero, 'b-', linewidth=3, label='零斜率 = 0')
axes[1, 0].grid(True, alpha=0.3)
axes[1, 0].set_title('零斜率:水平线(平地)', fontsize=12, fontweight='bold')
axes[1, 0].set_xlabel('x', fontsize=11)
axes[1, 0].set_ylabel('y', fontsize=11)
axes[1, 0].legend(fontsize=11)
axes[1, 0].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[1, 0].axvline(x=0, color='k', linestyle='--', alpha=0.3)

# 未定义斜率(垂直线)
x_vertical = np.full_like(np.linspace(-3, 3, 100), 2)
y_vertical = np.linspace(-3, 3, 100)
axes[1, 1].plot(x_vertical, y_vertical, 'm-', linewidth=3, label='未定义斜率(垂直)')
axes[1, 1].grid(True, alpha=0.3)
axes[1, 1].set_title('未定义斜率:垂直线(垂直墙)', fontsize=12, fontweight='bold')
axes[1, 1].set_xlabel('x', fontsize=11)
axes[1, 1].set_ylabel('y', fontsize=11)
axes[1, 1].legend(fontsize=11)
axes[1, 1].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[1, 1].axvline(x=0, color='k', linestyle='--', alpha=0.3)

plt.suptitle('斜率的符号意义', fontsize=16, fontweight='bold')
plt.tight_layout()
plt.show()

第二部分:如何计算斜率?

2.1 基本公式

给定两个点 $(x_1, y_1)$ 和 $(x_2, y_2)$,斜率计算公式为:

$$m = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x}$$

记忆技巧

  • "上升除以前进":垂直变化除以水平变化
  • "y的变化除以x的变化"

2.2 计算示例

例子 1:计算通过点 (2, 3) 和 (5, 9) 的直线的斜率

步骤

  1. 确定两个点:$(x_1, y_1) = (2, 3)$,$(x_2, y_2) = (5, 9)$
  2. 计算垂直变化:$\Delta y = y_2 - y_1 = 9 - 3 = 6$
  3. 计算水平变化:$\Delta x = x_2 - x_1 = 5 - 2 = 3$
  4. 计算斜率:$m = \frac{6}{3} = 2$

答案:斜率 = 2

解释:每向右移动 1 个单位,y 值增加 2 个单位。

让我们可视化这个例子:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

# 两个点
x1, y1 = 2, 3
x2, y2 = 5, 9

# 计算斜率
slope = (y2 - y1) / (x2 - x1)
print(f"斜率 = {slope}")

# 绘制直线
x_line = np.array([x1, x2])
y_line = np.array([y1, y2])

# 延伸直线以便更好地观察
x_extended = np.linspace(0, 7, 100)
y_extended = slope * (x_extended - x1) + y1

fig, ax = plt.subplots(figsize=(10, 7))

# 绘制延伸的直线
ax.plot(x_extended, y_extended, 'b-', linewidth=2, label=f'直线(斜率 = {slope})')

# 标记两个点
ax.plot([x1, x2], [y1, y2], 'ro', markersize=12, label='给定点')
ax.annotate(f'({x1}, {y1})', (x1, y1), xytext=(10, 10), 
            textcoords='offset points', fontsize=12, 
            bbox=dict(boxstyle='round,pad=0.3', facecolor='yellow', alpha=0.5))
ax.annotate(f'({x2}, {y2})', (x2, y2), xytext=(10, 10), 
            textcoords='offset points', fontsize=12,
            bbox=dict(boxstyle='round,pad=0.3', facecolor='yellow', alpha=0.5))

# 绘制变化量
ax.arrow(x1, y1, x2-x1, 0, head_width=0.3, head_length=0.2, 
         fc='green', ec='green', linewidth=2, length_includes_head=True)
ax.arrow(x2, y1, 0, y2-y1, head_width=0.3, head_length=0.2, 
         fc='red', ec='red', linewidth=2, length_includes_head=True)

# 标注
ax.text((x1+x2)/2, y1-0.5, f'Δx = {x2-x1}', fontsize=12, 
        ha='center', color='green', fontweight='bold')
ax.text(x2+0.3, (y1+y2)/2, f'Δy = {y2-y1}', fontsize=12, 
        ha='left', color='red', fontweight='bold')

ax.grid(True, alpha=0.3)
ax.set_xlim(0, 7)
ax.set_ylim(0, 10)
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('y', fontsize=14)
ax.set_title(f'计算斜率:m = Δy/Δx = {y2-y1}/{x2-x1} = {slope}', 
             fontsize=14, fontweight='bold')
ax.legend(fontsize=12)
ax.axhline(y=0, color='k', linestyle='-', alpha=0.2)
ax.axvline(x=0, color='k', linestyle='-', alpha=0.2)

plt.tight_layout()
plt.show()

例子 2:计算通过点 (-1, 4) 和 (3, -2) 的直线的斜率

步骤

  1. $(x_1, y_1) = (-1, 4)$,$(x_2, y_2) = (3, -2)$
  2. $\Delta y = -2 - 4 = -6$
  3. $\Delta x = 3 - (-1) = 4$
  4. $m = \frac{-6}{4} = -\frac{3}{2} = -1.5$

答案:斜率 = -1.5

解释:这是负斜率,每向右移动 1 个单位,y 值减少 1.5 个单位(向下倾斜)。

2.3 注意事项

1. 点的顺序不影响结果

无论选择哪个点作为 $(x_1, y_1)$,结果都一样:

$$m = \frac{y_2 - y_1}{x_2 - x_1} = \frac{y_1 - y_2}{x_1 - x_2}$$

2. 避免除以零

如果 $x_1 = x_2$(两个点的 x 坐标相同),则直线是垂直的,斜率未定义

3. 简化分数

斜率通常表示为最简分数或小数:

  • $\frac{6}{3} = 2$
  • $\frac{4}{8} = \frac{1}{2} = 0.5$

第三部分:斜率的几何意义

3.1 斜率与角度

斜率越大,直线越陡,与水平线的夹角越大。

类比

  • 斜率 = 0:完全水平(0度)
  • 斜率 = 1:45度角
  • 斜率 → ∞:接近垂直(90度)

让我们可视化斜率与角度的关系:

import numpy as np
import matplotlib.pyplot as plt
import math

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

fig, axes = plt.subplots(2, 3, figsize=(15, 10))

x = np.linspace(0, 5, 100)
slopes = [0, 0.5, 1, 2, -1, -2]
titles = ['斜率 = 0 (水平)', '斜率 = 0.5 (平缓)', '斜率 = 1 (45度)', 
          '斜率 = 2 (陡峭)', '斜率 = -1 (下坡)', '斜率 = -2 (陡峭下坡)']

for i, (slope, title) in enumerate(zip(slopes, titles)):
    row = i // 3
    col = i % 3
    y = slope * x
    
    axes[row, col].plot(x, y, 'b-', linewidth=3)
    axes[row, col].grid(True, alpha=0.3)
    axes[row, col].set_title(title, fontsize=11, fontweight='bold')
    axes[row, col].set_xlabel('x', fontsize=10)
    axes[row, col].set_ylabel('y', fontsize=10)
    axes[row, col].set_xlim(0, 5)
    axes[row, col].set_ylim(-5, 5)
    axes[row, col].axhline(y=0, color='k', linestyle='--', alpha=0.3)
    axes[row, col].axvline(x=0, color='k', linestyle='--', alpha=0.3)
    
    # 标注角度(对于正斜率)
    if slope > 0:
        angle = math.degrees(math.atan(slope))
        axes[row, col].text(2.5, slope*2.5 + 0.3, f'角度 ≈ {angle:.1f}°', 
                           fontsize=10, ha='center', 
                           bbox=dict(boxstyle='round', facecolor='yellow', alpha=0.5))
    elif slope < 0:
        angle = math.degrees(math.atan(slope))
        axes[row, col].text(2.5, slope*2.5 - 0.5, f'角度 ≈ {angle:.1f}°', 
                           fontsize=10, ha='center',
                           bbox=dict(boxstyle='round', facecolor='yellow', alpha=0.5))

plt.suptitle('不同斜率对应的角度', fontsize=16, fontweight='bold')
plt.tight_layout()
plt.show()

3.2 斜率与函数图像

对于线性函数 $y = mx + b$:

  • $m$ = 斜率
  • $b$ = y 轴截距(当 x = 0 时,y 的值)

类比

  • 斜率 m:决定直线的"陡峭程度"和"方向"
  • 截距 b:决定直线在 y 轴上的"起始位置"

让我们可视化不同斜率和截距的影响:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-5, 5, 100)

fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# 固定截距,改变斜率
b = 1
slopes = [0.5, 1, 2, -0.5, -1, -2]
colors = ['blue', 'green', 'red', 'orange', 'purple', 'brown']

for slope, color in zip(slopes, colors):
    y = slope * x + b
    axes[0].plot(x, y, linewidth=2, label=f'斜率 = {slope}', color=color)

axes[0].grid(True, alpha=0.3)
axes[0].set_title('固定截距 b=1,改变斜率', fontsize=12, fontweight='bold')
axes[0].set_xlabel('x', fontsize=11)
axes[0].set_ylabel('y', fontsize=11)
axes[0].legend(fontsize=9, loc='best')
axes[0].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[0].axvline(x=0, color='k', linestyle='--', alpha=0.3)
axes[0].set_xlim(-5, 5)
axes[0].set_ylim(-5, 5)

# 固定斜率,改变截距
m = 1
intercepts = [-2, -1, 0, 1, 2]
colors2 = ['blue', 'green', 'red', 'orange', 'purple']

for b, color in zip(intercepts, colors2):
    y = m * x + b
    axes[1].plot(x, y, linewidth=2, label=f'截距 b = {b}', color=color)

axes[1].grid(True, alpha=0.3)
axes[1].set_title('固定斜率 m=1,改变截距', fontsize=12, fontweight='bold')
axes[1].set_xlabel('x', fontsize=11)
axes[1].set_ylabel('y', fontsize=11)
axes[1].legend(fontsize=9, loc='best')
axes[1].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[1].axvline(x=0, color='k', linestyle='--', alpha=0.3)
axes[1].set_xlim(-5, 5)
axes[1].set_ylim(-5, 5)

plt.suptitle('斜率与截距对直线的影响', fontsize=16, fontweight='bold')
plt.tight_layout()
plt.show()

第四部分:不同类型的斜率

4.1 正斜率

特点

  • 从左到右,y 值增加
  • 直线向上倾斜
  • 斜率 > 0

例子

  • 收入增长:时间增加,收入增加
  • 温度上升:时间增加,温度上升
  • 距离增加:时间增加,距离增加

4.2 负斜率

特点

  • 从左到右,y 值减少
  • 直线向下倾斜
  • 斜率 < 0

例子

  • 价格下降:时间增加,价格下降
  • 温度下降:时间增加,温度下降
  • 库存减少:时间增加,库存减少

4.3 零斜率

特点

  • y 值保持不变
  • 水平线
  • 斜率 = 0

例子

  • 固定工资:无论工作多久,工资不变
  • 恒定速度:无论时间多久,速度不变
  • 固定价格:无论时间多久,价格不变

4.4 未定义斜率(垂直)

特点

  • x 值保持不变
  • 垂直线
  • 斜率未定义(或说无穷大)

例子

  • 固定位置:无论高度如何,x 坐标不变
  • 垂直墙:无论高度如何,水平位置不变

让我们综合展示所有类型的斜率:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-3, 3, 100)

fig, ax = plt.subplots(figsize=(10, 8))

# 正斜率
y1 = 2*x + 1
ax.plot(x, y1, 'g-', linewidth=3, label='正斜率 = 2(向上倾斜)')

# 负斜率
y2 = -2*x + 1
ax.plot(x, y2, 'r-', linewidth=3, label='负斜率 = -2(向下倾斜)')

# 零斜率
y3 = np.full_like(x, 2)
ax.plot(x, y3, 'b-', linewidth=3, label='零斜率 = 0(水平线)')

# 未定义斜率(垂直)
x_vertical = np.full_like(np.linspace(-3, 3, 100), 0)
y_vertical = np.linspace(-3, 3, 100)
ax.plot(x_vertical, y_vertical, 'm-', linewidth=3, label='未定义斜率(垂直线)')

ax.grid(True, alpha=0.3)
ax.set_xlim(-3, 3)
ax.set_ylim(-3, 3)
ax.set_xlabel('x', fontsize=12)
ax.set_ylabel('y', fontsize=12)
ax.set_title('所有类型的斜率', fontsize=14, fontweight='bold')
ax.legend(fontsize=11, loc='best')
ax.axhline(y=0, color='k', linestyle='-', alpha=0.3)
ax.axvline(x=0, color='k', linestyle='-', alpha=0.3)

plt.tight_layout()
plt.show()

第五部分:斜率在实际中的应用

5.1 速度与斜率

物理意义:在位置-时间图中,斜率表示速度

例子:汽车行驶

  • 位置函数:$s(t) = 60t$(t 是时间,s 是位置)
  • 斜率 = 60(速度 = 60 km/h)
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

t = np.linspace(0, 5, 100)
s = 60 * t  # 位置 = 速度 × 时间

fig, ax = plt.subplots(figsize=(10, 6))

ax.plot(t, s, 'b-', linewidth=3, label='位置 s(t) = 60t')
ax.grid(True, alpha=0.3)
ax.set_xlabel('时间 t (小时)', fontsize=12)
ax.set_ylabel('位置 s (公里)', fontsize=12)
ax.set_title('位置-时间图:斜率 = 速度 = 60 km/h', fontsize=14, fontweight='bold')
ax.legend(fontsize=12)

# 标注斜率
ax.annotate('斜率 = 60 km/h', (2.5, 150), fontsize=12,
            bbox=dict(boxstyle='round', facecolor='yellow', alpha=0.5))

plt.tight_layout()
plt.show()

5.2 成本与斜率

经济意义:在成本-数量图中,斜率表示单位成本

例子:生产产品

  • 总成本 = 固定成本 + 单位成本 × 数量
  • $C(x) = 1000 + 50x$(1000 是固定成本,50 是单位成本)
  • 斜率 = 50(每生产一个产品,成本增加 50)
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(0, 100, 100)
C = 1000 + 50 * x  # 总成本

fig, ax = plt.subplots(figsize=(10, 6))

ax.plot(x, C, 'g-', linewidth=3, label='总成本 C(x) = 1000 + 50x')
ax.grid(True, alpha=0.3)
ax.set_xlabel('数量 x', fontsize=12)
ax.set_ylabel('总成本 C (元)', fontsize=12)
ax.set_title('成本-数量图:斜率 = 单位成本 = 50 元/个', fontsize=14, fontweight='bold')
ax.legend(fontsize=12)

# 标注
ax.plot(0, 1000, 'ro', markersize=10, label='固定成本 = 1000')
ax.annotate('固定成本 = 1000', (0, 1000), xytext=(20, 50), 
            textcoords='offset points', fontsize=11,
            bbox=dict(boxstyle='round', facecolor='yellow', alpha=0.5))
ax.annotate('斜率 = 50 元/个', (50, 3500), fontsize=12,
            bbox=dict(boxstyle='round', facecolor='lightblue', alpha=0.5))

plt.tight_layout()
plt.show()

5.3 温度变化与斜率

气象意义:在温度-时间图中,斜率表示温度变化率

例子:一天中的温度变化

  • 早上到中午:温度上升,正斜率
  • 中午到晚上:温度下降,负斜率
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False

# 模拟一天的温度变化
hours = np.array([6, 9, 12, 15, 18, 21, 24])
temps = np.array([10, 15, 25, 28, 22, 18, 15])

fig, ax = plt.subplots(figsize=(12, 6))

ax.plot(hours, temps, 'b-o', linewidth=2, markersize=8, label='温度变化')
ax.grid(True, alpha=0.3)
ax.set_xlabel('时间 (小时)', fontsize=12)
ax.set_ylabel('温度 (°C)', fontsize=12)
ax.set_title('一天中的温度变化:斜率表示温度变化率', fontsize=14, fontweight='bold')
ax.legend(fontsize=12)

# 标注不同时段的斜率
# 早上到中午(6点到12点)
slope_morning = (temps[2] - temps[0]) / (hours[2] - hours[0])
ax.annotate(f'上升斜率 ≈ {slope_morning:.1f}°C/小时', 
            (9, 20), fontsize=11,
            bbox=dict(boxstyle='round', facecolor='lightgreen', alpha=0.5))

# 中午到晚上(12点到21点)
slope_afternoon = (temps[4] - temps[2]) / (hours[4] - hours[2])
ax.annotate(f'下降斜率 ≈ {slope_afternoon:.1f}°C/小时', 
            (15, 25), fontsize=11,
            bbox=dict(boxstyle='round', facecolor='lightcoral', alpha=0.5))

plt.tight_layout()
plt.show()

5.4 斜率与变化率

一般意义:斜率表示变化率——某个量相对于另一个量的变化速度。

类比

  • 位置-时间:斜率 = 速度
  • 成本-数量:斜率 = 单位成本
  • 温度-时间:斜率 = 温度变化率
  • 价格-时间:斜率 = 价格变化率

总结与回顾

核心概念

  1. 斜率的定义
    $$m = \frac{\Delta y}{\Delta x} = \frac{y_2 - y_1}{x_2 - x_1}$$

  2. 斜率的类型

    • 正斜率:向上倾斜(m > 0)
    • 负斜率:向下倾斜(m < 0)
    • 零斜率:水平线(m = 0)
    • 未定义斜率:垂直线
  3. 斜率的几何意义

    • 描述直线的"陡峭程度"
    • 表示与水平线的夹角大小
  4. 斜率的实际意义

    • 表示变化率
    • 在位置-时间图中 = 速度
    • 在成本-数量图中 = 单位成本
    • 在温度-时间图中 = 温度变化率

计算步骤

  1. 确定两个点:$(x_1, y_1)$ 和 $(x_2, y_2)$
  2. 计算垂直变化:$\Delta y = y_2 - y_1$
  3. 计算水平变化:$\Delta x = x_2 - x_1$
  4. 计算斜率:$m = \frac{\Delta y}{\Delta x}$
  5. 简化结果:约分到最简形式

记忆技巧

  • "上升除以前进":垂直变化除以水平变化
  • "y的变化除以x的变化"
  • 正斜率 = 上坡,负斜率 = 下坡

常见错误

  1. 点的顺序:虽然不影响结果,但要保持一致性
  2. 除以零:如果 $\Delta x = 0$,斜率未定义(垂直线)
  3. 符号错误:注意正负号,负斜率表示下降

下一步学习

掌握了斜率后,你可以:

  • 学习线性函数:$y = mx + b$
  • 学习导数:曲线的斜率
  • 学习切线:曲线在某点的斜率
  • 学习变化率:更一般的变化率概念

评论