跳转至

计算化学中的数值方法

§2.1 误差与数理统计基础

一、定义与概念

1. 准确度

定义:表征测量值与真实值的接近程度,由系统误差主导,误差越小则准确度越高。

  • 绝对误差:测量值与真值的偏差,严格定义为 $$ \Delta a = a_{\text{测}} - a_{\text{真}} $$ 其中\(a_{\text{真}}\)为真值(理论真值、约定真值或相对真值,计算化学中常以高精度从头算结果、标准物质认定值作为约定真值)。

  • 相对误差:绝对误差与真值的比值,消除量纲影响,更适合不同量级测量的准确度对比,公式为 $$ E_r = \frac{\Delta a}{a_{\text{真}}} \times 100\% = \frac{a_{\text{测}} - a_{\text{真}}}{a_{\text{真}}} \times 100\% $$

2. 精密度

定义:表征相同条件下,多次平行测量数据的再现性与重复性,由随机误差主导,数据离散度越小则精密度越高。

  • 重复性:同一操作者、同一仪器、同一实验条件下,短时间内连续平行测量所得数据的精密度(日内精密度)。

  • 再现性:不同操作者、不同仪器、不同实验室、不同时间条件下,对同一样品测量所得数据的精密度(日间/室间精密度,符合ISO 5725标准定义)。

  • 补充核心量化指标:

  • 绝对偏差:单次测量值与样本均值的偏差 \(d_i = a_i - \bar{a}\)
  • 相对偏差:\(d_{r,i} = \frac{d_i}{\bar{a}} \times 100\%\)
  • 平均偏差:\(\bar{d} = \frac{1}{n}\sum_{i=1}^n |d_i|\)

3. 标准差

定义:方差的算术平方根,与测量值同量纲,是表征样本数据离散程度的核心指标,公式为 $$ S = \sqrt{\frac{1}{n-1}\sum_{i=1}^n (a_i - \bar{a})^2} $$ - 相对标准偏差(RSD,又称变异系数CV),消除量纲与均值量级影响,计算化学中最常用的精密度量化指标: $$ \text{RSD} = \frac{S}{\bar{a}} \times 100\% $$

  • 总体标准差(无限次测量):\(\sigma = \sqrt{\frac{1}{N}\sum_{i=1}^N (a_i - \mu)^2}\),其中\(\mu\)为总体均值,\(N\)为总体容量。

4. 方差

定义:标准差的平方,量化样本数据的离散程度,无单位,适合误差传播与统计检验计算,核心无偏估计方法为贝塞尔修正。

  • 总体方差:\(\sigma^2 = \mathbb{E}\left[(X-\mu)^2\right]\),表征总体的固有离散特性。

  • 样本方差(无偏估计):即贝塞尔修正后的方差,公式见下文。

5. 贝塞尔修正

使用样本数据估计总体方差时,若直接用样本均值代替总体均值,采用有偏估计公式: $$ S_{\text{有偏}}^2 = \frac{1}{n}\sum_{i=1}^n (a_i - \bar{a})^2 $$ 得到的估计值会系统性低于真实总体方差\(\sigma^2\)。根源是样本均值由样本本身计算得出,天然比总体均值更贴近样本数据点,会压缩离差平方和,低估数据的真实离散程度。

修正方法与公式

通过将样本方差的分母从样本数\(n\)调整为自由度\(n-1\)实现无偏估计,最终无偏样本方差公式为: $$ S^2 = \frac{1}{n-1}\sum_{i=1}^n (a_i - \bar{a})^2 $$ 其中,\(a_i\)为样本中第\(i\)个观测值,\(\bar{a} = \frac{1}{n}\sum_{i=1}^n a_i\)为样本均值。

无偏性数学证明

$$ \begin{aligned} \mathbb{E}\left[\sum_{i=1}^n (a_i - \bar{a})^2\right] &= \mathbb{E}\left[\sum_{i=1}^n \left((a_i - \mu) - (\bar{a} - \mu)\right)^2\right] \ &= \mathbb{E}\left[\sum_{i=1}^n (a_i - \mu)^2 - n(\bar{a} - \mu)^2\right] \ &= n\sigma^2 - n\cdot\frac{\sigma^2}{n} = (n-1)\sigma^2 \end{aligned} $$ 因此\(\mathbb{E}\left[\frac{1}{n-1}\sum_{i=1}^n (a_i - \bar{a})^2\right] = \sigma^2\),实现无偏估计。

自由度本质

估计方差时,用样本均值代替总体均值引入了1个自由度损失:样本均值的计算已占用1个自由度,满足\(\sum_{i=1}^n (a_i - \bar{a}) = 0\)的约束,因此计算方差时仅有\(n-1\)个独立的观测值,需用\(n-1\)调整分母以消除系统性偏差。

关键结论:贝塞尔修正在小样本场景下(\(n<30\)),对方差估计的修正效果尤为显著;当\(n\rightarrow\infty\)时,\(n-1\approx n\),修正效果可忽略。

6. 误差的分类与分布

误差分类
  1. 系统误差:由固定因素引起的单向、可重复偏差,影响测量准确度,可通过校准、空白实验、方法修正消除。
  2. 随机误差:由大量独立微小随机因素引起的无规则波动,影响测量精密度,服从统计分布规律,无法完全消除,可通过多次平行测量减小。
  3. 过失误差:由操作失误、仪器故障、数据记录错误引起的异常值,需通过格拉布斯(Grubbs)检验、狄克逊(Dixon)检验剔除。
正态分布(高斯分布)

定义:随机测量误差的核心分布,概率密度函数为: $$ f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\left[-\frac{(x-\mu)^2}{2\sigma^2}\right] $$ 其中\(\mu\)为总体均值(真值),\(\sigma\)为总体标准差,分布完全由\(\mu\)\(\sigma\)两个参数决定,记为\(N(\mu,\sigma^2)\)。 - 标准正态分布:令\(u = \frac{x-\mu}{\sigma}\),转化为均值为0、标准差为1的标准正态分布\(N(0,1)\),概率密度为: $$ \varphi(u) = \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{u^2}{2}\right) $$

误差正态分布假设的核心依据
  1. 中心极限定理:大量独立同分布的随机变量的和/平均值,无论其本身分布如何,当样本量足够大时,分布趋近于正态分布。测量误差是大量独立微小效应的累加结果,因此总误差天然近似正态分布。
  2. 模型简化性:正态分布仅由均值和方差两个参数完全描述,可大幅简化统计模型的数学处理与推断;t检验、方差分析(ANOVA)等主流统计方法均基于正态分布假设。
  3. 理论与实验依据:物理、化学、工程领域中,仪器随机测量误差、环境噪声、量子涨落等带来的误差,理论与实测均符合正态分布特征。
小样本场景t分布(学生氏分布)

有限次测量时,总体标准差\(\sigma\)未知,仅能通过样本标准差\(S\)估计,此时统计量不再服从正态分布,需采用t分布,定义为: $$ t = \frac{\bar{a} - \mu}{S/\sqrt{n}} $$ 其中自由度\(df = n-1\)。t分布与正态分布形态相似,峰度更低、尾部更厚;当\(df\rightarrow\infty\)时,t分布收敛于标准正态分布。

实际应用中的偏差与处理
  • 真实场景中误差并非严格服从正态分布,如光谱计数数据服从泊松分布、回收率数据多为偏态分布、极端值场景存在厚尾分布。

  • 若误差项显著偏离正态分布,可采用三类处理方式:① 非参数统计方法;② 数据变换(对数变换、Box-Cox变换等);③ 采用不依赖正态分布假设的统计模型。


二、误差传播公式

核心作用:由直接测定量的误差,计算间接测量结果的总误差,也称为不确定性传播公式。公式基于测量误差较小、泰勒级数一阶近似成立的前提推导,核心分为独立变量与相关变量两类场景。

通用误差传播公式

设间接测量量与直接测量量的函数关系为 \(y = f(x_1,x_2,...,x_n)\),其中\(x_1,x_2,...,x_n\)为直接测量量,各量的方差为\(S_{x_1}^2,S_{x_2}^2,...,S_{x_n}^2\),则\(y\)的方差通用传播公式为: $$ S_y^2 = \sum_{i=1}^n \left( \frac{\partial f}{\partial x_i} \right)^2 S_{x_i}^2 + 2\sum_{1\leq i<j\leq n} \left( \frac{\partial f}{\partial x_i} \right)\left( \frac{\partial f}{\partial x_j} \right) \text{Cov}(x_i,x_j) $$ 其中\(\frac{\partial f}{\partial x_i}\)为误差传播系数,\(\text{Cov}(x_i,x_j)\)\(x_i\)\(x_j\)的协方差,表征变量间的相关性。

  • 当各测量值相互独立时,\(\text{Cov}(x_i,x_j)=0\),公式简化为独立变量误差传播核心公式: $$ S_y^2 = \sum_{i=1}^n \left( \frac{\partial f}{\partial x_i} \right)^2 S_{x_i}^2 $$ 以下所有特例均基于独立变量假设推导。

1. 线性组合场景

若函数为线性形式: $$ y = k_0 + k_1x_1 + k_2x_2 + ... + k_nx_n $$ 其中\(k_0,k_1...k_n\)为常数,偏导数\(\frac{\partial f}{\partial x_i}=k_i\),代入通用公式得标准偏差传播公式: $$ \begin{aligned} S_y^2 &= k_1^2S_{x_1}^2 + k_2^2S_{x_2}^2 + ... + k_n^2S_{x_n}^2 \ S_y &= \sqrt{\sum_{i=1}^{n} k_i^2 S_{x_i}^2} \end{aligned} $$

