avatar

Xiaojun Wu

Ph.D. Candidate, HKUST(GZ)
Affiliate LLM Researcher, IDEA Research
wuxiaojun@idea.edu.cn & wuxiaojun@pku.edu.cn & xwu647@connect.hkust-gz.edu.cn


Column

python数学建模实践

主要工具是 pyomo,常见的运筹、调度、控制问题的建模和求解。

Back to Blog
15 articles 在知乎查看专栏

Python 微分方程(六):参数不是猜出来的,怎么把数据拟合回方程里

阅读 知乎未公开 收藏 20 点赞 5

前几篇我们一直在做一类事:已知方程、已知初值、已知参数,往前算曲线。这一篇换个方向。如果题目只给你观测数据,不告诉你 beta、gamma 这些参数,你怎么把它们反推出来?先给一句人话答案:先用微分方程生成一条“猜的曲线”,再拿它和真实数据比差距,差距越小,参数越像真的。这就是参数识别,也可以理解成“把数据拟合回方程里”。这一节的 takeaway:微...

Read article

Python 微分方程(五):热量为什么会自己摊平?

阅读 知乎未公开 收藏 29 点赞 6

上一章我们看的是稳态问题:两头条件都给定,空间曲线怎么连起来。这一章再往前一步,把时间加回来。一根两头固定温度的热棒,为什么中间一块热斑会慢慢散开,最后整根棒都变平?先给一句人话答案:每个点都在和左右邻居交换热量,所以高的地方会往低的地方流。这就是热传导方程最核心的直觉。偏微分方程的英文是 partial differential equation,简...

Read article

Python 微分方程(四):边值问题,边界条件在两头时怎么办?

阅读 知乎未公开 收藏 2 点赞 2

前几篇我们一直在做一类题:给一个起点,往后推一条曲线。这一篇换一种更麻烦、也更常见的题:如果题目不是给你一个起点,而是把条件放在两头,你还怎么把中间那条曲线找出来?先给一句人话答案:这类题不能只从左边往右走,因为你走到右边以后还得刚好满足右端条件。这就是边值问题的核心。边值问题的英文是 boundary value problem,简称 BVP。先别急...

Read article

Python 微分方程(三):solve_ivp 到底怎样一步步算出 SIR 曲线

阅读 知乎未公开 收藏 9 点赞 0

前两篇我们都在用这一行:sol = solve_ivp(...)如果教程停在这里,读者会很容易产生一种感觉:我把方程交给一个函数,它把曲线吐出来;至于中间发生了什么,我只能相信它。这就是“概念墙”。这一篇专门拆这堵墙。我们不从数值分析术语开始,而从一个具体问题开始:SIR 模型里,如果只知道今天的 S、I、R,电脑怎么一步步估计明天、后天、再后面的状态...

Read article

Python 微分方程(二):SIR 传染病模型

阅读 知乎未公开 收藏 12 点赞 2

上一篇我们把一个单方程常微分方程跑通了。常微分方程的英文是 ordinary differential equation,简称 ODE。这一篇往前走一步:不只跟踪一个量,而是同时跟踪三类人。这一篇先问一个具体问题:为什么一场传播刚开始会扩散,但过一段时间感染者又会自己降下来?先给一句人话答案:感染者一边把易感者拉进感染桶,一边又有人康复离开感染桶;前者...

Read article

Python 微分方程(一):从 solve_ivp 开始

阅读 知乎未公开 收藏 26 点赞 6

运筹优化更像是在回答“怎么分配才最优”,微分方程更像是在回答“系统会怎么演化”。这两条线在数学建模里经常并排出现:一条处理决策,一条处理动态。这一篇先不碰复杂模型,只做一件事:假设药物进入身体后会按比例慢慢减少,怎么用 Python 算出接下来 10 小时的浓度曲线?这个问题足够小,但已经包含了微分方程建模的完整闭环:建模 - 求解 - 画图 - 解释...

Read article

数独问题的求解与可能的现实意义:以列车调度问题为例

阅读 知乎未公开 收藏 12 点赞 3

最近听说有朋友在做数独游戏,因此探索了一下这个游戏。找了下网上的内容基本都只强调数独游戏的益智性和对于孩子专注性的训练,难道这个数学游戏是不是和其他数学模型一样可以被应用于现实生活中(我认为这是很重要的,数学抽象于现实生活又能够应用于现实生活生产活动中,这就是数学建模的意义不是吗)?现实生活中有哪些问题可以被建模成数独模型吗?最终也是发现确实某些情况下...

Read article

python运筹优化(八):运输问题

阅读 知乎未公开 收藏 223 点赞 58

