PhD Candidate · Computational Mathematics · University of South Carolina

Exploring Partial Differential Equations, Algorithms & Uncharted Ideas.

我是 Zhaoqing Xu——在 UofSC 读计算数学博士,同时担任本科生课程 Instructor。 白天为 PDE 设计保结构、保能量的离散格式;夜里写点算法之外的东西:随笔、七言、 以及羽毛球飞行轨迹里的空气动力学。这个页面同时容纳这两半——用右上角的 Mode 切换视角。 正式学术信息见 Academic Site ↗。

Based in
Columbia, SC · UTC−5
Focus
Numerical Analysis · PDEs · CFD
Teaching
Instructor of Record @ UofSC
Open to
合作 · 报告 · 咖啡
zx@uofsc : ~/numerics — zsh

➜ ~ whoami

computational mathematician / instructor / perpetual student

➜ ~ cat focus.now

Structure-Preserving Algorithms

➜ ~ python cfl_lab.py --scheme upwind

stable · ‖u‖∞ = 0.998 · energy preserved

status: solving branch main local --:--:--
  • 5essays
  • 12fragments
  • 6projects
  • 3methods
scroll

§ 01 / Research & Math — 严谨的那一半

学术空间

我的研究围绕数值分析展开:为偏微分方程设计高效且保结构的离散格式—— 让能量、辛结构、不可压约束这些连续世界的性质,在离散之后依然成立。

下方论文条目为占位模板,请替换为真实成果;完整列表见 www.zhaoqingxu.com ↗

  1. 2021.08 — 2027.05 current

    PhD in Computational Mathematics

    University of South Carolina · Instructor of Record

  2. 2017.09 — 2021.06

    MS / BS in Mathematics

    Southern University of Science and Technology (SUSTech)

  3. Interests

    • Numerical Analysis
    • Partial Differential Equations
    • Structure-preserving Schemes
    • Computational Fluid Dynamics
    • Mathematical Modeling

Representative Papers & Preprints

  1. Preprint 2025

    Energy-Stable Scalar Auxiliary Variable Schemes for Gradient Flows: Long-Time Stability and Error Estimates

    Zhaoqing Xu et al.

    Journal of Computational Physics · under review

  2. Journal 2024

    Structure-Preserving Discretizations for Incompressible Flows: Discrete Divergence-Free Constraints and Kinetic Energy Balance

    Zhaoqing Xu et al.

    Computer Methods in Applied Mechanics and Engineering

  3. Conference 2023

    A Discrete Gradient Method for Hamiltonian Systems: Exact Conservation and Convergence Analysis

    Zhaoqing Xu

    In Proc. SIAM Conference on Computational Science and Engineering

查看全部论文、报告与 CV

§ 01.b / Math & Method — 硬核审美

三个我最喜欢的离散化思想

好的数值格式不是"把导数换成差商"这么简单——它是把连续世界的对称性搬到网格上。 下面三块是我日常打交道的核心工具。 公式由 KaTeX 渲染;若 CDN 不可达,则回退为等宽 Unicode 文本。

Discrete Gradient 离散梯度法

(uₙ₊₁ − uₙ)/Δt = −S·∇̄H(uₙ₊₁, uₙ)
∇̄H(v,u)·(v−u) ≡ H(v) − H(u)

算法思想 用平均向量场替代梯度,链式法则就退化成一个代数恒等式。于是 H(uₙ₊₁) = H(uₙ) 不是"近似成立",而是每一步严格成立——跑十万步也不会能量漂移。

  • #Hamiltonian
  • #exact conservation
  • #implicit

Crank–Nicolson 时间中心隐格式

(uⁿ⁺¹ − uⁿ)/Δt = ℒ((uⁿ⁺¹ + uⁿ)/2)
⇒ ‖uⁿ⁺¹‖₂ ≤ ‖uⁿ‖₂

算法思想 把时间导数放在半步中点上,对称性换来二阶精度 + A-稳定: 步长不再被 Δt ≲ Δx² 掐住脖子。 代价是每步解一个线性系统——这通常是划算的交易。

  • #A-stable
  • #2nd order
  • #diffusion