推论:常数项\(k_0\)的方差为0,不参与误差传播;加减运算的绝对误差按平方和开方传播。

应用案例:滴定实验体积计算 移液管初读数\(V_1=3.51\ \text{mL}\),终读数\(V_2=15.67\ \text{mL}\),二者标准偏差均为\(0.02\ \text{mL}\)。 消耗滴定液体积:\(V = V_2 - V_1 = 15.67 - 3.51 = 12.16\ \text{mL}\) 体积的标准偏差计算: $$ S_V = \sqrt{S_{V_1}^2 + S_{V_2}^2} = \sqrt{(0.02)^2 + (0.02)^2} = 0.028\ \text{mL} $$

2. 乘除表达式场景

若函数为乘除形式: $$ y = k \cdot \frac{x_1 x_2 ... x_m}{x_{m+1} x_{m+2} ... x_n} $$ 其中\(x_1...x_n\)为直接测定量,\(k\)为常数,两边取自然对数得: $$ \ln y = \ln k + \sum_{i=1}^m \ln x_i - \sum_{i=m+1}^n \ln x_i $$ 求偏导得\(\frac{\partial \ln y}{\partial x_i} = \pm \frac{1}{x_i}\),即\(\frac{\partial f}{\partial x_i} = \pm \frac{y}{x_i}\),代入通用公式得相对标准偏差传播公式: $$ \begin{aligned} \left( \frac{S_y}{y} \right)^2 &= \sum_{i=1}^n \left( \frac{S_{x_i}}{x_i} \right)^2 \ \frac{S_y}{y} &= \sqrt{\sum_{i=1}^{n} \left( \frac{S_{x_i}}{x_i} \right)^2} \end{aligned} $$

推论:乘除运算的相对误差按平方和开方传播,与常数项\(k\)无关。

应用案例:荧光量子产率计算 荧光量子产率公式为\(\Phi = k \cdot \frac{L_f}{c L I_0}\),各测量分量的相对标准偏差如下表: | 分量 | 物理含义 | 相对标准偏差\(S\%\) | |------|----------|--------------------| | \(L_f\) | 荧光强度 | 2 | | \(R\) | 仪器常数 | 0.2 | | \(c\) | 样品浓度 | 0.2 | | \(L\) | 液槽光程长度 | 0.5 | | \(I_0\) | 入射光强度 | 1 |

最终结果的相对标准偏差计算: $$ \begin{aligned} \left( \frac{S_y}{y} \right)^2 &= 2^2 + 0.2^2 + 0.2^2 + 0.5^2 + 1^2 = 5.33 \ \frac{S_y}{y} &= \sqrt{5.33} \approx 2.3\% \end{aligned} $$

关键结论:最终结果的相对标准偏差,略大于各分量中最大的相对标准偏差项;提升测试精度的核心,是优先改善最大相对标准偏差分量的测量精度。

3. 幂指函数场景(补充原有内容缺失的常用场景)

若函数为幂函数形式:\(y = k x^a\),其中\(k,a\)为常数,相对误差传播公式为: $$ \frac{S_y}{y} = |a| \cdot \frac{S_x}{x} $$

推论:平方运算的相对误差加倍,开方运算的相对误差减半。

有效位数与修约规范

  • 数值的有效位数由测量不确定度决定,末位需与不确定度的末位对齐。

  • 修约规则:采用四舍六入五成双规则,避免系统性偏差。

  • 运算规则:

  • 加减运算:结果的小数点后保留位数,与参与运算的数中小数点后位数最少的一致。
  • 乘除运算:结果的有效数字位数,与参与运算的数中有效数字位数最少的一致。
  • 中间计算值可较实验值多保留1位有效数字,最终结果按规则修约。

  • 不确定度标注:可用下标标注不确定位,示例:\(0.02_8\ \text{mL}\);标准形式为\(12.16\pm0.03\ \text{mL}\)\(k=2\),95%置信区间)。


三、显著性检验

核心作用:判断数据差异是由随机误差引起,还是由系统性因素引起,核心检验方法包含三类:t检验、F检验、\(\chi^2\)检验。

统计分析标准流程

  • 无特殊说明时,数据以mean ± s.d.(均值±标准差)形式呈现,样本量\(n\)需明确标注。

  • 两组数据比较前,先采用F检验进行样本方差齐性检验。

  • 方差齐性时,两组间显著性差异采用双尾Student's t检验;方差不齐时,采用Welch's校正t检验。

  • 多组间比较采用单因素方差分析(ANOVA)结合Tukey事后检验。

  • 显著性水平默认\(\alpha=0.05\)\(P<0.05\)为差异显著,\(P<0.01\)为差异极显著。

  • 统计分析软件:GraphPad Prism v.8.0、Origin、R语言。

1. F检验(方差齐性检验)

核心用途:检验两组数据的方差是否存在显著性差异,判断两组数据的精密度是否一致。

检验公式

$$ F = \frac{S_1^2}{S_2^2} $$ 规定\(S_1^2\)为两组方差中较大的一方,因此\(F\geq1\);自由度\(df_1 = n_1-1\)\(df_2 = n_2-1\)

检验流程
  1. 建立假设:原假设\(H_0\)\(\sigma_1^2 = \sigma_2^2\),两组方差无显著差异;备择假设\(H_1\)\(\sigma_1^2 \neq \sigma_2^2\)
  2. 计算F统计量。
  3. 结合自由度\(df_1,df_2\)与显著性水平\(\alpha\),查F分布表得临界值\(F_{\alpha/2}(df_1,df_2)\)
  4. 判定:若\(F > F_{\alpha/2}\),则拒绝\(H_0\),两组方差存在显著差异;反之接受\(H_0\),方差齐性。

2. t检验(均值显著性检验)

核心用途:检验均值与真值、两组均值之间是否存在显著性差异,判断测量结果的准确度与组间差异。

(1)平均值与真值的比较(系统误差检验)

用于检验测量方法是否存在显著系统误差,公式为: $$ t = \frac{|\bar{a} - \mu|}{S/\sqrt{n}} $$ 自由度\(df = n-1\)。若\(t > t_{\alpha/2}(df)\),则拒绝\(H_0\),测量值与真值存在显著差异,方法存在系统误差。

(2)两组平均值的比较

用于检验两组平行测量数据的均值是否存在显著差异,方差齐性时公式为: $$ t = \frac{|\bar{a}_1 - \bar{a}_2|}{S_p \sqrt{\frac{1}{n_1} + \frac{1}{n_2}}} $$ 其中合并方差\(S_p = \sqrt{\frac{(n_1-1)S_1^2 + (n_2-1)S_2^2}{n_1 + n_2 - 2}}\),自由度\(df = n_1 + n_2 - 2\)

3. \(\chi^2\)检验(卡方检验)

(1)拟合优度检验

核心用途:检验实验数据的分布是否符合理论分布(如正态分布、泊松分布)。 - 统计量公式: $$ \chi^2 = \sum_{i=1}^k \frac{(O_i - E_i)^2}{E_i} $$ 其中\(O_i\)为观测频数,\(E_i\)为理论频数,自由度\(df = k - m - 1\)\(k\)为组数,\(m\)为分布的待估参数个数。 - 判定:若\(\chi^2 > \chi^2_{\alpha}(df)\),则拒绝\(H_0\),数据不符合理论分布。

(2)卡方独立性检验

用于检验两个分类变量是否存在相关性,或是否相互独立。

检验流程
  1. 构建列联表(contingency table),统计每个类别组合的观测频数\(O_{ij}\)
  2. 基于行、列的边际总数,计算每个单元格的期望频数\(E_{ij} = \frac{\text{第}i\text{行合计} \times \text{第}j\text{列合计}}{\text{总频数}}\)
  3. 计算卡方统计量(公式同拟合优度检验)。
  4. 计算自由度:\(df = (行数-1) \times (列数-1)\),结合设定的显著性水平,对照卡方分布表获取临界值,判断是否拒绝原假设。

    原假设\(H_0\):两个分类变量相互独立

检验判定规则

若计算得到的卡方统计量大于临界值,则拒绝原假设,表明观测频数与期望频数存在显著差异,两个分类变量不独立,存在显著相关性。


四、计算误差及处理

计算误差是数值计算结果与理论精确解的偏差,三大核心来源:舍入误差、算法误差、人为误差

1. 舍入误差

定义:由计算机浮点数的字长限制,数值按有限位进行舍入而产生的误差,是数值计算中不可避免的固有误差。

本质:IEEE 754浮点数表示

计算机采用二进制浮点数存储数值,单精度浮点数尾数为23位(约7位十进制有效数字),双精度浮点数尾数为52位(约15-17位十进制有效数字)。当数值的有效位数超过尾数容量时,会被舍入截断,产生舍入误差。

典型案例:大数吃小数

求解一元二次方程: $$ x^2 + (-10^n -1)x + 10^n = 0 $$ - 解析解:因式分解得\((x-10^n)(x-1)=0\),精确解为\(x_1=10^n\)\(x_2=1\)。 - 计算机计算偏差:当\(n=11\),早期计算机精度\(t=11\) (尾数保留11位有效数字) 时,\(-10^n -1\)在浮点数存储中被舍入为\(-10^n\),方程退化为\(x^2 -10^n x = 0\),得到\(x_2=0\)的错误结果,根源是字长限制导致小数被大数"吃掉"。

减少舍入误差的方法
  1. 避免大数与小数直接加减,防止大数吃掉小数,可通过变量替换、量级归一化处理。
  2. 避免两个数值相近的数直接相减,防止有效数字严重损失,可通过公式变形、泰勒展开简化。
  3. 避免用极大数做乘数、极小数做除数,防止数值上溢/下溢,可通过对数变换、分步计算规避。
  4. 避免用精度极低的数值作为除数,防止误差被急剧放大。
  5. 避免直接将浮点计算值与指定值做相等比较,应采用\(|a-b| < \varepsilon\)\(\varepsilon\)为预设精度阈值)的方式判断。
  6. 简化计算步骤,减少运算总次数,降低累积舍入误差。

