GitHub_Trending/bo/Book3_Elements-of-Mathematics教学案例:鸡兔同笼问题从算术到矩阵解法...

GitHub_Trending/bo/Book3_Elements-of-Mathematics教学案例:鸡兔同笼问题从算术到矩阵解法

【免费下载链接】Book3_Elements-of-Mathematics Book_3_《数学要素》 | 鸢尾花书:从加减乘除到机器学习;上架;欢迎继续纠错,纠错多的同学还会有赠书! 【免费下载链接】Book3_Elements-of-Mathematics 项目地址: https://gitcode.com/GitHub_Trending/bo/Book3_Elements-of-Mathematics

问题背景与教学价值

鸡兔同笼问题作为经典数学应用题,贯穿小学算术到大学线性代数的整个学习过程。本案例基于《数学要素》[Book3_Ch23_鸡兔同笼1__数学要素__从加减乘除到机器学习.pdf]、[Book3_Ch24_鸡兔同笼2__数学要素__从加减乘除到机器学习.pdf]和[Book3_Ch25_鸡兔同笼3__数学要素__从加减乘除到机器学习.pdf]三章内容,展示如何通过四种不同方法解决同一问题,帮助学习者理解数学思维的进阶过程。

问题定义

今有鸡兔同笼,上有35头,下有94足,问鸡兔各几何?这个问题可抽象为求解二元一次方程组:

  • 鸡数 + 兔数 = 35(头的数量)
  • 2×鸡数 + 4×兔数 = 94(脚的数量)

算术解法(适合小学阶段)

算术方法通过假设法将二元问题转化为一元问题,培养直观思维:

  1. 假设全是鸡,则应有脚 35×2=70只
  2. 实际多出 94-70=24只脚
  3. 每只兔子比鸡多2只脚,故兔子数=24÷2=12只
  4. 鸡数=35-12=23只

这种方法在[Book3_Ch23_Python_Codes/Bk3_Ch23_01.ipynb]的注释中有详细说明,适合理解基础数量关系。

代数解法(适合初中阶段)

引入未知数建立方程,体现符号化思维: 设鸡数为x,兔数为y,则:

x + y = 35  
2x + 4y = 94  

通过消元法解得x=23,y=12。代数解法在[Book3_Ch24_Python_Codes/Bk3_Ch24_01.ipynb]中与可视化结合,帮助理解方程求解过程。

矩阵解法(适合高中阶段)

将方程组表示为矩阵形式Ax=b,其中:

A = [[1, 1],  # 系数矩阵
     [2, 4]]
b = [[35],     # 常数项向量
     [94]]

通过矩阵求逆可得解x=A⁻¹b。在Python中实现如下:

import numpy as np
A = np.array([[1,1],[2,4]])
b = np.array([[35],[94]])
x = np.linalg.inv(A) @ b  # 矩阵求逆法
x_ = np.linalg.solve(A,b) # 直接求解法

两种方法均得到结果[[23.],[12.]],完整代码见[Book3_Ch23_Python_Codes/Bk3_Ch23_01.ipynb]。

符号计算与验证(适合大学阶段)

使用SymPy库进行符号推导,验证解的正确性:

from sympy import symbols, solve
x1, x2 = symbols(['x1', 'x2'])
sol = solve([x1 + x2 - 35, 2*x1 + 4*x2 - 94], [x1, x2])
# 输出 {x1: 23, x2: 12}

符号求解过程在[Book3_Ch23_Python_Codes/Bk3_Ch23_01.ipynb]中展示了如何通过计算机代数系统进行数学推理。

教学实验:数据拟合与模型验证

在[Book3_Ch24_Python_Codes/Bk3_Ch24_01.ipynb]中,通过生成模拟数据:

num_chickens = np.array([32, 110, 71, 79, 45, 20, 56, 55, 87, 68, 87, 63, 31, 88])
num_rabbits  = np.array([22, 53, 39, 40, 25, 15, 34, 34, 52 , 41, 43, 33, 24, 52])

使用最小二乘法拟合兔子数量与鸡数量的线性关系,得到回归方程y=0.5x+0.3,进一步验证了鸡兔数量的线性关系模型。

马尔可夫链扩展(进阶应用)

[Book3_Ch25_Python_Codes/Bk3_Ch25_01.ipynb]将问题扩展到动态系统,定义转移矩阵:

T = np.matrix([[0.7, 0.2],  # 状态转移概率
               [0.3, 0.8]])
pi_i = np.matrix([[0.6], [0.4]])  # 初始状态分布
pi_i_1 = T @ pi_i  # 下一状态计算

通过矩阵乘法演示系统状态的演化过程,展示了线性代数在概率模型中的应用。

教学资源与进一步学习

  • 基础解法代码:[Book3_Ch23_Python_Codes/Bk3_Ch23_01.ipynb]
  • 数据拟合实验:[Book3_Ch24_Python_Codes/Bk3_Ch24_01.ipynb]
  • 矩阵应用扩展:[Book3_Ch25_Python_Codes/Bk3_Ch25_01.ipynb]
  • 理论讲解:[Book3_Ch23_鸡兔同笼1__数学要素__从加减乘除到机器学习.pdf]

本案例展示了同一个数学问题在不同学习阶段的解法,体现了从具体到抽象、从算术到代数的思维发展过程,建议学习者按顺序阅读相关章节并动手实践代码,深入理解数学思想的连贯性与递进性。

练习题与思考

  1. 尝试用消元法手动求解方程组,并与[Book3_Ch23_Python_Codes/Bk3_Ch23_01.ipynb]中的矩阵解法对比
  2. 修改[Book3_Ch24_Python_Codes/Bk3_Ch24_01.ipynb]中的数据,观察拟合结果的变化
  3. 在[Book3_Ch25_Python_Codes/Bk3_Ch25_01.ipynb]基础上,计算经过10次转移后的状态向量

通过这些练习,可以加深对线性代数核心概念的理解,为机器学习等高级应用打下基础。

【免费下载链接】Book3_Elements-of-Mathematics Book_3_《数学要素》 | 鸢尾花书:从加减乘除到机器学习;上架;欢迎继续纠错,纠错多的同学还会有赠书! 【免费下载链接】Book3_Elements-of-Mathematics 项目地址: https://gitcode.com/GitHub_Trending/bo/Book3_Elements-of-Mathematics

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值