Scalar Auxiliary Variable 标量辅助变量 (SAV)

∂ₜφ = −ℒμ, μ = δE/δφ
r = √(E₁(φ)+C₀), d/dt (E₂(φ)+r²) ≤ 0

算法思想 梯度流的非线性项是稳定性分析的噩梦。SAV 把非线性能量藏进一个标量 ODE, 格式立刻变成线性、二阶,且修正能量严格耗散。相场、液晶、两相流都靠它。

  • #gradient flow
  • #linear scheme
  • #phase field

§ 01.c / Live experiment — 在浏览器里积分一个 PDE

CFL 稳定性实验台

一维线性对流方程 ∂ₜu + a·∂ₓu = 0, 周期边界,高斯波包初值。拖动 Δt 改变 ν = aΔt/Δx, 看 CFL 条件 |ν| ≤ 1 被打破的瞬间。 纯 Canvas 手写,无第三方库。

stable scheme upwind CFL ν = 0.60 ‖u‖∞ = 1.000 steps = 0
你的浏览器不支持 canvas,无法显示数值解图像。

按 Run 开始积分 · 默认 ν=0.60 稳定,把 Δt 推过 0.0040 就会跨过 CFL 极限

为什么值得玩 Upwind 在 0 ≤ ν ≤ 1 时单调稳定,但耗散——波包会越跑越矮; Lax–Wendroff 二阶、几乎不耗散,却在 ν > 1 时指数爆炸; FTCS 无论如何都不稳定。这就是数值格式的性格:精度、稳定性、单调性不可兼得。

§ 02 / Essays & Perspectives — 生动的那一半

长文与个人见解

算法之外,我也写跨界思考、技术杂谈与一些不成体系的哲学。 每篇都重写过好几遍——如果它值得被读,就值得被打磨。

14 min read both

从傅里叶到像素:一次频域思维的跨界旅行(阅读全文)

同一个变换,在数学系叫收敛性分析,在信号系叫滤波,在图形学叫抗锯齿,在我姥姥眼里叫"把糊的照片修清楚"。 这篇文章想说的是一件小事:工具的抽象层级,决定了你能看见什么样的世界。

  • #Algorithms
  • #Culture
  • #Math

9 min read life

在 LLM 时代重新学习"慢思考"(阅读全文)

模型一秒能吐出三个证明思路,我却越来越难安静地想满二十分钟。 这不是自制力问题,是反馈周期被压缩后的认知代偿。我给自己开了三张处方。

  • #Reflections
  • #AI

11 min read life

界面即世界观(阅读全文)

一个软件把什么放在首屏,就是它认为你该在乎什么。 推而广之:你的仪表盘、你的笔记结构、你的日程表,都是你悄悄写给自己的哲学宣言。

  • #Design
  • #Reflections

16 min read research

为什么"守恒"比"精确"更重要(阅读全文)

一个局部截断误差更小、却慢慢漏能量的格式,跑一万个周期后会给你一条物理上根本不存在的轨道。 这是数值分析教给我的第一堂人生课:长期的结构正确,胜过短期的数值漂亮。

  • #Algorithms
  • #Math
  • #Reflections

§ 03 / Digital Garden & Fragments — 灵感切片

碎片、便签与未完成的念头

不设限的日常记录:一两句摘录、书影音、羽毛球里的空气动力学、 半夜写的七言、以及只对我自己有用的想法。它们会继续生长。

spark

数值格式的优雅,不在于误差有多小,
而在于它记住了连续世界忘记的事。

budding#0207

运动动力学随想

羽毛球大概是唯一一项空气阻力主导一切的球类:杀球初速可超 300 km/h,落地时不到 30。它的方程我百看不厌——

m·ẍ = m·g − ½ρC_D·A·‖ẋ‖·ẋ

阻力与速度平方成正比、方向恒反向,于是球头总会自动翻向前方——一个不需要控制论的姿态稳定器。下次打球时我想用高速摄影量一下翻转时间常数。

evergreen#0203

七言 · 未完成

格点千行藏日月

差分一步渡关山

能量不随长夜散

灵感偏生乱码间

《夜算》seed

reading