2. 算法误差

主要包含截断误差算法不稳定性带来的误差两类。

(1)截断误差

定义:数学模型做近似处理时,舍弃无穷级数的余项、无限迭代的后续步骤,导致简化模型与原问题精确解之间的差值,又称方法误差。 - 典型示例:函数做泰勒级数展开时,取有限项后舍弃余项,余项即为截断误差;数值积分中用有限个梯形面积近似积分值,差值即为截断误差。 - 核心特征:截断误差与算法的阶数直接相关,阶数越高,截断误差越小;步长越小,截断误差越小。

(2)算法稳定性

定义:算法在运算过程中,对舍入误差的放大能力。若舍入误差在迭代过程中持续放大,导致结果严重偏离精确解,称为不稳定算法;若舍入误差被控制或衰减,称为稳定算法

典型案例:梯形法数值积分的算法误差
  • 误差来源:用直线段近似区间内弯曲的函数曲线,函数曲线与梯形顶线之间的面积差即为算法截断误差,复合梯形法的截断误差为\(O(h^2)\),与步长\(h\)的平方成正比。
  • 影响误差的核心因素:
  • 小区间数量\(n\):梯形数量越多,步长\(h\)越小,算法误差越小,但计算量同步增大。
  • 函数曲率:函数在区间内二阶导数的绝对值越大,曲线弯曲程度越高,梯形法的算法误差越大,需在变化剧烈区域采用更小步长。
  • 降低算法误差的方法:
  • 采用更高精度的数值积分方法,如辛普森法则(截断误差\(O(h^4)\))、高斯求积。
  • 采用自适应积分,在函数变化剧烈的区域自动缩小步长,平缓区域采用大步长,平衡精度与计算量。

关键结论:任何数值方法都无法完全消除算法误差,核心是合理估计误差量级并控制在可接受范围,同时选择稳定的算法避免误差放大。

3. 人为误差

定义:由计算模型选择、参数设置、流程设计不当导致的误差,是计算化学中最易被忽略的误差来源。 - 典型场景: 1. 模型选择错误:如用半经验方法计算高精度反应能垒,用气相模型模拟溶液体系。 2. 参数设置不当:如自洽场迭代收敛阈值设置过高、基组选择与理论方法不匹配。 3. 数据处理错误:如异常值未剔除、有效位数修约不当、统计方法误用。 - 控制方法:通过方法验证、收敛性测试、交叉验证、与实验结果比对,降低人为误差。


§2.2 回归与插值

一、回归(拟合)

核心定义:回归分析是通过最小化误差,建立自变量与因变量之间的定量函数关系,适用于存在随机误差的实验数据建模,不要求拟合曲线严格通过所有数据点。

一元线性最小二乘法

核心前提

已知物理量\(x\)\(y\)存在线性相关关系:\(y = a + bx\),实测得到\(n\)组独立观测数据\((x_i,y_i)\)\(i=1,2,...,n\)),需基于实测数据求解截距\(a\)和斜率\(b\),建立最优线性回归方程。

核心原理

实测数据点因测量随机误差会偏离理论直线,采用残差平方和最小的原则确定最优拟合直线,满足高斯-马尔可夫定理的经典假设。

  • 残差:第\(i\)个数据点的实测值\(y_i\),与回归方程计算值\(\hat{y}_i = a + bx_i\)的差值,记为\(\delta_i\): $$ \delta_i = y_i - \hat{y}_i = y_i - (a + bx_i) $$
  • 残差平方和\(Q\): $$ Q = \sum_{i=1}^{n} \delta_i^2 = \sum_{i=1}^{n} \left[ y_i - (a + bx_i) \right]^2 $$

    最小二乘法定义:按残差平方和最小原则求解回归线的方法,"平方"旧称"二乘"。 高斯-马尔可夫定理:在残差零均值、同方差、无自相关、与自变量不相关的经典假设下,最小二乘估计是最佳线性无偏估计(BLUE)。

算法推导与求解

\(Q\)是关于\(a\)\(b\)的二元二次凸函数,\(Q\)取全局最小值的充要条件是对\(a\)\(b\)的一阶偏导数均为0,二阶偏导数矩阵正定: $$ \begin{cases} \frac{\partial Q}{\partial a} = -2\sum_{i=1}^{n} \left[ y_i - (a + bx_i) \right] = 0 \ \frac{\partial Q}{\partial b} = -2\sum_{i=1}^{n} x_i \left[ y_i - (a + bx_i) \right] = 0 \end{cases} $$ 整理得到正规方程组: $$ \begin{cases} na + b\sum_{i=1}^n x_i = \sum_{i=1}^n y_i \ a\sum_{i=1}^n x_i + b\sum_{i=1}^n x_i^2 = \sum_{i=1}^n x_i y_i \end{cases} $$

定义基础统计量: - 均值:\(\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i\)\(\bar{y} = \frac{1}{n}\sum_{i=1}^{n}y_i\) - \(x\)的离差平方和:\(L_{xx} = \sum_{i=1}^{n}(x_i - \bar{x})^2 = \sum_{i=1}^n x_i^2 - \frac{1}{n}\left(\sum_{i=1}^n x_i\right)^2\) - \(y\)的离差平方和:\(L_{yy} = \sum_{i=1}^{n}(y_i - \bar{y})^2 = \sum_{i=1}^n y_i^2 - \frac{1}{n}\left(\sum_{i=1}^n y_i\right)^2\) - \(x\)\(y\)的离差乘积和:\(L_{xy} = \sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y}) = \sum_{i=1}^n x_i y_i - \frac{1}{n}\left(\sum_{i=1}^n x_i\right)\left(\sum_{i=1}^n y_i\right)\)

最终求解结果: $$ \begin{aligned} b &= \frac{L_{xy}}{L_{xx}} \ a &= \bar{y} - b\bar{x} \end{aligned} $$

推论:最优回归直线必过样本均值点\((\bar{x},\bar{y})\)

相关系数\(R\)与决定系数\(R^2\)

用于量化回归效果优劣,表征\(x\)\(y\)的线性相关程度,定义为: $$ R = \frac{L_{xy}}{\sqrt{L_{xx} L_{yy}}} $$ - \(R=1\):所有数据点均落在回归直线上,\(y\)\(x\)完全正线性相关。 - \(R=-1\):所有数据点均落在回归直线上,\(y\)\(x\)完全负线性相关。 - \(R=0\)\(y\)\(x\)无线性相关关系,数据完全无序或服从非线性规律。 - \(0 < |R| < 1\)\(y\)\(x\)存在一定线性相关性,\(|R|\)越接近1,线性相关性越强。

决定系数\(R^2\):回归平方和与总离差平方和的比值,表征回归模型能解释的因变量变异比例,是拟合优度的核心指标: $$ R^2 = \frac{\text{SSR}}{\text{SST}} = 1 - \frac{\text{SSE}}{\text{SST}} $$ 其中\(\text{SST} = L_{yy}\)为总离差平方和,\(\text{SSR} = \sum_{i=1}^n (\hat{y}_i - \bar{y})^2\)为回归平方和,\(\text{SSE} = \sum_{i=1}^n (y_i - \hat{y}_i)^2\)为残差平方和。

回归方程的显著性检验

采用F检验,验证回归方程的线性关系是否显著: $$ F = \frac{\text{SSR}/1}{\text{SSE}/(n-2)} $$ 自由度\(df_1=1\)\(df_2=n-2\)。若\(F > F_{\alpha}(1,n-2)\),则拒绝原假设,回归方程线性关系显著。

拓展回归方法

  1. 多元线性最小二乘法 回归方程形式: $$ y = b_0 + b_1x_1 + b_2x_2 + ... + b_kx_k $$ 其中\(k\)为自变量个数,\(n\)为样本量(\(n>k\))。
  2. 矩阵形式:\(\boldsymbol{Y} = \boldsymbol{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon}\),其中 $$ \boldsymbol{Y} = \begin{bmatrix} y_1 \ y_2 \ \vdots \ y_n \end{bmatrix}, \boldsymbol{X} = \begin{bmatrix} 1 & x_{11} & x_{12} & \dots & x_{1k} \ 1 & x_{21} & x_{22} & \dots & x_{2k} \ \vdots & \vdots & \vdots & & \vdots \ 1 & x_{n1} & x_{n2} & \dots & x_{nk} \end{bmatrix}, \boldsymbol{\beta} = \begin{bmatrix} b_0 \ b_1 \ \vdots \ b_k \end{bmatrix}, \boldsymbol{\varepsilon} = \begin{bmatrix} \varepsilon_1 \ \varepsilon_2 \ \vdots \ \varepsilon_n \end{bmatrix} $$
  3. 最小二乘正规方程组:\(\boldsymbol{X}^\text{T}\boldsymbol{X}\boldsymbol{\beta} = \boldsymbol{X}^\text{T}\boldsymbol{Y}\)
  4. 最优解析解:\(\boldsymbol{\hat{\beta}} = (\boldsymbol{X}^\text{T}\boldsymbol{X})^{-1}\boldsymbol{X}^\text{T}\boldsymbol{Y}\)

  5. 加权线性最小二乘法 适用于异方差场景(不同数据点的测量精度不同),残差平方和形式(\(w_i\)为第\(i\)个数据点的权重,通常取\(w_i = 1/S_i^2\)\(S_i\)为第\(i\)个点的测量标准差): $$ Q = \sum_{i=1}^{n} w_i \delta_i^2 = \sum_{i=1}^n w_i \left[ y_i - (a + bx_i) \right]^2 $$

  6. 矩阵形式解:\(\boldsymbol{\hat{\beta}} = (\boldsymbol{X}^\text{T}\boldsymbol{W}\boldsymbol{X})^{-1}\boldsymbol{X}^\text{T}\boldsymbol{W}\boldsymbol{Y}\),其中\(\boldsymbol{W}\)为权重对角矩阵,\(\boldsymbol{W}_{ii}=w_i\)

