TIP本文面向零编程、零论文、有数模基础人群,但你必须会基本的电脑操作,最好还自己弄过盗版资源和破解流程。
有数模基础指至少参加、完整走过流程并成功提交过一次的选手。本工作流通过脚本和AI自动化了很多内容,如果你完全不会手动进行这些过程的步骤,请谨慎使用,出问题不保修。
如果你有编程或论文基础,这个工作流会让你更加高效。
本文重点面向弱校一带二或零队友人群,需要你有较强的自学能力。
数学建模是一个团队比赛。一般来说,比起传统的”建模手/编程手/论文手”配置的表面工程多线程,有效的团队都是三人一起讨论建模、一起编程、一起同步写论文的。
当然我几乎没体验过这一点,上面的说法只是国赛大神们的自述与我的想法契合的部分而已。我今天要介绍的工作流是一个纯Solo、能稳定拿出有或无创新论文论文、基于便宜的dsv4、开销30R以内的工作流。适合我这样的二本臭上进拿来自救。
必须学习的东西
1. 数学模型本身
理解基本数学模型是创新的基础,也是看懂ai出的图的基础。对模型的了解直接决定你能否做出合适的创新。
2. Markdown格式
这是生成式AI最常用的回复格式,它可以让AI改论文时大幅减轻上下文负担。
这是一种与Office Word(可视化型)和LaTeX(基本是一个自足的排版系统)完全不属于同一分支的富文本格式,严格来说它属于第三个分支:HTML分支。虽然HTML已经够简单了,但Markdown在此之上还要更加简单。关于Markdown的语法网上已有巨量成熟教程且学习基本不超过5min,此处不再赘述。
基本工具链
1. Trae
官方网站,记得无需特地下载国际版。总之下国内版最省心。
类似Cursor地,这本质上是一个AI辅助代码编辑器。这将是我们的主力战场。