重读《Gödel, Escher, Bach》第三章:"递归不是技巧,是宇宙讲笑话的方式。"我在页边写了整整一页,然后合上书出去走了很久。

Douglas Hofstadter · GEB

seed#0196

snippet · 八行辛积分器

# leapfrog (kick–drift–kick):辛的,能量不漂
def leapfrog(q, p, dt, n, grad_V):
    for _ in range(n):
        p -= 0.5 * dt * grad_V(q)   # 半步踢
        q += dt * p                  # 整步漂
        p -= 0.5 * dt * grad_V(q)   # 半步踢
    return q, p
evergreen#0188

film

重看《Blade Runner 2049》。结论:雾是一种叙事装置——它替导演决定观众此刻能知道多少。

evergreen#0181

quote

The purpose of computing is insight, not numbers.— Richard Hamming
evergreen#0174

thought

复杂系统最迷人的地方:局部最优的叠加,往往产生全局的荒谬。每次读组织架构都像在读一篇寓言——也和读一个坏格式的稳定性分析很像。

budding#0169

teaching log

本周批了 43 份作业,第 7 题的错误高度集中在同一个符号上。学生不是不会——是被教材的记号误导了。下周我打算先把 ∂u/∂t 和 du/dt 的区别画成两张图,再讲格式。

Instructor of Record · 教学相长

budding#0161

on repeat

深夜推公式的固定配乐:Glenn Gould 的《Goldberg Variations》1981 版。慢得离谱,却刚好跟得上思路——速度是理解的敌人,节奏才是朋友。

evergreen#0155

seed

能不能把 SAV 的思路搬到神经 ODE 的时间离散化上?让训练过程也严格耗散某个"修正能量"……先记下来,等这轮 deadline 过去再碰。

seed#0148

lyrics · 草稿

我们把连续的世界切成格子,
却忘了格子之间,也有风。
误差不是失败,是世界拒绝被完全描述的方式。

《离散的风》· 副歌未定稿

seed#0140

花园共 12 条可见切片,另有 40+ 条私有草稿在慢慢发酵。

§ 04 / Side Projects & Sandbox — 数字实验室

实验性代码与开源小玩具

不为 KPI 做的东西:数值玩具、AI 尝试、可视化工具与开源碎片。 它们大多不完美,但每一个都教会了我一件事。

除 cfl-lab(本页 §01.c 可直接运行)外, 下方仓库链接均为占位——发布前请替换为真实地址,或删除对应卡片。

cfl-lab

On this page

本页 §01.c 的实验台:约 200 行原生 JS + Canvas,实时积分一维对流方程,四种格式、可调 Δt,直接把 CFL 条件画给你看。

  • Vanilla JS
  • Canvas 2D
  • Finite Difference

paper-lens

Experiment

AI 论文速读器:把一篇 PDF 蒸馏成 claim / evidence / gap 三段结构,并标出作者没有明说的假设。

  • Python
  • LLM
  • pdf.js

spectra.js

Active

零依赖频域可视化:麦克风输入 → FFT → Canvas 水墨频谱。约 6 KB,gzip 后更小。

  • JavaScript
  • Web Audio
  • Canvas

garden-cli

Active

把一堆 Markdown 碎片编译成数字花园的静态生成器:双链、成熟度、RSS 一条龙。上面那面便签墙就是它喂的。

  • Node
  • Markdown
  • CLI

markov-poems

Archived

用马尔可夫链喂唐诗宋词生成"现代诗"。结果常常滑稽,偶尔惊人——这是我第一次认真对待随机性,也是数学与直觉的第一次和解。

  • Python
  • Markov Chain
  • Corpus

nocturne.css

Open source

深色优先的设计令牌集合(本站同款思路):颜色、间距、字号、动效曲线,全部用 CSS 变量表达。

  • Design tokens
  • CSS
  • a11y

在 GitHub 查看全部仓库

§ 05 / Contact — 一起聊点什么

写信给我

学术合作、报告邀请、对某个格式的异议,或者只是想聊聊羽毛球与空气动力学——都欢迎。 我最喜欢那种"我读完了,但我不太同意"的邮件。

email 806864070@qq.com