非线性拟合

核心定义:因变量与待估参数之间不存在线性关系的回归模型,分为可线性化非线性模型和不可线性化非线性模型两类。

方法1:非线性方程线性化

通过变量替换,将非线性方程转化为线性形式,再用线性最小二乘法求解参数,计算简便,无需迭代。

典型案例1:阿伦尼乌斯公式线性化 原公式(反应速率常数与温度的关系):\(k = A e^{-E_a/RT}\) 1. 两边取自然对数:\(\ln k = \ln A - \frac{E_a}{R} \cdot \frac{1}{T}\) 2. 变量替换:令\(Y = \ln k\)\(X = 1/T\)\(a = \ln A\)\(b = -E_a/R\) 3. 转化为线性方程:\(Y = a + bX\),通过线性最小二乘法求解\(a,b\),反推得到指前因子\(A\)和活化能\(E_a\)

典型案例2:朗缪尔吸附等温式线性化 原公式:\(\theta = \frac{Kp}{1+Kp}\),转化为\(\frac{p}{\theta} = \frac{1}{K} + p\),实现线性化。

方法2:非线性最小二乘法

对于通用非线性回归方程\(y = f(x_1,x_2,...,x_k,\beta_0,\beta_1,...,\beta_m)\),其中\(\beta_0...\beta_m\)为待求参数,无法通过变量替换线性化,需采用迭代法求解: - 残差:\(\delta_i = y_i - f(x_{i1},x_{i2},...,x_{ik},\beta_0,\beta_1,...,\beta_m)\) - 残差平方和:\(Q = \sum_{i=1}^{n} \delta_i^2\) - 优化目标:找到一组参数\(\boldsymbol{\beta} = [\beta_0,\beta_1,...,\beta_m]^\text{T}\),使残差平方和\(Q\)最小。

核心迭代算法
  1. 高斯-牛顿法 基于泰勒级数一阶展开,将非线性模型线性化,迭代公式为: $$ \boldsymbol{\beta}_{t+1} = \boldsymbol{\beta}_t + (\boldsymbol{J}_t^\text{T}\boldsymbol{J}_t)^{-1}\boldsymbol{J}_t^\text{T}\boldsymbol{\delta}_t $$ 其中\(\boldsymbol{J}_t\)为第\(t\)次迭代的雅可比矩阵,\(J_{ij} = \frac{\partial f(\boldsymbol{x}_i,\boldsymbol{\beta}_t)}{\partial \beta_j}\)\(\boldsymbol{\delta}_t\)为残差向量。
  2. 特点:收敛速度快(二阶收敛),但对初始值敏感,初始值偏离过远易发散。

  3. 列文伯格-马夸尔特法(L-M法) 高斯-牛顿法的改进,引入阻尼因子\(\lambda\),迭代公式为: $$ \boldsymbol{\beta}_{t+1} = \boldsymbol{\beta}_t + (\boldsymbol{J}_t^\text{T}\boldsymbol{J}_t + \lambda \boldsymbol{I})^{-1}\boldsymbol{J}_t^\text{T}\boldsymbol{\delta}_t $$ 其中\(\boldsymbol{I}\)为单位矩阵。当\(\lambda\)较小时,退化为高斯-牛顿法;当\(\lambda\)较大时,退化为最速下降法,兼顾收敛速度与稳定性,是计算化学中非线性拟合的首选算法。


二、插值

核心定义:已知函数\(y=f(x)\)\(n+1\)个互异节点上的函数值\((x_0,y_0),(x_1,y_1),...,(x_n,y_n)\),构造一个简单连续的多项式\(P(x)\),使其严格通过所有已知节点,即\(P(x_i)=y_i\),并用\(P(x)\)近似计算区间内任意未知点的函数值。

与回归的核心区别:插值要求曲线严格通过所有节点,不考虑节点的测量误差;回归不要求通过节点,核心是最小化整体误差。

1. 拉格朗日一元全节点插值

核心思路

对于\(n+1\)个已知节点\((x_0,y_0),(x_1,y_1),...,(x_n,y_n)\),构造\(n\)次插值多项式,无需解联立方程,直接通过节点数据计算任意\(x\)对应的\(y\)值。

插值基函数与多项式构造

定义拉格朗日插值基函数: $$ l_i(x) = \prod_{\substack{j=0 \ j \neq i}}^{n} \frac{x - x_j}{x_i - x_j} \quad (i=0,1,...,n) $$ 基函数的核心性质:\(l_i(x_j) = \begin{cases} 1, & j=i \\ 0, & j \neq i \end{cases}\),即基函数在对应节点上取值为1,其余节点上取值为0。

基于基函数构造的拉格朗日一元全节点插值多项式为: $$ L_n(x) = \sum_{i=0}^n y_i l_i(x) = \sum_{i=0}^n y_i \left( \prod_{\substack{j=0 \ j \neq i}}^{n} \frac{x - x_j}{x_i - x_j} \right) $$ 显然满足\(L_n(x_i)=y_i\),严格通过所有已知节点。

插值余项与龙格现象

插值多项式与原函数的差值为插值余项,公式为: $$ R_n(x) = f(x) - L_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} \prod_{j=0}^n (x - x_j) $$ 其中\(\xi \in (\min(x_0,x_1,...,x_n,x), \max(x_0,x_1,...,x_n,x))\)\(f^{(n+1)}(\xi)\)为原函数的\(n+1\)阶导数在\(\xi\)处的取值。

龙格现象:全节点插值随节点数\(n\)增加,插值多项式的次数升高,在区间两端会出现剧烈的振荡,导致插值误差急剧增大。根源是余项中\(\prod_{j=0}^n (x-x_j)\)的绝对值在区间两端快速增大,即使\(n\rightarrow\infty\),插值多项式也不一定收敛于原函数。

2. 拉格朗日一元部分节点插值

提出背景

全节点插值随节点数增加,计算量显著增大;且远离插值点的节点对插值结果贡献极小,还容易造成龙格现象。

实现方法

插值时仅选用插值点附近的\(m+1\)个相邻节点(\(m \ll n\)),构造\(m\)次拉格朗日插值多项式,将节点范围限定为插值点邻近的\(N_1\)\(N_2\),大幅简化计算,同时有效抑制龙格现象。 - 常用形式:线性插值(2个节点,1次多项式)、二次插值(3个节点,抛物线插值),是计算化学中光谱数据、热力学数据插值的常用方法。

3. 分段插值与三次样条插值

分段线性插值

将整个区间划分为若干子区间,在每个子区间\([x_i,x_{i+1}]\)上分别构造1次拉格朗日插值多项式,公式为: $$ P(x) = \frac{x - x_{i+1}}{x_i - x_{i+1}} y_i + \frac{x - x_i}{x_{i+1} - x_i} y_{i+1}, \quad x \in [x_i,x_{i+1}] $$ - 特点:计算简单,不会出现龙格现象,整体连续,但在节点处一阶导数不连续,光滑性差。

三次样条插值

定义:构造分段三次多项式\(S(x)\),满足: 1. 在每个子区间\([x_i,x_{i+1}]\)上,\(S(x)\)是三次多项式; 2. 在整个区间\([x_0,x_n]\)上,\(S(x)\)\(S'(x)\)\(S''(x)\)连续,保证曲线二阶光滑; 3. 严格通过所有节点:\(S(x_i)=y_i\)\(i=0,1,...,n\)); 4. 满足边界条件(常用:自然边界\(S''(x_0)=S''(x_n)=0\)、固定边界\(S'(x_0)=y_0'\)\(S'(x_n)=y_n'\)、周期边界)。

  • 特点:光滑性好,无龙格现象,插值精度高,是计算化学中势能面构建、光谱曲线平滑、分子动力学轨迹插值的核心方法。

4. 拉格朗日二元插值

应用场景

已知二维节点数据\((x_i,y_j,z_{ij})\)\(i=0,1,...,m\)\(j=0,1,...,n\)),以\(x\)\(y\)为自变量,\(z\)为因变量,求解插值点\((x,y)\)对应的\(z\)值,常用于二维势能面、色谱响应面、光谱等高线图的插值计算。

核心实现方法
  1. 双线性插值:选取插值点附近的4个相邻节点,先沿\(x\)方向做两次一元线性插值,再沿\(y\)方向做一次线性插值,公式为: $$ \begin{aligned} z(x,y) &= \frac{(x_{i+1}-x)(y_{j+1}-y)}{(x_{i+1}-x_i)(y_{j+1}-y_j)} z_{ij} + \frac{(x-x_i)(y_{j+1}-y)}{(x_{i+1}-x_i)(y_{j+1}-y_j)} z_{i+1,j} \ &+ \frac{(x_{i+1}-x)(y-y_j)}{(x_{i+1}-x_i)(y_{j+1}-y_j)} z_{i,j+1} + \frac{(x-x_i)(y-y_j)}{(x_{i+1}-x_i)(y_{j+1}-y_j)} z_{i+1,j+1} \end{aligned} $$
  2. 双三次插值:选取插值点附近的16个相邻节点,构造双三次多项式,保证插值曲面一阶、二阶导数连续,光滑性和精度远高于双线性插值,常用于高精度二维势能面构建。
  3. 二元拉格朗日全节点插值:基于一元插值原理,构造二元插值多项式: $$ L_{mn}(x,y) = \sum_{i=0}^m \sum_{j=0}^n z_{ij} l_i(x) l_j(y) $$ 其中\(l_i(x)\)\(x\)方向的拉格朗日基函数,\(l_j(y)\)\(y\)方向的拉格朗日基函数。

