2024美赛数学建模C题:网球比赛中的动量,用马尔可夫链求解!详细分析

文末获取历年美赛数学建模论文,交流思路模型

接下来讲解马尔可夫链在2024年C题中的运用

1. 马尔科夫链的基本原理

马尔科夫链 是描述随机过程的一种数学模型,其核心特征是无记忆性

简单来说,系统在某一时刻的状态只取决于当前状态,而与之前的状态无关。

3. 为什么选择马尔科夫链分析网球比赛?

网球比赛中,每次得分可以视为一个随机事件,其得分结果由当前比赛状态决定:

  • 无记忆性:下一分的得分结果不依赖于之前的比分序列。
  • 有限状态:比赛的得分范围有限(如 (0,0)(0,0)(0,0) 到 (4,4)(4,4)(4,4))。
  • 动态变化:每次得分改变比分状态,符合状态转移的特征。

因此,马尔科夫链是分析比赛动量效应及胜率分布的理想工具。

python 复制代码
import numpy as np

# 定义基本参数
max_points = 4  # 一局比赛获胜需要的分数
p_A = 0.6  # 球员A基本得分概率
p_B = 0.4  # 球员B基本得分概率
momentum_factor = 0.1  # 动量因子

# 状态总数:得分从 (0, 0) 到 (max_points, max_points)
num_states = (max_points + 1) * (max_points + 1)

# 初始化转移矩阵
P = np.zeros((num_states, num_states))

# 定义状态索引函数
def state_index(a, b):
    return a * (max_points + 1) + b

# 构建转移矩阵
for a in range(max_points + 1):
    for b in range(max_points + 1):
        current_state = state_index(a, b)
        
        # 检查吸收状态
        if a == max_points or b == max_points:
            P[current_state, current_state] = 1
            continue
        
        # 正常转移状态
        # 动量调整得分概率
        prob_A = p_A + (momentum_factor if a > b else 0)
        prob_B = p_B + (momentum_factor if b > a else 0)
        prob_A, prob_B = prob_A / (prob_A + prob_B), prob_B / (prob_A + prob_B)
        
        # A得分
        next_state_A = state_index(a + 1, b)
        P[current_state, next_state_A] = prob_A
        
        # B得分
        next_state_B = state_index(a, b + 1)
        P[current_state, next_state_B] = prob_B

# 初始状态分布
initial_state = np.zeros(num_states)
initial_state[state_index(0, 0)] = 1

# 模拟比赛
steps = 50
state_distribution = initial_state
for _ in range(steps):
    state_distribution = np.dot(state_distribution, P)

# 提取最终吸收状态的概率
absorption_probabilities = state_distribution.reshape((max_points + 1, max_points + 1))
print("吸收状态概率分布:")
print(absorption_probabilities)
相关推荐
MoRanzhi120316 小时前
12. Pandas 数据合并与拼接(concat 与 merge)
数据库·人工智能·python·数学建模·矩阵·数据分析·pandas
MoRanzhi12031 天前
11. Pandas 数据分类与区间分组(cut 与 qcut)
人工智能·python·机器学习·数学建模·分类·数据挖掘·pandas
Vizio<1 天前
ERT中正问题和逆问题的传统数学推导
学习·数学建模·机器人·触觉传感器
民乐团扒谱机3 天前
PCA 主成分分析:数据世界的 “旅行清单整理师”—— 从 30 维杂乱到 2 维清晰的诗意降维
大数据·数学建模·matlab·pca·主成分分析·数据处理·降维
nju_spy4 天前
2023 美赛C Predicting Wordle Results(上)
人工智能·机器学习·数学建模·数据挖掘·arima·时间序列预测·相关性分析
数模加油站5 天前
最新R(4.4.1)及R-studio保姆级安装配置详细教程及常见问题解答
开发语言·windows·数学建模·r语言
赤壁淘沙7 天前
机器人控制利器:MPC入门与实践解析
数学建模·机器人
less is more_09307 天前
风力发电机输出功率模型综述
笔记·学习·数学建模
铅笔侠_小龙虾8 天前
数学-绝对值(二)
数学建模
统计学小王子10 天前
数模之路获奖总结——数据分析交流(R语言)
数学建模·数据挖掘·数据分析·r语言