TIP如果你从来没碰过代码项目或者Trae或类似AI代码编辑器,这里有一些废话:
- 代码项目都基于一个文件夹,编辑代码后都需要通过
Ctrl+S保存,文件名后面的小白点指示了文件是否被动过。- IDE指集成开发环境,环境里有你能看到的文件展示区、编辑区等。Trae这类则是集成了AI的超级环境,在这个软件内,AI可以按需阅读所有他想看的文件(而无需手动复制给他),大幅提高效率,同时它还能自动运行代码、然后自己处理自己代码中和代码外无法运行的问题等。
- Trae是基于VSCode开发的,继承VSCode插件体系,你可以添加包括Python插件在内的一系列插件提升使用体验,需要什么功能可以问问它。
- Trae提供的Auto模型效果很差,高级模型通常需要等待,故此强烈建议添加自己的Deepseek API。 Deepseek V4是截止本文目前最便宜而能用的大模型(基于截止2026/05/31的2.5折),也是此工作流中唯一的付费节点。建议使用V4 Pro,没贵多少、但是为此强一点确实有必要。
- 你可以点击此处前往DeepSeek开放平台注册充值获取。
添加自有API Key避免等待 完成效果
- Skill,指成一套的被压缩的提示词和脚本,AI能获取Skill的一小部分介绍并自行考量使用与否。当AI真的需要使用Skill中的流程时,它会自行获取Skill中的提示词、执行Skill中的代码。
工作区文件夹包含我们所有获得和途中收集、生成、需要记录的题目、思路、代码、图、论文等。它们分别在不同的文件夹里,形成一套规范,这套规范由AI遵守,避免混乱。
我配置了两个skill:
- OpenAlex文献检索:自动定位相关论文,搜集引用所需信息。
- 数学建模主技能:贯穿所有阶段的流水线。
这两个skill我会放在.trae下,它默认好像是会自动读取来着。
2. Typora
Typora是一个Markdown编辑器,它最大的特点是可以将Markdown文章直接渲染成PDF,而且还支持自定义主题,甚至将自定义主题渲染出来。
我基于某一开源主题自改了一版用于数模论文的主题,可以直接预览论文格式。由于年代久远(一年多吧),原库难以检索,如有线索欢迎回复,我会积极遵循原库的License重新发布。
注意,Typora是一个付费软件。本站不提供任何关于破解软件的服务。
3. 辅助工具
-
Cherry Studio:分担零碎任务,比如查证某个知识点、写一条 Excel 公式。专门设了一个技能,用来快速生成X-Mouse Button Control的配置宏
-
个人实验室站点:这是我自建的一个小工具站,其中最常用的是剪贴板检查器,解决从Excel复制数据时出现的各种不可见字符问题。
-
X-Mouse Button Control:极其强大的鼠标宏工具,带有详尽的文档(英语的)和屏幕位置获取器。其最大优势在于宏可以通过代码描述。通过AI技能生成宏代码,那么对于某些难以自动化的重复性桌面操作(如Office下的重复型任务)也能全效工作。
工作区
项目根目录下,我强制划分了这几个文件夹,杜绝最终版_改3_真的最终版 (4).docx问题。
project-root/├─ doc/ # [不变] 给AI看的分阶段任务说明├─ utils/ # [不变] 工具脚本与样式├─ ques/ # [不改] 原始问题描述├─ cit/ # [不改] 下载的论文、原始数据集├─ code/ # 所有探索性代码与中间数据,不进入正式论文│ ├─ raw/ # 探索阶段的 .py 文件,命名可随意如q1_v1.py│ └─ q1/... # 最终冻结后的拆分代码,日后会直接进入论文附录│ └─ img/ # 代码产出的图片目录,会直接用于论文正文├─ text/ # 一切过程文本:分析、草稿、半成品、成品论文│ ├─ raw/ # 模型分析与求解过程记录│ ├─ paper/ # 生成论文的各个章节块及合并文件│ ├─ appendix/ # 额外的附录,可以无│ └─ frozen/ # 生成拼接好的Markdown形式论文和完整附录└─ frozen/ # 脚本会自动在此文件夹中创建打包好的论文,参考资料,md5信息- doc, utils: 该文件夹存储一些执行文档以供AI阅读、一些工具代码以供AI使用。作为工作区的初始资源不变地存在。
- ques, cit: ques存放题目原文件、提取的题目原文.md、原始附件等原始题目信息,不能跑题这件事是很重要的。cit存放引用的原数据、原论文,很多赛参考资料要求一起打包。
- code: 所有题没有敲定方案(也就是没完全确定论文里要写什么)之前都要在
code/raw/里写代码。这里可以让ai随意造次,反正最后也是它收拾。在敲定任一道题的方案后,我们可以让AI确定、提取最终的代码到code/qX/中,不要其他无关的代码。这里的代码应当是能跑通的最小代码。同时,这个文件夹也锁定的图。这个文件夹应当有数个最小代码和数个画图代码。画图代码以q*_draw_*py命名,这个规范使得画图代码不会流入论文正文。脚本会提取code/qX/中的代码作为最终论文的一部分。 - text: 所有题没有敲定方案之前,依旧要在
text/raw中进行结果的记录、思路的分析等。这包括之前都做过什么,结果如何。有助于敲定论文中对照分析的对象,也能让我们能看到它的模型思路。在text/paper中存在多个d_xxx.md,其中d是一个数字,表示该段落是论文的第几部分。这个数字可以但不建议使用小数,只有在临时起意插入段落且不想逐个重命名时可以启用,如4.5_敏感性分析.md。
没搞懂?直接看流水线就完了↓
流水线
阶段一:宏观建模
你需要读题、讨论整道题目的类型、方案等。这个过程中记录大体的模型选型、可能性等。
对话例
[用户]
继续。问题3要求预测人口数量变化。预测函数首先要有函数。一个标准的人口拟合模型需要在问题2建立。大体上是人口=f(时间,*地区特性,*实行政策)。人口这个东西显然有很大惯性,我很想用微分方程去做这个事,但弄不好就会弄巧成拙。次选是决策树,决策树处理政策的0-1是比较好的。复合模型的话也可以用,但那样决策树可能要高度人工干预,不太纯,主观。最好今天能决定一个方向。基于问题1的分类,问题2要服务于问题3,问题4的预测模型实际上是问题3中预测模型针对政策的敏感性分析。各个政策作为参数恐怕不好。我认为实际上可以按政策深度分类。事实上,政策的实行和按指标的分类是有必然共同趋势的,所以问题一有一个必然优秀的解是基于基本指标,与当时实行的政策分类相同。
[AI]
你的思考越来越深入了。我来帮你系统梳理一下你提出的几个关键决策点:
- 人口模型的函数形式
……
- 无政策 = 去掉政策影响项,仅保留自然趋势
……
你提到的几个方向,我帮你对比一下:
模型方向 优势 风险 适合程度 微分方程(如Leslie矩阵) 符合人口惯性特征,年龄结构自然纳入 政策变量难以嵌入,处理0-1政策变量不自然 ⭐⭐⭐ ……
| 结构化的差分方程模型 | 结合人口学经典方法,可嵌入政策参数 | 需要合理设定参数形式 | ⭐⭐⭐⭐⭐ |
……
结构化人口模型(差分方程/Leslie矩阵) + 政策参数调制,理由如下:
- 人口惯性是天然的一阶/二阶差分结构,微分/差分方程最自然
- Leslie矩阵能天然处理年龄结构,而年龄结构是人口预测的核心
- 政策可以作为矩阵元素的调制参数——比如生育政策影响出生率(矩阵第一行),教育/医疗政策影响存活率(矩阵对角线)
- 这样问题4的”有/无政策”就是开关调制参数,非常直观 你觉得这个方向怎么样?还是你更倾向于坚持微分方程的思路?
[用户]
你这个选型好,我基于你这个选型说……
那么现在所有问题的分析都差不多了。我们需要通过找出区域的一些特征进行分类完成问题1,题目指明了要“地区人口、人口性别、年龄、受教育情况、城乡人口和流动人口”。并且“基于第四次至第七次全国人口普查的主要数据”。我们选择的参数最好要能直接与人口的y,y’甚至y”相关。
……
决定一个城市发展速度的参数很多,但中国有大量城市……这反而造就了不界限分明的边界……
另外提一嘴,我不知道能不能进行类别状态机的构造,以此去拟合一些……
不包括整理数据,这个阶段的耗时一般在3小时左右。注意这时候的第一要事是读懂题目并分类,找到题目描述的矛盾点,假设等。
阶段二:逐个击破
初始模型设计
让AI建立模型描述和数学逻辑
针对每个子问题(或数据预处理),让AI给出具体的模型建立计划,记录为text/raw/问题一的建模与求解.md(或数据预处理.md,类似的文件)。不需要论文格式,只管把数学逻辑、计算步骤讲清楚。
TIP如果你是模型高手,希望奖项拿高一点,你可以人工审视并注入“创新点”,或者干脆甩给他一篇非常新的优化方法、评价方法的论文。AI提出的模型往往中规中矩,日后的AI建模大赛,差异几乎都来自你的灵机一动。
这个步骤的结果最好人工审视一遍,因为它可能会在模型中使用一些拍脑袋参数或者子虚乌有的数据,然后你要让它改。改成超参数优化(某种参数搜索)或者查能引用的论文说明,抑或是直接就问它这是什么。但要注意,有些东西确实需要在跑出来之后才能继续改进。
探索性代码实现
让AI根据计划生成初步代码,画出图,解释模型输出。
这个阶段,AI可以生成读取、数据处理、求解计算画图一体的、混乱不堪的代码,为的就是生成几张效果图给你看。你来评估这个模型得到的结果怎么样,然后挥鞭子让AI重做或者接受结果。
实际上这个阶段依旧可以修改模型,不如说有时候只有跑出结果、看到大体数据分布之后才能知道调整方向。
代码统一放在code/raw/q*_xxx.py,随时覆盖、随时重试。同时更新text/raw/*.md,记录所有模型、求解方法的结果,把所有关键数据、图表解释一并写入,形成一份“带数据的草稿”。
这个阶段的代码是混沌的,允许冗余、调试痕迹,目的只为快速试错。
TIP在去年(2025),国内AI也不可能一次一个错不出地将代码全部写完,而今年上半年金模型频出,几乎可以完整排除不会代码的问题了。
(Python白学了.jpg)Deepseek V4 Pro的代码能力足够强,以至于它可以自己完整地完成代码——模型的无缝互转工作,甚至和用户直接在模型层面上交流。
当然前提是你知道它要做的是什么模型。一定要问清楚,还要自己搞清楚。除非你能读懂代码,代码永远是最清楚的。
对话例
[AI]
……
最重要结论(对 Q3 的指向)
四类的因子作用模式完全不同——验证了我们不该用同一个模型拟合全中国:
- 主流组:GDP 和老龄化是正负两极,标准经济-人口模型
- 京沪组:生育端彻底熄火,全靠迁移,且出现天花板效应——Q3 需要饱和机制
- 广东组:青年移民持续稀释老龄化,大专+比的负增量说明产业工人为主——Q3 需要强化迁移项
- 西藏组:高自然增长率主导,老龄化压力最小——Q3 需保留高基出生率
图已保存到
img/下,你看看有没有需要调整的。要不要接着看 Q3?
[用户]
出生效应和迁移效应是算出来的?是否需要添加真实数据
[AI]
问得好。坦白说—— 目前的出生效应是估算的,不是真实数据 。
让我看看原始附件里有没有出生/死亡数据可以用。
……
(后面我手动去整理了数据。)
结果结晶
当某个问题的结果令人满意,便进入沉淀环节。接下来由AI自行完成一个比较长的工作流。不出所料的话,对于每个小问做完这个你就该换对话清空上下文了。
AI会根据之前积累出来的模型记录、真实模型代码、画图代码、结论和数据结果,整理成三种文件:
-
提取模型本身的代码(模型代码)
- 在
code/中创建q1/目录,创建洗净的模型代码code/q*/q*_model_*.py。这些代码不含弯路和不必要的注释,可执行最小化,将所有要为图服务的数据单独导出为.csv、.npy等文件。这些代码执行纯粹计算。
- 在
-
提取模型本身的画图代码(画图代码)
- 在
code/q1中创建洗净的图代码code/q*/q*_img_*.py。这些代码只使用模型代码所创建的。这些图的代码占比过于大且并不核心,不会被放入论文,但是会用于生成最终稿的图片。
- 在
-
创建小问小结文件
-
根据最终真实的模型和图配置、呈现(图里显示了什么有时可能需要你来描述),修正
text/raw/*.md中的模型表述,并附上对结果的详尽解释。 -
这份文件将成为它后续撰写完整论文的第一手成果总结,因此需要绝对完整,不仅要有模型的数学推导,还包括比如本次小问解决的所有产出文件、图列表解释等。这个小问至此就算解决了。
-
阶段三:完成论文
这是最能体现AI工作流魔力的阶段。我们调用预先写好的skill,让AI按固定流程执行:
- 根据已有成果设计论文的章节分段预设。如
问题重述+问题分析+模型假设+符号说明+问题一模型的建立与求解+问题二模型的建立与求解+问题三模型的建立与求解+问题四模型的建立与求解+问题五模型的建立与求解+模型优缺点+参考文献。这就是一个很标准的章节分布。我放弃了将所有问题放入同一个大章节(5.1问题一, 5.2问题二这样),因为分成多个大章节比较方便工作流。 - 整理所有引用到的文献,为这些文献预先编号,便于后续在各个内容小块中用数字进行引用。
- 按章节分段预设在
text/paper/下生成各章节的.md文件,文件名带有数字前缀,如1_问题重述.md、2_模型假设.md、3_问题一求解.md等。这一步由AI自行调度Trae的taskboard完成。每个小节的文件隔离是避免AI在长单次输出(如整篇论文)时主动缩减内容,不仅看起来单薄而且真的可能忽略重要的东西。ps:这个环节其实还可以优化成并行的。 - 运行第一次构建脚本。附录独立成一个
.md文件,和最大标题同级,避免Typora后续输出引用时把参考文献排到附录底部。这个过程完全由脚本完成。它机械地查找所有模型代码文件,读取。它还会添加text/appendix/下的每个文件(依旧但是是可选地使用/\d+_/开头命名,以保证顺序)作为额外附录(如大、长表)。自动编号后输出为text/frozen/Appendix.md。脚本还会将各章节的.md文件继续合并为text/frozen/Main.md。这就是两个你需要完整过目的文件了。
经过AI约一小时的苦战,现在你打开text/frozen/,看到两个完整整理好的论文。图片是经过路径修正的,一定是能引用到的。你需要另开一个文件,从头到尾检查整篇文章不合适的地方,然后进行记录。
NOTE一个经验之谈是在最终检查时,不要找一个错就改一个错,而是从头到尾把问题全部记下来之后再一一修改,避免solo时注意力和流程分崩离析的问题。
WARNING修改时需要找到
text/paper/下对应章节的原文进行修改,修改后需要重跑上述4.的脚本。切勿直接修改text/frozen/Main.md。
一般来说,你会遇到三类问题:
- 表述问题,如大量使用破折号
——、使用vs甚至「」导致的AI味。自己修改即可,无需浪费token - 图片问题,如文本遮挡、配色难以阅读、重复标题等。需要让AI修改源码中跑图的代码,重新生成图。一般最多就是改几行画图参数,也有大改的。如果能看懂代码,自己改也不是不行。
- 论文问题,如某章节中某个关键论述、关键结果、图表未能呈现?Solo工作流下手写论文实在有点费时费力,更何况原文还不是自己写的,此时就只能让AI返稿;能通读并识别出论文严重结构性问题的人只能有你,所以你才需要把上面每个小问的解决步骤、原理理清。这是证明论文原创的根本。
你也不想上台答辩就介绍我最好的朋友大D老师吧
NOTE终端是所有操作系统执行程序的主要入口。在Trae中,打开方式如图所示
终端可以理解为,敲一行命令,回车执行,的地方。理论上,终端可以执行除了打瓦以外所有你在电脑上通过鼠标执行的操作(
在终端执行
python utils/build.py以手动运行第一阶段构建。AI到时候也会这么做。当然前提是你已经安装了python。
阶段四:最终输出
前提:论文已没有任何问题。
- 你用手打开Typora,选择预设的主题文件将
Main.md和Appendix.md分别导出为Main.pdf和Appendix.pdf。原目录原样导出即可。 - 运行第二次构建脚本。脚本会将两个pdf合并。如果你的学校要求在电子版前面再添加页面,还可以添加额外的第三个
Prefix.pdf,脚本会自动识别。脚本还会自动添加连续页码,最终输出到frozen/[time]/我的论文.pdf。脚本还会将所有代码文件、原始数据集、引用论文等所有可能要塞进参考资料的文件打包放进我的参考资料.zip里。最后还会自动计算两个文件的md5,国赛会需要。当然不使用这个md5而是直接把文件拖进官方提交程序也是可以的。
frozen/└─20260510_1345/ ├─ 我的论文.pdf ├─ 我的参考资料.zip └─ md5.txtWARNING第二次构建脚本导出的结果是最终品论文。如果你再发现论文原文问题,你需要:
- 再修改论文的片段
- 运行第一次构建流程
- 使用Typora手动构建拼接版论文,可能还要构建附录
- 运行第二次构建流程 非常麻烦。所以尽可能在最后进行论文的构建。
最后
- 本文没提到Python虚拟环境,是为新手运行简单考虑。实际上我本人也不怎么用虚拟环境。只有真的用torch这种库,有必要的时候才会用uv去创建。能弄明白的尽量还是弄,第一次的话就先跑起来再说。
- 因为目前的工作流脚本有些问题,可能会过几天再开源,就先把这个文发了。要使用这个工作流,建议你先下载一个Git,方便fork仓库开箱即用。其次下载好Python,本工作流完全基于Python,日后若有matlab大佬相助,可能有支持的打算,但也还是会优先考虑AI集成。
- 文首提到的30R是基于优惠价格和个人使用经验确定的。至于这个优惠,Deepseek官方文档曾经提到:
随着昇腾950超节点在2026年下半年的批量上市,V4-Pro模型的价格会大幅下降。
希望下次国赛之前能端上来吧,不然可能就要顶着v4-flash做了。