§2.3 微分与积分

一、数值微分

核心定义:通过函数在离散节点上的函数值,近似计算函数在某点的一阶、高阶导数,是计算化学中势能梯度、力常数、光谱频率计算的核心工具。 - 核心思想:基于泰勒级数展开,用函数值的线性组合近似导数,平衡截断误差与舍入误差。

1. 一阶导数的有限差分公式

设函数\(f(x)\)在节点\(x_i\)处的函数值为\(f_i = f(x_i)\),等距节点步长为\(h\),即\(x_{i+1} = x_i + h\)

(1)向前差分公式

泰勒展开:\(f_{i+1} = f_i + h f'(x_i) + \frac{h^2}{2!} f''(\xi)\),整理得: $$ f'(x_i) = \frac{f_{i+1} - f_i}{h} + O(h) $$ - 截断误差为\(O(h)\),精度较低,适用于区间端点的导数计算。

(2)向后差分公式

泰勒展开:\(f_{i-1} = f_i - h f'(x_i) + \frac{h^2}{2!} f''(\xi)\),整理得: $$ f'(x_i) = \frac{f_i - f_{i-1}}{h} + O(h) $$ - 截断误差为\(O(h)\),精度较低,适用于区间端点的导数计算。

(3)中心差分公式

\(f_{i+1}\)\(f_{i-1}\)的泰勒展开式相减,消去二阶及以下偶数阶项,整理得: $$ f'(x_i) = \frac{f_{i+1} - f_{i-1}}{2h} + O(h^2) $$ - 截断误差为\(O(h^2)\),精度远高于向前/向后差分,是数值微分的首选公式。

2. 二阶导数的有限差分公式

\(f_{i+1}\)\(f_{i-1}\)的泰勒展开式相加,消去一阶及以下奇数阶项,整理得二阶导数的中心差分公式: $$ f''(x_i) = \frac{f_{i+1} - 2f_i + f_{i-1}}{h^2} + O(h^2) $$ - 截断误差为\(O(h^2)\),是计算化学中求解海森矩阵、力常数的核心公式。

3. 高精度差分与理查森外推法

通过外推法消除低阶误差项,进一步提高数值微分的精度。以一阶导数中心差分为例,设\(G(h) = \frac{f(x+h)-f(x-h)}{2h}\),则: $$ G(h) = f'(x) + a_1 h^2 + a_2 h^4 + ... $$ 理查森外推公式: $$ G_1(h) = \frac{4G(h/2) - G(h)}{3} = f'(x) + O(h^4) $$ - 外推后截断误差从\(O(h^2)\)提升至\(O(h^4)\),可通过多次外推进一步提高精度。

4. 数值微分的稳定性与最优步长

数值微分的总误差由截断误差和舍入误差两部分组成: - 截断误差:随步长\(h\)减小而减小; - 舍入误差:随步长\(h\)减小而增大,因为\(h\)出现在分母,会放大函数值的舍入误差。

因此存在最优步长,使总误差最小。对于双精度浮点数,一阶中心差分的最优步长约为\(h \approx 10^{-5} \sim 10^{-6}\),需根据具体函数调整。


二、数值积分

定积分核心定义:定积分是曲线\(y=f(x)\)\(y=0\)\(x=a\)\(x=b\)四条边界围成的面积,表达式为: $$ I = \int_{a}^{b} f(x) dx $$ 数值积分核心思路:将积分区间\([a,b]\)划分为若干小段,每段宽度为步长\(h\),将总面积拆分为元面积,通过元面积累加得到定积分的近似值,核心分为牛顿-科茨求积、高斯求积两大类。

1. 牛顿-科茨求积公式

将积分区间\([a,b]\)等分为\(n\)段,步长\(h = \frac{b-a}{n}\),节点\(x_i = a + ih\)\(i=0,1,...,n\)),构造\(n\)次插值多项式近似原函数,得到牛顿-科茨求积通用公式: $$ \int_a^b f(x) dx \approx (b-a) \sum_{i=0}^n C_i^{(n)} f(x_i) $$ 其中\(C_i^{(n)}\)为牛顿-科茨系数,仅与节点数\(n\)和节点序号\(i\)有关,与被积函数和积分区间无关。 - \(n=1\):梯形法;\(n=2\):辛普森法;\(n=4\):科茨法。 - 余项特征:\(n\)为奇数时,代数精度为\(n\)\(n\)为偶数时,代数精度为\(n+1\)

2. 矩形法

核心原理:用每个小区间中点的函数值,近似代表区间内的平均函数值,用矩形面积近似元面积并累加,分为左矩形、右矩形、中矩形法,其中中矩形法精度最高。 - 中矩形法公式:将区间\([a,b]\)等分为\(n\)段,步长\(h = \frac{b-a}{n}\),小区间中点\(x_{i-1/2} = a + (i-0.5)h\),积分近似值为: $$ \int_{a}^{b} f(x) dx \approx h \sum_{i=1}^{n} f\left( x_{i-\frac{1}{2}} \right) $$ - 截断误差:\(O(h^2)\),与梯形法精度相当。

3. 梯形法

核心原理

当步长足够小时,函数曲线被分割为极短的线段,将每个小线段近似为直线,元面积视为小梯形面积,累加所有梯形面积得到积分近似值。

复合梯形法公式

将区间\([a,b]\)等分为\(n\)段,步长\(h = \frac{b-a}{n}\),分点\(x_0=a, x_1, x_2,...,x_n=b\),积分近似值为: $$ I = \int_{a}^{b} f(x) dx \approx T_n = \frac{h}{2} \left[ f(x_0) + 2\sum_{i=1}^{n-1}f(x_i) + f(x_n) \right] $$ - 截断误差:\(R_T = -\frac{(b-a)h^2}{12} f''(\xi)\)\(\xi \in (a,b)\),整体截断误差为\(O(h^2)\)

4. 辛普森法

假定每相邻两个小区间的函数曲线可拟合为一条二次抛物线,用二次曲线近似原函数,大幅提升积分精度。

复合辛普森法公式

将区间\([a,b]\)等分为\(2n\)段(偶数段),步长\(h = \frac{b-a}{2n}\),分点\(x_0=a, x_1, x_2,...,x_{2n}=b\),积分近似值为: $$ I = \int_{a}^{b} f(x) dx \approx S_n = \frac{h}{3} \left[ f(x_0) + f(x_{2n}) + 4\sum_{i=1}^{n}f(x_{2i-1}) + 2\sum_{i=1}^{n-1}f(x_{2i}) \right] $$ - 截断误差:\(R_S = -\frac{(b-a)h^4}{180} f^{(4)}(\xi)\)\(\xi \in (a,b)\),整体截断误差为\(O(h^4)\),精度远高于梯形法。

5. 龙贝格积分(理查森外推)

基于梯形法的理查森外推,通过低精度的梯形值外推得到高精度的积分值,无需加密节点即可大幅提升精度,核心公式为: $$ T_{m,k} = \frac{4^m T_{m-1,k+1} - T_{m-1,k}}{4^m - 1} $$ 其中\(T_{0,k}\)为步长\(h=(b-a)/2^k\)的复合梯形值,\(T_{m,k}\)\(m\)次外推后得到的积分值。 - 特点:收敛速度快,计算量小,是计算化学中一维积分的常用高精度方法。

6. 高斯求积公式

核心定义:通过优化节点的位置与权重,使求积公式达到最高代数精度的数值积分方法。\(n\)个节点的高斯求积公式,代数精度可达\(2n-1\),远高于同节点数的牛顿-科茨公式。

高斯-勒让德求积(区间\([-1,1]\)

对于积分区间\([-1,1]\),高斯-勒让德求积公式为: $$ \int_{-1}^1 f(x) dx \approx \sum_{i=1}^n w_i f(x_i) $$ 其中\(x_i\)\(n\)次勒让德多项式\(P_n(x)\)的零点(高斯节点),\(w_i\)为对应的求积权重,可通过查表获得。

任意区间的变换

对于任意区间\([a,b]\),通过变量替换\(x = \frac{b-a}{2}t + \frac{a+b}{2}\),将积分转化为\([-1,1]\)区间的积分: $$ \int_a^b f(x) dx = \frac{b-a}{2} \int_{-1}^1 f\left( \frac{b-a}{2}t + \frac{a+b}{2} \right) dt $$ 再用高斯-勒让德求积公式计算。

  • 特点:精度极高,收敛速度快,适用于光滑函数的高精度积分,是计算化学中电子结构计算、分子积分求解的核心方法。

7. 离散点下的求积

应用场景

仅已知区间\([a,b]\)内部分离散点的\(x\)\(f(x)\)值,未知被积函数的完整数学表达式,需计算定积分,是实验数据处理的常见场景。

解决方法
  1. 等距离散点:直接采用复合梯形法、复合辛普森法计算,无需插值。
  2. 非等距离散点:先通过三次样条插值拟合得到连续的函数曲线,再对样条函数进行积分,得到定积分的近似值;或采用自适应求积方法,根据节点分布调整步长。

§2.4 方程求根

数值方法求解方程\(f(x)=0\)的根(零点),分为两个核心步骤: 1. 确定根的初值或存在区间 2. 基于初值/区间,迭代求解满足精度要求的根的精确值

一、根的初值和存在区间

核心确定方法分为三类: 1. 基于方程数学性质判断 示例:已知\(b>a>0\),方程\(\sqrt{x-a} = \sqrt{b-x}\),根据根号内非负的约束,确定实根存在区间为\(a<x<b\);利用介值定理:若\(f(x)\)\([a,b]\)上连续,且\(f(a)\cdot f(b)<0\),则区间内至少存在一个实根。 2. 基于方程物理意义估计 示例:化合物摩尔分数的取值范围为\(0 \le x \le 1\);仪器指针偏转角的取值范围为\(0 \le x \le 2\pi\);反应平衡常数的取值范围为\(K>0\)。 3. 图解法 将方程\(f(x)=0\)转化为\(f_1(x)=f_2(x)\),绘制两条函数曲线,交点的横坐标即为方程的根,可快速确定根的存在区间与初值。

二、二分法求方程的根

适用条件

方程\(f(x)=0\)在区间\([x_L,x_R]\)内连续,且区间内有且仅有一个单根,满足\(f(x_L) \cdot f(x_R) < 0\)

迭代步骤

  1. 取区间中点\(x_M = \frac{x_L + x_R}{2}\),计算\(f(x_M)\)
  2. 根区间缩窄:
  3. \(f(x_M) \cdot f(x_L) < 0\),则根位于\([x_L,x_M]\)内,令\(x_R = x_M\)
  4. \(f(x_M) \cdot f(x_R) < 0\),则根位于\([x_M,x_R]\)内,令\(x_L = x_M\)
  5. \(f(x_M)=0\),则\(x_M\)即为方程的精确根,迭代终止。
  6. 收敛判断:重复上述迭代步骤,直到区间长度\(|x_R - x_L| < \varepsilon\)\(\varepsilon\)为预设精度阈值),此时区间中点\(x_M\)即可作为方程的近似根。

收敛性与误差估计

  • 二分法为线性收敛,收敛速度较慢,但绝对收敛,不会出现发散现象,是最稳定的求根方法。
  • \(k\)次迭代后,根的绝对误差满足:\(|x^* - x_M| \le \frac{x_R - x_L}{2^k}\),可提前计算达到预设精度所需的迭代次数。

三、牛顿-拉弗森方法(牛顿法)

核心迭代公式

对于方程\(f(x)=0\),将\(f(x)\)在迭代点\(x_n\)处做泰勒一阶展开,近似求解零点,得到迭代公式: $$ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} $$ 其中\(f'(x_n)\)\(f(x)\)\(x_n\)处的一阶导数。

几何解释

  1. 选取初始点\(B_0(x_0,f(x_0))\)
  2. 过该点作函数曲线的切线,切线方程为\(y - f(x_0) = f'(x_0)(x - x_0)\),切线与x轴的交点即为\(x_1\)
  3. \(x_1\)为新的迭代点,重复上述步骤,逐步逼近方程的根,因此牛顿法又称切线法。

收敛性

  • 牛顿法为二阶收敛,收敛速度远快于二分法,迭代次数少,计算效率高。
  • 收敛的充分条件:若\(f(x)\)二阶可导,在待求零点\(x^*\)的邻域内\(f'(x^*) \neq 0\),且\(f''(x)\)有界,则只要初始点\(x_0\)落在该收敛邻域内,牛顿法必定收敛。

四、牛顿法的改进与拓展

1. 重根修正

\(x^*\)\(f(x)=0\)\(m\)重根(\(m\ge2\))时,\(f(x^*)=0\)\(f'(x^*)=0\),牛顿法的收敛速度会从二阶降为线性,需采用修正迭代公式: $$ x_{n+1} = x_n - m \cdot \frac{f(x_n)}{f'(x_n)} $$ 其中\(m\)为根的重数,可恢复二阶收敛速度。

2. 阻尼牛顿法

为解决初始值偏离过远导致的发散问题,引入阻尼因子\(\lambda \in (0,1]\),迭代公式为: $$ x_{n+1} = x_n - \lambda \cdot \frac{f(x_n)}{f'(x_n)} $$ 通过调整阻尼因子,保证每次迭代满足\(|f(x_{n+1})| < |f(x_n)|\),大幅提升算法稳定性。

3. 割线法

\(f(x)\)的导数难以求解或计算成本过高时,用两点的差商代替导数,无需计算导数,迭代公式为: $$ x_{n+1} = x_n - f(x_n) \cdot \frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})} $$ - 特点:无需计算导数,收敛阶约为1.618,超线性收敛,是计算化学中无导数求根的首选方法。

五、牛顿法的不收敛场景与解决方案

常见不收敛场景

  1. 初始点为驻点\(f'(x_0)=0\),迭代公式分母为0,无数学意义,切线无x轴交点。
  2. 解决方案:重新选择初始点,避开驻点。
  3. 迭代发散:示例\(f(x)=x^{1/3}\),无论选取任何非零初始点,迭代结果都会越来越远离根点\(x^*=0\)
  4. 解决方案:采用阻尼牛顿法,或更换收敛性更好的算法(如割线法、二分法)。
  5. 循环震荡:示例\(f(x)=|x|^{1/2}\),迭代过程中\(x_{n+1}=-x_n\),出现周期为2的循环震荡,无法收敛。
  6. 解决方案:调整初始点,或加入阻尼因子打破循环。
  7. 多根方程漏根:对于存在多个根的方程,受初始点位置限制,仅能求得附近的单个根,无法完整求出所有根。
  8. 解决方案:先通过图解法、扫描法确定所有根的存在区间,再在每个区间内分别迭代求解。

六、多变量非线性方程组的牛顿法

对于\(n\)元非线性方程组\(\boldsymbol{F}(\boldsymbol{X}) = 0\),其中\(\boldsymbol{X} = [x_1,x_2,...,x_n]^\text{T}\)\(\boldsymbol{F} = [f_1,f_2,...,f_n]^\text{T}\),牛顿迭代公式为: $$ \boldsymbol{X}_{k+1} = \boldsymbol{X}_k - \boldsymbol{J}(\boldsymbol{X}_k)^{-1} \boldsymbol{F}(\boldsymbol{X}_k) $$ 其中\(\boldsymbol{J}(\boldsymbol{X}_k)\)为第\(k\)次迭代的雅可比矩阵,\(J_{ij} = \frac{\partial f_i}{\partial x_j}\)。 - 特点:二阶收敛,是计算化学中分子几何优化、自洽场迭代、相平衡计算的核心算法。


§2.5 线性方程组求解

线性方程组的通用形式为\(\boldsymbol{A}\boldsymbol{X} = \boldsymbol{b}\),其中\(\boldsymbol{A}\)\(n\times n\)阶系数矩阵,\(\boldsymbol{X}\)\(n\)维未知向量,\(\boldsymbol{b}\)\(n\)维常数向量。求解方法分为直接法迭代法两大类。

一、高斯消去法(简单消去法)

核心原理

通过矩阵初等行变换,将线性方程组的增广矩阵转化为上三角矩阵,再通过回代过程求解所有未知数,本质是对系数矩阵进行LU分解:\(\boldsymbol{A} = \boldsymbol{L}\boldsymbol{U}\),其中\(\boldsymbol{L}\)为单位下三角矩阵,\(\boldsymbol{U}\)为上三角矩阵。

求解步骤

  1. 构建增广矩阵:将方程组的系数矩阵与常数项合并,构成\(n\times(n+1)\)阶增广矩阵\(\overline{\boldsymbol{A}} = [\boldsymbol{A} \mid \boldsymbol{b}]\)
  2. 正向消元
  3. 第1轮:以第1行为基准,消去第2行至第n行的\(x_1\)项,使第1列主元以下的元素全部变为0;
  4. 第2轮:以第2行为基准,消去第3行至第n行的\(x_2\)项,使第2列主元以下的元素全部变为0;
  5. 循环迭代,直至消元完成,增广矩阵的系数部分转化为上三角矩阵。
  6. 反向回代
  7. 由最后一行方程直接求解\(x_n\)
  8. \(x_n\)代入上一行方程,求解\(x_{n-1}\)
  9. 依次回代,求出所有未知数\(x_{n-2},x_{n-3},...,x_1\)

LU分解拓展

高斯消去法完成后,得到\(\boldsymbol{A} = \boldsymbol{L}\boldsymbol{U}\),原方程组转化为\(\boldsymbol{L}\boldsymbol{U}\boldsymbol{X} = \boldsymbol{b}\),分两步求解: 1. 解下三角方程组\(\boldsymbol{L}\boldsymbol{Y} = \boldsymbol{b}\),得到中间向量\(\boldsymbol{Y}\); 2. 解上三角方程组\(\boldsymbol{U}\boldsymbol{X} = \boldsymbol{Y}\),得到未知向量\(\boldsymbol{X}\)。 - 优势:当常数项\(\boldsymbol{b}\)多次变化时,无需重复消元,仅需两次回代即可求解,大幅降低计算量。

二、列主元消去法

提出背景

高斯消去法的消元过程中,若主元\(a_{ii}\)为0或绝对值极小,会出现除数为0、数值上溢,或因除数过小引入极大计算误差,导致结果严重失真。

核心方法

消去\(x_i\)前,比较增广矩阵中第\(i\)列主元行及以下的所有元素,找出绝对值最大的主元素,通过行交换将其换到\(a_{ii}\)的主元位置,再执行消元计算。 - 特点:几乎完全避免了小主元导致的数值不稳定问题,计算精度远高于普通高斯消去法,是求解中小型线性方程组的标准方法。

三、全主元消去法

在整个系数矩阵的未消元部分中,寻找绝对值最大的元素作为主元,通过行交换、列交换将其换到当前主元位置,再执行消元。 - 特点:数值稳定性优于列主元消去法,可进一步降低计算误差,提升求解精度;但列交换会改变未知数的顺序,需额外记录列交换信息,计算量略大,适用于对精度要求极高的病态方程组求解。

四、线性方程组的迭代解法

迭代法适用于大型稀疏线性方程组(系数矩阵大部分元素为0),如计算化学中有限元计算、量子化学自洽场迭代、分子动力学模拟中的方程组求解,无需存储整个系数矩阵,内存占用小,计算效率高。

1. 雅可比迭代法

将系数矩阵分解为\(\boldsymbol{A} = \boldsymbol{D} - \boldsymbol{L} - \boldsymbol{U}\),其中\(\boldsymbol{D}\)为对角矩阵,\(\boldsymbol{L}\)为严格下三角矩阵,\(\boldsymbol{U}\)为严格上三角矩阵,迭代公式为: $$ \boldsymbol{X}^{(k+1)} = \boldsymbol{D}^{-1}(\boldsymbol{L} + \boldsymbol{U})\boldsymbol{X}^{(k)} + \boldsymbol{D}^{-1}\boldsymbol{b} $$ - 特点:迭代格式简单,易于编程,但收敛速度较慢,仅适用于严格对角占优矩阵。

2. 高斯-赛德尔迭代法

在雅可比迭代的基础上,利用最新计算出的未知量分量更新后续分量,迭代公式为: $$ \boldsymbol{X}^{(k+1)} = (\boldsymbol{D} - \boldsymbol{L})^{-1}\boldsymbol{U}\boldsymbol{X}^{(k)} + (\boldsymbol{D} - \boldsymbol{L})^{-1}\boldsymbol{b} $$ - 特点:收敛速度快于雅可比迭代,内存占用更小,是最基础的迭代解法。

3. 超松弛迭代法(SOR)

高斯-赛德尔迭代的改进,引入松弛因子\(\omega\),迭代公式为: $$ \boldsymbol{X}^{(k+1)} = \boldsymbol{X}^{(k)} + \omega (\boldsymbol{D} - \omega \boldsymbol{L})^{-1} (\boldsymbol{b} - \boldsymbol{A}\boldsymbol{X}^{(k)}) $$ - 特点:通过优化松弛因子\(\omega\),可大幅提升收敛速度,\(\omega=1\)时退化为高斯-赛德尔迭代,是求解大型稀疏线性方程组的常用方法。

4. 共轭梯度法(CG)

适用于对称正定矩阵的线性方程组,是一种 Krylov 子空间方法,理论上\(n\)步迭代即可得到精确解,实际中通过少量迭代即可达到预设精度,迭代公式为: $$ \begin{cases} \boldsymbol{r}^{(k)} = \boldsymbol{b} - \boldsymbol{A}\boldsymbol{X}^{(k)} \ \alpha_k = \frac{(\boldsymbol{r}^{(k)})^\text{T}\boldsymbol{r}^{(k)}}{(\boldsymbol{p}^{(k)})^\text{T}\boldsymbol{A}\boldsymbol{p}^{(k)}} \ \boldsymbol{X}^{(k+1)} = \boldsymbol{X}^{(k)} + \alpha_k \boldsymbol{p}^{(k)} \ \boldsymbol{r}^{(k+1)} = \boldsymbol{r}^{(k)} - \alpha_k \boldsymbol{A}\boldsymbol{p}^{(k)} \ \beta_k = \frac{(\boldsymbol{r}^{(k+1)})^\text{T}\boldsymbol{r}^{(k+1)}}{(\boldsymbol{r}^{(k)})^\text{T}\boldsymbol{r}^{(k)}} \ \boldsymbol{p}^{(k+1)} = \boldsymbol{r}^{(k+1)} + \beta_k \boldsymbol{p}^{(k)} \end{cases} $$ - 特点:收敛速度快,内存占用小,是计算化学中求解大型对称正定线性方程组的首选算法。

五、线性方程组的病态性与误差分析

条件数

矩阵的条件数用于衡量方程组的病态程度,定义为: $$ \text{cond}(\boldsymbol{A}) = |\boldsymbol{A}| \cdot |\boldsymbol{A}^{-1}| $$ 常用2-范数条件数:\(\text{cond}_2(\boldsymbol{A}) = \frac{\lambda_{\text{max}}}{\lambda_{\text{min}}}\),其中\(\lambda_{\text{max}}\)\(\lambda_{\text{min}}\)\(\boldsymbol{A}^\text{T}\boldsymbol{A}\)的最大和最小特征值。 - 条件数越接近1,矩阵越良态,方程组解的误差越小;条件数越大,矩阵越病态,系数矩阵和常数项的微小扰动会导致解的巨大偏差。

病态方程组的处理方法

  1. 采用全主元消去法,降低计算误差;
  2. 对系数矩阵进行行平衡、列平衡预处理,降低条件数;
  3. 采用双精度或更高精度的浮点数计算,减少舍入误差;
  4. 采用正则化方法(如Tikhonov正则化),抑制病态性导致的解失真。

§2.6 常微分方程与方程组的数值求解

一、常微分方程初值问题的基本定义

1. 问题标准形式

在计算化学的动力学模拟、相分离演化、反应速率计算等场景中,核心求解的是一阶常微分方程初值问题,标准形式为: $$ \frac{dy}{dx} = f(x,y) $$ 配套初始条件: $$ y(x_0) = y_0 $$ 其中: - \(f(x,y)\)为定义在\(x-y\)平面指定区域内的二元连续函数,表征因变量\(y\)随自变量\(x\)的变化率; - \(x_0\)为初始自变量,\(y_0\)为初始条件下的因变量取值; - 求解目标:得到\(x\)在求解区间内一系列离散点上\(y(x)\)的近似数值解。

2. 解析解与数值解的核心差异

  • 解析解:满足微分方程的显式函数\(y=F(x)\),将\(F(x)\)代入原方程可使等式恒成立,初始条件用于确定解中的常数项。
  • 数值解:绝大多数工程与化学场景中的微分方程无法获得解析表达式,需通过数值分析方法,求解离散节点\(x_0, x_1=x_0+h, x_2=x_0+2h, ..., x_n=x_0+nh\)上的因变量近似值\(y_0,y_1,y_2,...,y_n\),其中\(h\)为预先设定的求解步长。

    核心本质:常微分方程的数值解法,是通过离散化迭代,将连续的微分方程转化为离散的代数递推公式,逐步从初始点推进求解全区间的数值解。


二、欧拉法(Euler法)

欧拉法是常微分方程数值求解的最基础单步法,核心思想是用差商近似代替导数,通过切线近似实现迭代推进,分为显式欧拉法、隐式欧拉法与改进欧拉法三类。

1. 显式欧拉法(前向欧拉法)

核心原理与几何解释

  1. 初始点\(A_0(x_0,y_0)\)为给定的初始条件,该点处微分方程的精确斜率为\(f(x_0,y_0)\),对应特解曲线在该点的切线斜率。
  2. \(A_0\)出发,作斜率为\(f(x_0,y_0)\)的切线,与\(x=x_0+h\)处的垂线交于\(C_1\)点,当步长\(h\)足够小时,\(C_1\)点与特解曲线上的\(A_1\)点足够接近,将\(C_1\)的纵坐标作为\(y(x_1)\)的近似值\(y_1\)
  3. 重复上述过程,以\((x_n,y_n)\)为新的起点,迭代求解下一个节点的近似值\(y_{n+1}\)

迭代公式

由导数的差商近似: $$ \frac{dy}{dx}\bigg|{x=x_n} \approx \frac{y $$ 代入微分方程} - y_n}{h\(\frac{dy}{dx}=f(x_n,y_n)\),整理得显式欧拉法迭代公式: $$ y_{n+1} = y_n + h \cdot f(x_n,y_n) $$ - 特点:单步显式格式,仅需前一节点的数值即可计算下一节点,计算简便,易于编程;每一步仅需一次函数值计算。

误差与收敛性

  • 局部截断误差:\(O(h^2)\),整体截断误差:\(O(h)\),为一阶收敛方法,精度较低。
  • 核心缺陷:随着迭代步数增加,近似值会持续偏离特解曲线,误差随迭代过程不断累积,仅适用于求解精度要求低、步长极小的场景。

2. 隐式欧拉法(后退欧拉法)

为提升欧拉法的稳定性,采用向后差商近似导数,迭代公式为: $$ y_{n+1} = y_n + h \cdot f(x_{n+1},y_{n+1}) $$ - 特点:公式右侧包含待求量\(y_{n+1}\),为隐式格式,无法直接求解,需通过迭代法(如不动点迭代、牛顿法)求解,每一步计算量远大于显式欧拉法。 - 误差与稳定性:截断误差与显式欧拉法一致,为一阶收敛;但数值稳定性远优于显式欧拉法,适用于刚性微分方程求解。

3. 改进欧拉法(预测-校正法/梯形欧拉法)

针对显式欧拉法误差过大的问题,通过预测+校正两步法优化,兼顾计算效率与精度,对应PPT中的二次近似校正方案。

核心算法步骤

  1. 预测步:用显式欧拉法计算\(y_{n+1}\)的初步预测值\(\tilde{y}_{n+1}\): $$ \tilde{y}_{n+1} = y_n + h \cdot f(x_n,y_n) $$
  2. 校正步:将预测值代入梯形求积公式,对斜率取平均,得到校正后的\(y_{n+1}\): $$ y_{n+1} = y_n + \frac{h}{2} \left[ f(x_n,y_n) + f(x_{n+1},\tilde{y}_{n+1}) \right] $$
  3. 几何意义:预测步得到的\(C_1\)点与校正步得到的\(E_1\)点分别位于特解曲线两侧,取二者的平均结果作为最终近似值,大幅抵消单向偏差。

误差与收敛性

  • 局部截断误差:\(O(h^3)\),整体截断误差:\(O(h^2)\),为二阶收敛方法,精度显著高于基础欧拉法。
  • 特点:仍为显式单步法,无需迭代求解,计算量仅为显式欧拉法的2倍,是兼顾精度与效率的入门级求解方法。

三、龙格-库塔法(Runge-Kutta, RK法)

龙格-库塔法是计算化学中求解常微分方程最常用的高精度单步法,核心思想与欧拉法一致,通过步长\(h\)实现从\(x_n\)\(x_{n+1}\)的迭代推进;本质是通过多步斜率采样与加权平均,等效于高阶泰勒展开,在不计算高阶导数的前提下,大幅提升求解精度。

微分方程的解可表示为积分形式: $$ y(x_{n+1}) = y(x_n) + \int_{x_n}^{x_{n+1}} f(x,y(x)) dx $$ 龙格-库塔法通过在区间\([x_n,x_{n+1}]\)内多个点采样斜率\(f(x,y)\),对斜率进行加权平均后,用数值积分实现从\(y_n\)\(y_{n+1}\)的递推,避免了泰勒展开需要计算高阶导数的缺陷。

1. 四阶龙格-库塔法(RK4)

四阶龙格-库塔法是工程与计算化学中应用最广泛的版本,截断误差为\(O(h^4)\),为四阶收敛,兼顾精度、稳定性与计算效率。

迭代公式

对于微分方程\(\frac{dy}{dx}=f(x,y)\),步长\(h\),四阶龙格-库塔法的迭代公式为: $$ y_{n+1} = y_n + \frac{h}{6} \left( k_1 + 2k_2 + 2k_3 + k_4 \right) $$ 其中4个斜率采样项分别为: $$ \begin{cases} k_1 = f(x_n, y_n) \quad \text{(区间左端点的斜率,欧拉法斜率)} \ k_2 = f\left( x_n + \frac{h}{2}, y_n + \frac{h}{2}k_1 \right) \quad \text{(区间中点的第一次斜率预测)} \ k_3 = f\left( x_n + \frac{h}{2}, y_n + \frac{h}{2}k_2 \right) \quad \text{(区间中点的第二次斜率校正)} \ k_4 = f\left( x_n + h, y_n + hk_3 \right) \quad \text{(区间右端点的斜率预测)} \end{cases} $$

  1. 精度特性:通过4次斜率采样,在一个步长内实现对复杂曲线的分段逼近,截断误差为\(O(h^4)\),远高于欧拉法与改进欧拉法。
  2. 计算特性:单步显式格式,仅需前一节点的\(y_n\)即可计算\(y_{n+1}\),易于编程实现;自启动能力强,无需额外的初始值计算。
  3. 稳定性:数值稳定性优异,适用于绝大多数非刚性常微分方程求解,是化学反应动力学、分子动力学粗粒化模拟、相分离动力学计算的首选基础算法。

关键结论:龙格-库塔法的阶数越高,单步精度越高,但单步所需的函数值计算次数也同步增加;四阶龙格-库塔法是精度与计算量的最优平衡点,因此成为工业界与学术界的通用标准方法。


四、一阶微分方程组的数值解

上述单方程的数值解法,可直接推广至一阶常微分方程组,是计算化学中多组分反应动力学、多变量相分离演化模拟的核心工具。

1. 一阶微分方程组的标准形式

\(m\)个因变量的一阶微分方程组初值问题,标准形式为: $$ \begin{cases} \frac{dy_1}{dx} = f_1(x, y_1, y_2, ..., y_m) \ \frac{dy_2}{dx} = f_2(x, y_1, y_2, ..., y_m) \ \quad \vdots \ \frac{dy_m}{dx} = f_m(x, y_1, y_2, ..., y_m) \end{cases} $$ 配套初始条件: $$ y_1(x_0)=y_{10},\ y_2(x_0)=y_{20},\ ...,\ y_m(x_0)=y_{m0} $$

2. 矩阵形式简化

引入向量记号: $$ \boldsymbol{y}(x) = \begin{bmatrix} y_1(x) \ y_2(x) \ \vdots \ y_m(x) \end{bmatrix}, \quad \boldsymbol{f}(x,\boldsymbol{y}) = \begin{bmatrix} f_1(x,\boldsymbol{y}) \ f_2(x,\boldsymbol{y}) \ \vdots \ f_m(x,\boldsymbol{y}) \end{bmatrix}, \quad \boldsymbol{y}0 = \begin{bmatrix} y $$ 方程组可简化为与单方程完全一致的向量形式: $$ \frac{d\boldsymbol{y}}{dx} = \boldsymbol{f}(x,\boldsymbol{y}), \quad \boldsymbol{y}(x_0) = \boldsymbol{y}_0 $$} \ y_{20} \ \vdots \ y_{m0} \end{bmatrix

3. 数值解法的推广

单方程的所有数值方法,均可直接替换为向量形式,应用于一阶微分方程组求解。

(1)显式欧拉法(方程组形式)

\[ \boldsymbol{y}_{n+1} = \boldsymbol{y}_n + h \cdot \boldsymbol{f}(x_n, \boldsymbol{y}_n) $$ 展开为分量形式,即对每个因变量分别执行欧拉迭代: $$ y_{i,n+1} = y_{i,n} + h \cdot f_i(x_n, y_{1,n}, y_{2,n}, ..., y_{m,n}) \quad (i=1,2,...,m) \]

(2)四阶龙格-库塔法(方程组形式)

向量形式迭代公式与单方程完全一致: $$ \boldsymbol{y}{n+1} = \boldsymbol{y}_n + \frac{h}{6} \left( \boldsymbol{k}_1 + 2\boldsymbol{k}_2 + 2\boldsymbol{k}_3 + \boldsymbol{k}_4 \right) $$ 其中斜率向量的分量形式为: $$ \begin{cases} k) \ k_{i,2} = f_i\left( x_n + \frac{h}{2}, y_{1,n}+\frac{h}{2}k_{1,1}, y_{2,n}+\frac{h}{2}k_{2,1}, ..., y_{m,n}+\frac{h}{2}k_{m,1} \right) \ k_{i,3} = f_i\left( x_n + \frac{h}{2}, y_{1,n}+\frac{h}{2}k_{1,2}, y_{2,n}+\frac{h}{2}k_{2,2}, ..., y_{m,n}+\frac{h}{2}k_{m,2} \right) \ k_{i,4} = f_i\left( x_n + h, y_{1,n}+hk_{1,3}, y_{2,n}+hk_{2,3}, ..., y_{m,n}+hk_{m,3} \right) \end{cases} $$ } = f_i(x_n, y_{1,n}, y_{2,n}, ..., y_{m,n\((i=1,2,...,m)\)


五、高阶微分方程与方程组的降阶求解

高阶微分方程无法直接用上述方法求解,核心解决方案是通过变量替换,将高阶微分方程/方程组降阶为一阶微分方程组,再用一阶方程组的数值方法求解。

1. 单变量n阶微分方程的降阶

标准形式

n阶常微分方程初值问题的标准形式为: $$ y^{(n)} = f\left( x, y, y', y'', ..., y^{(n-1)} \right) $$ 配套初始条件: $$ y(x_0)=y_0,\ y'(x_0)=y_0',\ y''(x_0)=y_0'',\ ...,\ y^{(n-1)}(x_0)=y_0^{(n-1)} $$

降阶方法

引入\(n\)个新的状态变量,定义: $$ \begin{cases} y_1 = y \ y_2 = y' \ y_3 = y'' \ \quad \vdots \ y_n = y^{(n-1)} \end{cases} $$ 对状态变量求导,可将原n阶微分方程转化为\(n\)个一阶微分方程组成的方程组: $$ \begin{cases} \frac{dy_1}{dx} = y_2 \ \frac{dy_2}{dx} = y_3 \ \quad \vdots \ \frac{dy_{n-1}}{dx} = y_n \ \frac{dy_n}{dx} = f(x, y_1, y_2, ..., y_n) \end{cases} $$ 配套初始条件转化为: $$ y_1(x_0)=y_0,\ y_2(x_0)=y_0',\ ...,\ y_n(x_0)=y_0^{(n-1)} $$

典型示例:二阶微分方程降阶

以二阶阻尼振动方程\(y'' + 2\zeta\omega_n y' + \omega_n^2 y = 0\)为例,初始条件\(y(0)=y_0,\ y'(0)=v_0\)。 1. 定义状态变量:\(y_1=y\)\(y_2=y'\); 2. 降阶为一阶方程组: $$ \begin{cases} \frac{dy_1}{dx} = y_2 \ \frac{dy_2}{dx} = -2\zeta\omega_n y_2 - \omega_n^2 y_1 \end{cases} $$ 3. 初始条件:\(y_1(0)=y_0\)\(y_2(0)=v_0\),即可用一阶方程组的数值方法求解。

2. 高阶微分方程组的降阶

对于多个高阶微分方程组成的方程组,可对每个方程分别执行降阶操作,最终转化为规模更大的一阶微分方程组。 - 典型示例:两个三阶微分方程组成的方程组,每个三阶微分方程可化为3个一阶微分方程,原方程组最终可转化为6个一阶微分方程组成的方程组,再用RK4等方法求解。

核心结论:所有常微分方程初值问题,无论是单方程/方程组、低阶/高阶,均可通过降阶转化为一阶微分方程组的标准形式,再通过欧拉法、龙格-库塔法等通用数值方法求解,这是计算化学中动力学模拟的核心底层逻辑。