运输问题是一类特殊的线性规划问题,一般的运输问题就是要解决:把某种产品从若干个产地调运到若干个销地,在已知每个产地的供应量、每个销地的需求量、各地之间的运输单价的前提下,如何确定一个使得总的运输费用最小的方案。具体的数学模型和笔算求解可以参考中国大学MOOC上江西财经大学的运筹学课程。这个课程包含了运筹学要求掌握的所有问题,以及这些问题的单纯形法求解、...

Read article

python运筹优化(七):利用遗传算法为机器学习模型调参

阅读 知乎未公开 收藏 129 点赞 34

作为一名熟练的机器学习调包侠和调参侠,面临的一个很大的问题就是机器学习模型有很多超参数需要人工去调参,超参数的设置很大程度上影响着模型最后预测结果的好坏。特征工程和调参是机器学习算法运用中最耗费人工的2个部分。那么如何利用遗传算法进行把调参变得“高大上”呢?这其实已经触碰到了时下最火热的AutoML(自动化机器学习)的领域了:自动化调参,不需要人工。本...

Read article

python运筹优化(六):多变量规划问题geatpy实践

阅读 知乎未公开 收藏 89 点赞 34

上一篇我们使用pyomo对(啤酒混合策略、燃料设计策略、饮食营养策略)进行了建模求解,这一篇我们自己动手,把这三个问题改写为用遗传算法geatpy进行求解。其中饮食营养策略涉及比较复杂的数据结构,需要动手实践下才能好好理解geatpy的使用语法。特别指出的是,python里的高级数据类型:字典{},可以很方便地辅助我们进行多变量规划问题的建模,life...

Read article

python运筹优化(五):多变量规划问题pyomo实践

阅读 知乎未公开 收藏 118 点赞 29

我们之前都是每个决策变量比较少,可以很方便的写出来(比如只有x1,x2两个决策变量),但如果变量比较多(x1-xi,i是比较大的整数的情况下),也就是我们的目标函数和约束条件出现了连加符号∑的情况,我们的程序该怎么写呢?本篇以啤酒混合策略、寒冷天气混合燃料策略、饮食营养策略三个例子进行讲解。一、实践1:啤酒混合策略(Jenchura, 2017)1、问...

Read article

python运筹优化(四):对偶问题pyomo实践

阅读 知乎未公开 收藏 59 点赞 10

一、对偶问题1、经济含义考虑线性规划问题在这个最大化问题中,当资源i增加一个单位(即资源i的资源限量从bi增加到bi+1)而其他资源都不变时,所引起的目标函数最优值增加的量则称为资源i的影子价格(shadow price)。资源i的影子价格实际上就是资源i的边际利润。影子价格越大,说明这种资源相对紧缺;影子价格越小,说明这种资源相对不紧缺;如果最优生产...

Read article

python运筹优化(三):遗传算法和Geatpy使用实践

阅读 知乎未公开 收藏 321 点赞 105

这个专栏以工具实践为主,因此我们先讲进化算法工具包geatpy的使用。关于遗传算法的推导原理我们举一个最简单的袋鼠爬山的例子,然后看遗传算法从头到尾怎么“编码-计算适应度-选择淘汰-基因交叉-基因突变-不断进化” 的。一、geatpy框架Geatpy2整体上看由工具箱内核函数(内核层)和面向对象进化算法框架(框架层)两部分组成。其中面向对象进化算法框架...

Read article

python运筹优化(二):Pyomo使用简介

阅读 知乎未公开 收藏 174 点赞 50

一、概述Pyomo是一个基于python的开源软件包,它支持多种优化功能,用于制定和分析优化模型。Pyomo可用于定义符号问题、创建具体的问题实例,并使用标准解决程序解决这些实例。Pyomo支持多种问题类型,包括:线性规划二次规划非线性规划整数线性规划混合整数二次规划混合整数非线性规划整数随机规划广义分隔编程微分代数方程具有平衡约束的数学规划Pyomo...

Read article

python运筹优化(一):Cplex for python使用简介

阅读 知乎未公开 收藏 482 点赞 153

运筹学(OR)和优化模型包括线性规划(LP)、混合整数线性规划(MILP)和二次规划(QP)。一般我们使用LP/MILP包来单独建模一个实际的优化问题,例如GAMS、AMPL、OPL或其他,然后使用优化求解器(例如CPLEX、gu、Mosek、Xpress等)来解决它,并将最优结果提供给经理和决策者。在OR和数据科学社区中,许多人推荐使用Python这...

Read article

© 2025 Xiaojun Wu. All rights reserved. Powered by Jekyll and Minimal Light theme.