<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Computational Physics on Square's Blog</title><link>https://square-yang.github.io/tags/computational-physics/</link><description>Recent content in Computational Physics on Square's Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://square-yang.github.io/tags/computational-physics/index.xml" rel="self" type="application/rss+xml"/><item><title>Computational Physics - 1</title><link>https://square-yang.github.io/notes/computational-physics-1/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0800</pubDate><guid>https://square-yang.github.io/notes/computational-physics-1/</guid><description>&lt;!-- Source: Square-Yang/Note-Physics, main, 8c405b9c0d1f59ac996ffac8d2b5568173d697ae, Computational Physics/Computational Physics - 1.md; SHA256 7ed08842c280ba250eaac9009545f148618506c31366df02b8163de64209b8fc. Prepared with scripts/prepare-note.mjs. --&gt;&#10;&lt;h2 id="1-numerical-representation-and-errors"&gt;1 Numerical Representation and Errors&lt;a class="heading-anchor" href="#1-numerical-representation-and-errors" aria-label="Link to 1 Numerical Representation and Errors" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="11-data-storage-and-floating-point-numbers"&gt;1.1 Data Storage and Floating-Point Numbers&lt;a class="heading-anchor" href="#11-data-storage-and-floating-point-numbers" aria-label="Link to 1.1 Data Storage and Floating-Point Numbers" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;位(bit)是二进制存储的最小单位, 取值为 0 或 1. 字节(byte): 常用的数据存储单位, 1 byte = 8 bit.&lt;/li&gt;&#10;&lt;li&gt;整型(int): 表示整数; 浮点(float): 表示实数. 数值精度受到存储位数限制, 浮点数常分为单精度浮点数与双精度浮点数.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="111-single-precision-floating-point-numbers"&gt;1.1.1 Single Precision Floating-Point Numbers&lt;a class="heading-anchor" href="#111-single-precision-floating-point-numbers" aria-label="Link to 1.1.1 Single Precision Floating-Point Numbers" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;以下采用 IEEE 754 的 binary32 格式.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; 占用 4 byte (32 bit), 正规数具有 24 bit 有效二进制精度, 通常约 7 位十进制有效数字. 字段结构如下.&lt;/p&gt;&#10;&lt;p&gt;32 bit 单精度浮点数的字段结构为 &lt;code&gt;S | EEEEEEEE | FFFFFFFFFFFFFFFFFFFFFFF&lt;/code&gt;, 即 1 个符号位, 8 个指数位和 23 个尾数位.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;S 为符号位: 0 为正, 1 为负.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;E 为指数位, 表示 2 的幂次. 存在 127 的偏移量, 即&#10;&lt;/p&gt;&#10;\[\text{实际指数}=\text{存储指数}-127\]&lt;p&gt;&#10;除去全 0 (00000000)和全 1 (11111111)(有其他用途), 指数范围为 1 至 254 (00000001 至 11111110), 于是正规数的实际指数范围为 \(-126\sim127\), 正的正规数范围为&#10;&lt;/p&gt;&#10;\[2^{-126}\leq x\leq (2-2^{-23})2^{127}\]&lt;p&gt;&#10;即约 \(1.1755\times10^{-38}\) 至 \(3.4028\times10^{38}\). 这是可表示数的范围, 不表示其中每个实数都能精确存储.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;F 为小数位, &lt;code&gt;FFF...FFF&lt;/code&gt; 是 23 bit 字段, \((0.F)_2\) 为其二进制小数值. 对 \(1\leq E\leq254\) 的正规数, 有效数为 \((1.F)_2\), 隐含的前导 1 不另占存储位. 数值为&#10;&lt;/p&gt;&#10;\[(-1)^S \times (1.F)_2 \times 2^{E-127}\]&lt;p&gt;&#10;一些特殊情况: \(E=0, F\neq0\) 为次正规数(subnormal number), 值为&#10;&lt;/p&gt;&#10;\[(-1)^S \times 2^{-126} \times (0.F)_2\]&lt;p&gt;&#10;最小正值为 \(2^{-149}\approx1.4013\times10^{-45}\). \(E=0,F=0\) 表示带符号的零 \(+0\) 或 \(-0\).&#10;\(E=255, F=0\), 值为&#10;&lt;/p&gt;&#10;\[(-1)^S\infty\]&lt;p&gt;&#10;\(E=255, F\neq0\) 表示 NaN(not a number), 可用于表示无效运算等产生的非数值结果.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 将 \(-5.75\) 转化为单精度浮点数.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 先将 \(-5.75\) 转化为二进制数:&lt;/p&gt;&#10;\[(-5.75)_{10}=-(101.11)_2=-(1.0111)_2\times2^2\]&lt;p&gt;于是得到: 符号位 \(S=1\), 指数位 \(E=10000001\), 小数位 \(F=0111000\cdots 000\)&lt;/p&gt;&#10;&lt;h4 id="112-double-precision-floating-point-numbers"&gt;1.1.2 Double Precision Floating-Point Numbers&lt;a class="heading-anchor" href="#112-double-precision-floating-point-numbers" aria-label="Link to 1.1.2 Double Precision Floating-Point Numbers" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;以下采用 IEEE 754 的 binary64 格式.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; 占用 8 byte (64 bit), 正规数具有 53 bit 有效二进制精度, 通常约 16 位十进制有效数字. 64 bit 分为 1 个符号位, 11 个指数位和 52 个小数位.&lt;/p&gt;&#10;\[\text{S}\underbrace{\text{EEE}\cdots\text{EEE}}_{\text{11个 E}}\underbrace{\text{FFF}\cdots\text{FFF}}_{\text{52个 F}}\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;S 为符号位: 0 为正, 1 为负.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;E 为指数位, 偏移量为 1023.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;F 为 52 bit 小数字段. 对 \(1\leq E\leq2046\) 的正规数, 值为&lt;/p&gt;&#10;\[(-1)^S\times(1.F)_2\times2^{E-1023}\]&lt;p&gt;正的正规数范围为&#10;&lt;/p&gt;&#10;\[\begin{gathered} 2^{-1022}\quad\text{至}\quad (2-2^{-52})2^{1023} \\ 2.2251\times10^{-308}\quad\text{至}\quad 1.7977\times10^{308} \end{gathered}\]&lt;p&gt;&#10;第二行给出近似十进制范围.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;类别&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;编码条件&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;次正规数&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(E=0,F\neq0\)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;带符号的零&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(E=0,F=0\)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;带符号的无穷大&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(E=2047,F=0\)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;NaN&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(E=2047,F\neq0\)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;次正规数的数值为&#10;&lt;/p&gt;&#10;\[(-1)^S(0.F)_2 2^{-1022}\]&lt;p&gt;&#10;最小正值为&#10;&lt;/p&gt;&#10;\[2^{-1074}\approx4.9407\times10^{-324}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="12-computational-errors"&gt;1.2 Computational Errors&lt;a class="heading-anchor" href="#12-computational-errors" aria-label="Link to 1.2 Computational Errors" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; 舍入误差(round-off error). 输入数据的浮点表示及计算结果舍入引起的误差.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; 截断误差(truncation error). 例如 Taylor 展开的计算中&#10;&lt;/p&gt;&#10;\[e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\cdots+\frac{x^n}{n!}+R_n(x)\]&lt;p&gt;其中 Lagrange remainder&lt;/p&gt;&#10;\[R_n(x)=\frac{\mathrm{e}^\xi}{(n+1)!}x^{n+1},\qquad \min(0,x)\lt\xi\lt\max(0,x),\quad x\neq0\]&lt;p&gt;\(x=0\) 时 \(R_n(0)=0\).&lt;/p&gt;&#10;&lt;h2 id="2-linear-algebra-methods"&gt;2 Linear Algebra Methods&lt;a class="heading-anchor" href="#2-linear-algebra-methods" aria-label="Link to 2 Linear Algebra Methods" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;以下矩阵和向量取实数值; 方程组中的系数矩阵为方阵, QR 和 SVD 小节另外讨论矩形矩阵. 复数推广需要把内积和正交分解中的转置改为 Hermitian 共轭转置. 该部分旨在求解线性方程组&lt;/p&gt;&#10;\[\mathbf{A} \cdot { \mathbf{x} } = { \mathbf{b} }\]&lt;h3 id="21-norms-"&gt;2.1 Norms *&lt;a class="heading-anchor" href="#21-norms-" aria-label="Link to 2.1 Norms *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;h4 id="211-vector-norms"&gt;2.1.1 Vector Norms&lt;a class="heading-anchor" href="#211-vector-norms" aria-label="Link to 2.1.1 Vector Norms" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;向量的范数可以用来测量向量的长度, 定义:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;1-范数&lt;/p&gt;&#10;\[\|\mathbf{x}\|_1=|x_0|+|x_1|+\cdots+|x_{n-1}|\]&lt;p&gt;即曼哈顿距离.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;2-范数&lt;/p&gt;&#10;\[\|\mathbf{x}\|_2=\sqrt{|x_0|^2+|x_1|^2+\cdots+|x_{n-1}|^2}\]&lt;p&gt;即 Euclidean distance.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(\infty\)-范数&lt;/p&gt;&#10;\[\|\mathbf{x}\|_\infty=\max_{0\leq i\leq n-1}|x_i|\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(p\)-范数, \(1\leq p\lt\infty\)&lt;/p&gt;&#10;\[\|\mathbf{x}\|_p=(|x_0|^p+|x_1|^p+\cdots+|x_{n-1}|^p)^{1/p}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Cauchy-Schwarz inequality:&lt;/p&gt;&#10;\[|\mathbf{x}^{\mathsf{T}}\mathbf{y}|\leq \|\mathbf{x}\|_2\|\mathbf{y}\|_2\]&lt;p&gt;三角不等式:&lt;/p&gt;&#10;\[\|\mathbf{x}+\mathbf{y}\|\leq \|\mathbf{x}\|+\|\mathbf{y}\|\]&lt;h4 id="212-matrix-norms"&gt;2.1.2 Matrix Norms&lt;a class="heading-anchor" href="#212-matrix-norms" aria-label="Link to 2.1.2 Matrix Norms" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;\[\begin{aligned} \|\mathbf{A}\|_F&amp;=\sqrt{\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}|a_{ij}|^2},\\ \|\mathbf{A}\|_\infty&amp;=\max_{0\leq i\leq m-1}\sum_{j=0}^{n-1}|a_{ij}|,\\ \|\mathbf{A}\mathbf{z}\|&amp;\leq \|\mathbf{A}\|\cdot\|\mathbf{z}\|. \end{aligned}\]&lt;p&gt;这里矩阵范数与向量范数须相容, 例如 \(\|\mathbf{A}\mathbf{z}\|_\infty\leq\|\mathbf{A}\|_\infty\|\mathbf{z}\|_\infty\) 和 \(\|\mathbf{A}\mathbf{z}\|_2\leq\|\mathbf{A}\|_F\|\mathbf{z}\|_2\). 诱导 2-范数定义为 \(\|\mathbf{A}\|_2=\max_{\mathbf{z}\neq0}\|\mathbf{A}\mathbf{z}\|_2/\|\mathbf{z}\|_2\); 它通常不等于 Frobenius 范数.&lt;/p&gt;&#10;&lt;p&gt;对于可逆方阵, 可以定义条件数:&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;\[K(\mathbf{A})=\|\mathbf{A}\|\cdot\|\mathbf{A}^{-1}\|\]&lt;p&gt;条件数度量问题对输入扰动的敏感性, 与求解算法是否数值稳定是不同的概念. 对诱导 2-范数, \(K_2(\mathbf{A})=\sigma_{\max}/\sigma_{\min}\). 若只扰动右端且 \(\mathbf{b}\neq0\), 则&lt;/p&gt;&#10;\[\frac{\|\delta\mathbf{x}\|}{\|\mathbf{x}\|}\leq K(\mathbf{A})\frac{\|\delta\mathbf{b}\|}{\|\mathbf{b}\|}.\]&lt;p&gt;可用可逆矩阵 \(\mathbf{M}\) 作左预条件, 求解 \(\mathbf{M}^{-1}\mathbf{A}\mathbf{x}=\mathbf{M}^{-1}\mathbf{b}\), 目标是改善条件数或迭代收敛, 但一般不能保证条件数接近 1. 对称正定问题使用 CG 时, 还须采用保持其对称正定结构的预条件形式.&lt;/p&gt;&#10;&lt;h3 id="22-gaussian-elimination"&gt;2.2 Gaussian Elimination&lt;a class="heading-anchor" href="#22-gaussian-elimination" aria-label="Link to 2.2 Gaussian Elimination" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Gauss 消元法是最经典的求解线性方程组的方法, 考虑线性方程组:&lt;/p&gt;&#10;\[\begin{pmatrix} a_{11} &amp; a_{12} &amp; a_{13} &amp; a_{14}\\ a_{21} &amp; a_{22} &amp; a_{23} &amp; a_{24}\\ a_{31} &amp; a_{32} &amp; a_{33} &amp; a_{34}\\ a_{41} &amp; a_{42} &amp; a_{43} &amp; a_{44} \end{pmatrix} \begin{pmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{pmatrix} = \begin{pmatrix} w_1\\ w_2\\ w_3\\ w_4 \end{pmatrix}.\]&lt;p&gt;以下无换行公式要求各步主元非零; 对非奇异方阵可通过主元选取避免零主元. 逐列消元, 先消去第一列:&lt;/p&gt;&#10;\[\begin{pmatrix} a_{11} &amp; a_{12} &amp; a_{13} &amp; a_{14}\\ 0 &amp; a_{22}-\dfrac{a_{21}a_{12}}{a_{11}} &amp; a_{23}-\dfrac{a_{21}a_{13}}{a_{11}} &amp; a_{24}-\dfrac{a_{21}a_{14}}{a_{11}}\\ 0 &amp; a_{32}-\dfrac{a_{31}a_{12}}{a_{11}} &amp; a_{33}-\dfrac{a_{31}a_{13}}{a_{11}} &amp; a_{34}-\dfrac{a_{31}a_{14}}{a_{11}}\\ 0 &amp; a_{42}-\dfrac{a_{41}a_{12}}{a_{11}} &amp; a_{43}-\dfrac{a_{41}a_{13}}{a_{11}} &amp; a_{44}-\dfrac{a_{41}a_{14}}{a_{11}} \end{pmatrix} \begin{pmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{pmatrix} = \begin{pmatrix} y_1\\ w_2^{(2)}\\ w_3^{(2)}\\ w_4^{(2)} \end{pmatrix}.\]&lt;p&gt;可以把方程组写成如下形式:&lt;/p&gt;&#10;\[\begin{pmatrix} b_{11} &amp; b_{12} &amp; b_{13} &amp; b_{14}\\ 0 &amp; a_{22}^{(2)} &amp; a_{23}^{(2)} &amp; a_{24}^{(2)}\\ 0 &amp; a_{32}^{(2)} &amp; a_{33}^{(2)} &amp; a_{34}^{(2)}\\ 0 &amp; a_{42}^{(2)} &amp; a_{43}^{(2)} &amp; a_{44}^{(2)} \end{pmatrix} \begin{pmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{pmatrix} = \begin{pmatrix} y_1\\ w_2^{(2)}\\ w_3^{(2)}\\ w_4^{(2)} \end{pmatrix}.\]&lt;p&gt;则新, 旧系数的关系为:&lt;/p&gt;&#10;\[\begin{aligned} &amp;b_{1k}=a_{1k}, &amp;&amp;k=1,2,3,4, &amp;&amp;a_{ik}^{(2)}=a_{ik}-\frac{a_{i1}a_{1k}}{a_{11}}, &amp;&amp;i,k=2,3,4,\\ &amp;y_1=w_1, &amp;&amp; &amp;&amp;w_i^{(2)}=w_i-\frac{a_{i1}w_1}{a_{11}}, &amp;&amp;i=2,3,4. \end{aligned}\]&lt;p&gt;再以此类推, 向前消元, 得到系数的关系:&lt;/p&gt;&#10;\[\begin{aligned} &amp;a_{ik}^{(m+1)}=a_{ik}^{(m)}-\frac{a_{im}^{(m)}a_{mk}^{(m)}}{a_{mm}^{(m)}}, &amp;&amp;i,k=m+1,m+2,\cdots,n,\\ &amp;w_i^{(m+1)}=w_i^{(m)}-\frac{a_{im}^{(m)}w_m^{(m)}}{a_{mm}^{(m)}}, &amp;&amp;i=m+1,m+2,\cdots,n. \end{aligned}\]&lt;p&gt;最终变成上三角矩阵:&lt;/p&gt;&#10;\[\begin{pmatrix} b_{11} &amp; b_{12} &amp; b_{13} &amp; b_{14}\\ 0 &amp; b_{22} &amp; b_{23} &amp; b_{24}\\ 0 &amp; 0 &amp; b_{33} &amp; b_{34}\\ 0 &amp; 0 &amp; 0 &amp; b_{44} \end{pmatrix} \begin{pmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{pmatrix} = \begin{pmatrix} y_1\\ y_2\\ y_3\\ y_4 \end{pmatrix}.\]&lt;p&gt;向后回代得到最终的解:&lt;/p&gt;&#10;\[x_m=\frac{1}{b_{mm}}\left(y_m-\sum_{k=m+1}^{n}b_{mk}x_k\right),\qquad m=n,n-1,\cdots,1.\]&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;Partial Pivoting&lt;/strong&gt; 列主元消元法是 Gauss 消元法的稳定性改进.&lt;/p&gt;&#10;&lt;p&gt;每次消元前, 先在第 \(m\) 列的第 \(m\) 行及以下寻找绝对值最大的元素, 将其所在行与第 \(m\) 行交换, 再进行普通 Gauss 消元. 这样可以避免主元 \(a_{mm}^{(m)}\) 太小时放大舍入误差.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="23-augmented-matrix-elimination-"&gt;2.3 Augmented Matrix Elimination *&lt;a class="heading-anchor" href="#23-augmented-matrix-elimination-" aria-label="Link to 2.3 Augmented Matrix Elimination *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;增广矩阵把方程 \(\mathbf{A}\mathbf{x}=\mathbf{y}\) 的系数和右端合在一起, 对两者同时作相同行变换. 本节初始右端记为 \(\mathbf{y}\):&lt;/p&gt;&#10;\[\tilde{\mathbf{A}}=[\mathbf{A},\mathbf{y}] = \begin{pmatrix} a_{11} &amp; a_{12} &amp; a_{13} &amp; \cdots &amp; a_{1n} &amp; y_1\\ a_{21} &amp; a_{22} &amp; a_{23} &amp; \cdots &amp; a_{2n} &amp; y_2\\ a_{31} &amp; a_{32} &amp; a_{33} &amp; \cdots &amp; a_{3n} &amp; y_3\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \vdots\\ a_{n1} &amp; a_{n2} &amp; a_{n3} &amp; \cdots &amp; a_{nn} &amp; y_n \end{pmatrix}.\]&lt;p&gt;第 \(m\) 次消元, 把第 \(m\) 列元素消为零:&lt;/p&gt;&#10;\[E_j'=E_j-\frac{a_{jm}^{(m)}}{a_{mm}^{(m)}}E_m,\qquad j=m+1,m+2,\cdots,n.\]&lt;p&gt;得到上三角方程 \(\mathbf{B}\mathbf{x}=\mathbf{c}\) 后, 从 \(i=n\) 到 \(1\) 依次回代 \(x_i=(c_i-\sum_{j=i+1}^n b_{ij}x_j)/b_{ii}\), 要求主元非零. 右端 \(\mathbf{c}\) 须使用经过同样行变换后的值. 主元选取时也须交换整行, 包括右端列.&lt;/p&gt;&#10;&lt;h3 id="24-gauss-jordan-elimination-"&gt;2.4 Gauss-Jordan Elimination *&lt;a class="heading-anchor" href="#24-gauss-jordan-elimination-" aria-label="Link to 2.4 Gauss-Jordan Elimination *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;继续消元法是增广矩阵法的变种, 在得到上三角矩阵后继续消元, 得到对角矩阵:&lt;/p&gt;&#10;\[\begin{pmatrix} a_{11}^{(1)} &amp; 0 &amp; 0 &amp; \cdots &amp; 0 &amp; w_1^{(1)}\\ 0 &amp; a_{22}^{(2)} &amp; 0 &amp; \cdots &amp; 0 &amp; w_2^{(2)}\\ 0 &amp; 0 &amp; a_{33}^{(3)} &amp; \cdots &amp; 0 &amp; w_3^{(3)}\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; a_{nn}^{(n)} &amp; w_n^{(n)} \end{pmatrix}.\]&lt;p&gt;向后回代得到方程的解:&lt;/p&gt;&#10;\[x_m=\frac{w_m^{(m)}}{a_{mm}^{(m)}},\qquad m=n,n-1,\cdots,1.\]&lt;p&gt;这种方法对于求解相似的方程组十分有效:&lt;/p&gt;&#10;\[\begin{cases} \mathbf{A}\mathbf{x}=\mathbf{b}_1,\\ \mathbf{A}\mathbf{x}=\mathbf{b}_2. \end{cases}\]&lt;p&gt;可以将多个右端同时增广, 或保存并复用完整的行变换来处理新的右端. 仅保存最终对角系数矩阵, 不能直接把未变换的新右端代入. 多个右端也常通过复用 LU 分解来求解.&lt;/p&gt;&#10;&lt;h3 id="25-lu-decomposition"&gt;2.5 LU Decomposition&lt;a class="heading-anchor" href="#25-lu-decomposition" aria-label="Link to 2.5 LU Decomposition" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;h4 id="251-lu-decomposition"&gt;2.5.1 LU Decomposition&lt;a class="heading-anchor" href="#251-lu-decomposition" aria-label="Link to 2.5.1 LU Decomposition" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;LU 分解法是将系数矩阵 \(\mathbf{A}\) 分解为一个下三角矩阵 \(\mathbf{L}\) 和一个上三角矩阵 \(\mathbf{U}\) 的乘积&lt;/p&gt;&#10;\[\mathbf{L}\mathbf{U} = \mathbf{A}\]&lt;p&gt;&#10;设 \(\mathbf{L} \mathbf{y} = \mathbf{b}\), 方程化为 \(\mathbf{U} \mathbf{x} = \mathbf{y}\). 以下无主元公式要求消元主元非零; 实际计算通常使用部分主元选取, 用置换矩阵 \(\mathbf{P}\) 记录行交换, 左乘表示重排行. 写成 \(\mathbf{P}\mathbf{A}=\mathbf{L}\mathbf{U}\), 并把前代右端改为 \(\mathbf{P}\mathbf{b}\).&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对于第一个方程 \(\mathbf{L}\mathbf{y}=\mathbf{b}\), 向前回代得到方程的解:&#10;&lt;/p&gt;&#10;\[\begin{aligned} y_1 &amp;= \frac{b_1}{l_{11}},\\ y_m &amp;= \frac{1}{l_{mm}}\left(b_m-\sum_{k=1}^{m-1}l_{mk}y_k\right), \qquad m=2,3,\cdots,n. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对于第二个方程 \(\mathbf{U}\mathbf{x}=\mathbf{y}\), 向后回代得到方程的解:&#10;&lt;/p&gt;&#10;\[\begin{aligned} x_n &amp;= \frac{y_n}{\beta_{nn}},\\ x_m &amp;= \frac{1}{\beta_{mm}}\left(y_m-\sum_{k=m+1}^{n}\beta_{mk}x_k\right), \qquad m=n-1,n-2,\cdots,1. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Doolittle 算法求解 \(\mathbf{L}\) 和 \(\mathbf{U}\)&lt;/strong&gt;: 按照行优先的顺序计算 \(\mathbf{L}\) 和 \(\mathbf{U}\) 的元素. 不妨将 \(\mathbf{L}\) 的对角元素都设为 1(这是合理的, 因为可以把 \(\mathbf{U}\) 的对角元乘一个相应的系数). 即&#10;&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} 1 &amp; 0 &amp; 0 &amp; \cdots &amp; 0\\ \alpha_{21} &amp; 1 &amp; 0 &amp; \cdots &amp; 0\\ \alpha_{31} &amp; \alpha_{32} &amp; 1 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ \alpha_{n1} &amp; \alpha_{n2} &amp; \alpha_{n3} &amp; \cdots &amp; 1 \end{pmatrix} \begin{pmatrix} \beta_{11} &amp; \beta_{12} &amp; \beta_{13} &amp; \cdots &amp; \beta_{1n}\\ 0 &amp; \beta_{22} &amp; \beta_{23} &amp; \cdots &amp; \beta_{2n}\\ 0 &amp; 0 &amp; \beta_{33} &amp; \cdots &amp; \beta_{3n}\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; \beta_{nn} \end{pmatrix}.\]&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对于第 1 行, 先计算 \(\mathbf{U}\) 的第一行元素&#10;&lt;/p&gt;&#10;\[\beta_{1j}=a_{1j},\qquad j=1,2,\cdots,n.\]&lt;p&gt;&#10;因为 \(\mathbf{L}\) 的第一行元素为 \((1,0,0,\cdots,0)\).&lt;/p&gt;&#10;&lt;p&gt;再求解 \(\mathbf{L}\) 的第一列:&#10;&lt;/p&gt;&#10;\[\alpha_{i1}\beta_{11} = a_{i1} \implies \alpha_{i1} = \frac{a_{i1}}{\beta_{11}}, \qquad i=1,2,\cdots,n.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;再从 2 到 \(n-1\), 依次进行递推. 先求 \(\mathbf{U}\) 的第 \(i\) 个对角元素.&#10;&lt;/p&gt;&#10;\[a_{ii} = \sum_{k=1}^{i-1}\alpha_{ik}\beta_{ki}+\beta_{ii} \implies \beta_{ii} = a_{ii}-\sum_{k=1}^{i-1}\alpha_{ik}\beta_{ki}.\]&lt;p&gt;&#10;再求 \(\mathbf{U}\) 的第 \(i\) 行非对角元素:&#10;&lt;/p&gt;&#10;\[a_{ij} = \sum_{k=1}^{i-1}\alpha_{ik}\beta_{kj}+\beta_{ij} \implies \beta_{ij} = a_{ij}-\sum_{k=1}^{i-1}\alpha_{ik}\beta_{kj}, \qquad j=i+1,i+2,\cdots,n.\]&lt;p&gt;下面来求 \(\mathbf{L}\) 的第 \(i\) 列元素&#10;&lt;/p&gt;&#10;\[a_{ji}=\sum_{k=1}^{i-1}\alpha_{jk}\beta_{ki}+\alpha_{ji}\beta_{ii} \implies \alpha_{ji}=\frac{1}{\beta_{ii}}\left(a_{ji}-\sum_{k=1}^{i-1}\alpha_{jk}\beta_{ki}\right), \qquad j=i+1,i+2,\cdots,n.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;最后求 \(\mathbf{U}\) 的第 \(n\) 个对角元素.&#10;&lt;/p&gt;&#10;\[a_{nn} = \sum_{k=1}^{n-1}\alpha_{nk}\beta_{kn}+\beta_{nn} \implies \beta_{nn} = a_{nn}-\sum_{k=1}^{n-1}\alpha_{nk}\beta_{kn}.\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; Gauss 消元与 LU 的关系: 不换行的 Gauss 消元中, 消元后的上三角矩阵就是 \(\mathbf{U}\). 第 \(j\) 列消元时使用的乘数&#10;&lt;/p&gt;&#10;\[m_{ij}=\frac{a_{ij}^{(j)}}{a_{jj}^{(j)}},\qquad i=j+1,\cdots,n\]&lt;p&gt;填入 \(\mathbf{L}\) 的第 \(i\) 行第 \(j\) 列, 且 \(\mathbf{L}\) 的对角元为 1. 因此, 从 Gauss 消元过程可以直接读出 \(\mathbf{A}=\mathbf{L}\mathbf{U}\): \(\mathbf{U}\) 是消元结果, \(\mathbf{L}\) 记录消元乘数.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 由 LU 分解求逆矩阵和行列式: 若 \(\mathbf{A}=\mathbf{L}\mathbf{U}\), 则&#10;&lt;/p&gt;&#10;\[\mathbf{A}^{-1}=\mathbf{U}^{-1}\mathbf{L}^{-1}, \qquad \det(\mathbf{A})=\det(\mathbf{L})\det(\mathbf{U}).\]&lt;p&gt;对于 Doolittle 分解, \(\mathbf{L}\) 是单位下三角矩阵, 因此 \(\det(\mathbf{L})=1\), 从而&lt;/p&gt;&#10;\[\det(\mathbf{A})=\det(\mathbf{U})=\prod_{i=1}^{n}\beta_{ii}.\]&lt;p&gt;若 \(\mathbf{P}\mathbf{A}=\mathbf{L}\mathbf{U}\), 则须计入行置换符号:&lt;/p&gt;&#10;\[\det(\mathbf{A})=\det(\mathbf{P})\prod_{i=1}^{n}\beta_{ii}.\]&lt;h4 id="252-lu-decomposition-for-tridiagonal-matrices"&gt;2.5.2 LU Decomposition for Tridiagonal Matrices&lt;a class="heading-anchor" href="#252-lu-decomposition-for-tridiagonal-matrices" aria-label="Link to 2.5.2 LU Decomposition for Tridiagonal Matrices" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;对于三对角矩阵 \(\mathbf{A}\), 可以写作&lt;/p&gt;&#10;\[\mathbf{A}= \begin{pmatrix} b_1 &amp; c_1 &amp; 0 &amp; \cdots &amp; 0\\ a_2 &amp; b_2 &amp; c_2 &amp; \cdots &amp; 0\\ 0 &amp; a_3 &amp; b_3 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; b_n \end{pmatrix}\]&lt;p&gt;以三对角矩阵为系数矩阵的线性方程组 \(\mathbf{A}\mathbf{x}=\mathbf{f}\):&lt;/p&gt;&#10;\[a_i x_{i-1}+b_i x_i+c_i x_{i+1}=f_i,\qquad i=1,2,\cdots,n.\]&lt;p&gt;其中 \(a_1=0, c_n=0\).&lt;/p&gt;&#10;&lt;p&gt;可以作针对三对角矩阵的一类特殊的 LU 分解(称为 Thomas algorithm)&lt;/p&gt;&#10;\[\mathbf{A} =\mathbf{L}\mathbf{U} = \begin{pmatrix} 1 &amp; 0 &amp; 0 &amp; \cdots &amp; 0\\ \alpha_2 &amp; 1 &amp; 0 &amp; \cdots &amp; 0\\ 0 &amp; \alpha_3 &amp; 1 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; 1 \end{pmatrix} \begin{pmatrix} \beta_1 &amp; c_1 &amp; 0 &amp; \cdots &amp; 0\\ 0 &amp; \beta_2 &amp; c_2 &amp; \cdots &amp; 0\\ 0 &amp; 0 &amp; \beta_3 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; \beta_n \end{pmatrix}.\]&lt;p&gt;即 \(\mathbf{L}\) 仅有下次对角, 且主对角为 \(1\), \(\mathbf{U}\) 仅有与 \(\mathbf{A}\) 一致的上次对角. 递推关系为&lt;/p&gt;&#10;\[\beta_1 = b_1,\qquad \alpha_i = \frac{a_i}{\beta_{i-1}}\qquad \beta_i = b_i-\alpha_i c_{i-1},\qquad i=2,3,\cdots,n.\]&lt;p&gt;该无主元递推要求所有主元 \(\beta_i\neq0\); 严格对角占优或对称正定等条件可保证不出现零主元. 一般非奇异三对角矩阵仍可能需要主元选取. Thomas 算法复杂度为 \(O(n)\).&lt;/p&gt;&#10;&lt;h3 id="26-ldl-transpose-decomposition-"&gt;2.6 LDL Transpose Decomposition *&lt;a class="heading-anchor" href="#26-ldl-transpose-decomposition-" aria-label="Link to 2.6 LDL Transpose Decomposition *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;对于对称正定矩阵, 可以作 \(\mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf{T}}\) 分解. 若 \(\mathbf{A}\) 满足&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A} &amp;= \mathbf{A}^{\mathsf{T}},\\ \mathbf{x}^{\mathsf{T}}\mathbf{A}\mathbf{x} &amp;&gt;0,\qquad \forall \mathbf{x}\neq\mathbf{0}, \end{aligned}\]&lt;p&gt;则可写成&lt;/p&gt;&#10;\[\mathbf{A}=\mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf{T}}.\]&lt;p&gt;其中 \(\mathbf{L}\) 为单位下三角矩阵, \(\mathbf{D}\) 为正对角矩阵. 这里仅讨论对称正定情形; 一般不定对称矩阵可能需要置换及含 \(2\times2\) 块的 \(\mathbf{D}\). 三维情形下:&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} a_{11} &amp; a_{12} &amp; a_{13}\\ a_{12} &amp; a_{22} &amp; a_{23}\\ a_{13} &amp; a_{23} &amp; a_{33} \end{pmatrix} = \begin{pmatrix} 1 &amp; 0 &amp; 0\\ l_{21} &amp; 1 &amp; 0\\ l_{31} &amp; l_{32} &amp; 1 \end{pmatrix} \begin{pmatrix} d_{11} &amp; 0 &amp; 0\\ 0 &amp; d_{22} &amp; 0\\ 0 &amp; 0 &amp; d_{33} \end{pmatrix} \begin{pmatrix} 1 &amp; l_{21} &amp; l_{31}\\ 0 &amp; 1 &amp; l_{32}\\ 0 &amp; 0 &amp; 1 \end{pmatrix}\]&lt;h3 id="27-cholesky-decomposition"&gt;2.7 Cholesky Decomposition&lt;a class="heading-anchor" href="#27-cholesky-decomposition" aria-label="Link to 2.7 Cholesky Decomposition" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;对于对称正定矩阵 \(\mathbf{A}\), 即&lt;/p&gt;&#10;\[\mathbf{A} = \mathbf{A}^{\mathsf{T}},\qquad \mathbf{x}^{\mathsf{T}}\mathbf{A}\mathbf{x} &gt;0,\qquad \forall \mathbf{x}\neq\mathbf{0}\]&lt;p&gt;&lt;strong&gt;Cholesky 分解&lt;/strong&gt; 利用下三角矩阵 \(\mathbf{L}\) 分解&#10;&lt;/p&gt;&#10;\[\mathbf{A}=\mathbf{L}\mathbf{L}^{\mathsf{T}}\]&lt;p&gt;&#10;&lt;strong&gt;Example&lt;/strong&gt; 三维 Cholesky 分解.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 考虑&#10;&lt;/p&gt;&#10;\[\mathbf{L}\mathbf{L}^{\mathsf{T}} = \begin{pmatrix} l_{11} &amp; 0 &amp; 0\\ l_{21} &amp; l_{22} &amp; 0\\ l_{31} &amp; l_{32} &amp; l_{33} \end{pmatrix} \begin{pmatrix} l_{11} &amp; l_{21} &amp; l_{31}\\ 0 &amp; l_{22} &amp; l_{32}\\ 0 &amp; 0 &amp; l_{33} \end{pmatrix} = \begin{pmatrix} l_{11}^2 &amp; l_{11}l_{21} &amp; l_{11}l_{31}\\ l_{11}l_{21} &amp; l_{21}^2+l_{22}^2 &amp; l_{21}l_{31}+l_{22}l_{32}\\ l_{11}l_{31} &amp; l_{21}l_{31}+l_{22}l_{32} &amp; l_{31}^2+l_{32}^2+l_{33}^2 \end{pmatrix}\]&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第一列:&#10;&lt;/p&gt;&#10;\[l_{11} = \sqrt{a_{11}},\qquad l_{i1} = \frac{a_{i1}}{l_{11}},\qquad i=2,3,\cdots,n.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第 \(m\) 列:&#10;&lt;/p&gt;&#10;\[\begin{aligned} \sum_{k=1}^{m}l_{mk}^2 &amp;= a_{mm} \implies l_{mm}=\sqrt{a_{mm}-\sum_{k=1}^{m-1}l_{mk}^2},\\ \sum_{k=1}^{m}l_{ik}l_{mk} &amp;= a_{im} \implies l_{im}=\frac{1}{l_{mm}}\left(a_{im}-\sum_{k=1}^{m-1}l_{ik}l_{mk}\right),\\ &amp;\qquad i=m+1,m+2,\cdots,n. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="28-jacobi-iteration"&gt;2.8 Jacobi Iteration&lt;a class="heading-anchor" href="#28-jacobi-iteration" aria-label="Link to 2.8 Jacobi Iteration" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Jacobi 迭代是求解线性方程组 \(\mathbf{A}\mathbf{x}=\mathbf{b}\) 的一种迭代方法.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Notation&lt;/strong&gt; 把矩阵拆成对角部分和非对角部分. 记&lt;/p&gt;&#10;\[\mathbf{A}=\mathbf{D}+\mathbf{L}+\mathbf{U},\]&lt;p&gt;其中 \(\mathbf{D}\) 是对角部分, \(\mathbf{L}\) 是严格下三角部分, \(\mathbf{U}\) 是严格上三角部分:&lt;/p&gt;&#10;\[D_{ij}=a_{ij}\delta_{ij}, \qquad L_{ij}= \begin{cases} a_{ij}, &amp; i&gt;j,\\ 0, &amp; i\leq j, \end{cases} \qquad U_{ij}= \begin{cases} a_{ij}, &amp; i\lt j,\\ 0, &amp; i\geq j. \end{cases}\]&lt;ul&gt;&#10;&lt;li&gt;要求对角元非零.&lt;/li&gt;&#10;&lt;li&gt;对迭代矩阵 \(\mathbf{B}_J=-\mathbf{D}^{-1}(\mathbf{L}+\mathbf{U})\), 误差满足 \(\mathbf{e}^{(k)}=\mathbf{B}_J^k\mathbf{e}^{(0)}\). 因而对任意初值收敛等价于谱半径 \(\rho(\mathbf{B}_J)\lt 1\); 严格行对角占优给出 \(\|\mathbf{B}_J\|_\infty\lt 1\), 是一个易检验的充分条件. 对称正定本身并不保证 Jacobi 收敛.&lt;/li&gt;&#10;&lt;li&gt;下述相邻迭代差只是停止指标, 还应检查残差 \(\|\mathbf{b}-\mathbf{A}\mathbf{x}\|\le\mathrm{atol}+\mathrm{rtol}\|\mathbf{b}\|\), 并设置最大迭代次数.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;把线性方程组的第 \(i\) 个方程写作&#10;&lt;/p&gt;&#10;\[a_{i1}x_1+a_{i2}x_2+\cdots+a_{ii}x_i+\cdots+a_{in}x_n = b_i \implies x_i = \frac{1}{a_{ii}}\left(b_i-\sum_{j=1,\,j\neq i}^{n}a_{ij}x_j\right).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;代入一组初始值(例如 \((0,0,0,\cdots,0)\)), 得到第一轮迭代的结果. 继续迭代, 直到满足某个收敛条件为止. 递推关系为&#10;&lt;/p&gt;&#10;\[x_i^{(k)}=\frac{1}{a_{ii}}\left(b_i-\sum_{j=1,\,j\neq i}^{n}a_{ij}x_j^{(k-1)}\right),\qquad i=1,2,\cdots,n.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;相邻迭代差的停止指标(例), 仅在 \(\|\mathbf{x}^{(k)}\|_\infty\neq0\) 时使用:&#10;&lt;/p&gt;&#10;\[\frac{\|\mathbf{x}^{(k)}-\mathbf{x}^{(k-1)}\|_{\infty}}{\|\mathbf{x}^{(k)}\|_{\infty}}\lt 10^{-3}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;从而&#10;&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{x}=\mathbf{b} \implies \mathbf{x} =\mathbf{D}^{-1}\mathbf{b} -\mathbf{D}^{-1}(\mathbf{L}+\mathbf{U})\mathbf{x}.\]&lt;p&gt;迭代关系的矩阵形式为&lt;/p&gt;&#10;\[\mathbf{x}^{(k)} = \mathbf{D}^{-1}\mathbf{b} - \mathbf{D}^{-1}(\mathbf{L}+\mathbf{U})\mathbf{x}^{(k-1)}\]&lt;h3 id="29-steepest-descent-method"&gt;2.9 Steepest Descent Method&lt;a class="heading-anchor" href="#29-steepest-descent-method" aria-label="Link to 2.9 Steepest Descent Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;最速下降法是求解线性方程组 \(\mathbf{A} \mathbf{x}=\mathbf{b}\) 的一种迭代方法, 适用于系数矩阵 \(\mathbf{A}\) 为对称正定矩阵的情况. 它的思路是把求解线性方程组转化为求解一个二次函数的最小值问题.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;定义二次函数&lt;/p&gt;&#10;\[g(\mathbf{x})=\frac{1}{2}\mathbf{x}^{\mathsf{T}}\mathbf{A}\mathbf{x}-\mathbf{b}^{\mathsf{T}}\mathbf{x}\]&lt;p&gt;梯度 \(\nabla g(\mathbf{x})=\mathbf{A}\mathbf{x}-\mathbf{b}\). \(\nabla g=0\) 的位置即为原本方程组的解.&lt;/p&gt;&#10;&lt;p&gt;考虑寻找最小值. 给定 \(\mathbf{x}^{(0)}\), 若初始残差 \(\mathbf{b}-\mathbf{A}\mathbf{x}^{(0)}=0\), 则已得到解; 否则最速下降法取 \(\mathbf{v}^{(1)}=\mathbf{b}-\mathbf{A}\mathbf{x}^{(0)}\), 并在每步使用新的非零残差作为方向.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;考虑沿试探方向的移动&#10;&lt;/p&gt;&#10;\[g(\mathbf{x}+t\mathbf{v}) = g(\mathbf{x})-t\langle \mathbf{b}-\mathbf{A}\mathbf{x},\mathbf{v}\rangle +\frac{1}{2}t^2\langle \mathbf{v},\mathbf{A}\mathbf{v}\rangle.\]&lt;p&gt;&#10;其中内积 \(\langle \mathbf{b}-\mathbf{A}\mathbf{x},\mathbf{v}\rangle=\mathbf{b}^{\mathsf{T}}\mathbf{v}-\mathbf{x}^{\mathsf{T}}\mathbf{A}\mathbf{v}\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;上式看作一个关于步长 \(t\) 的二次函数, 其最小值点为&#10;&lt;/p&gt;&#10;\[\hat{t}=\frac{\langle \mathbf{b}-\mathbf{A}\mathbf{x},\mathbf{v}\rangle}{\langle \mathbf{v},\mathbf{A}\mathbf{v}\rangle}\]&lt;p&gt;&#10;当 \(\langle\mathbf{b}-\mathbf{A}\mathbf{x},\mathbf{v}\rangle\neq0\) 时严格降低函数值; 若该内积为零, 最优步长为零, 不能仅由 \(\mathbf{v}\neq0\) 推出严格下降.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;再进行迭代:&#10;&lt;/p&gt;&#10;\[t_k=\frac{\langle \mathbf{v}^{(k)},\mathbf{b}-\mathbf{A}\mathbf{x}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle}, \qquad \mathbf{x}^{(k)}=\mathbf{x}^{(k-1)}+t_k\mathbf{v}^{(k)}\]&lt;p&gt;&#10;可以用残差来定义新方向:&#10;&lt;/p&gt;&#10;\[\mathbf{v}^{(k+1)}=\mathbf{b}-\mathbf{A}\mathbf{x}^{(k)}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;a id="cp-linear-cg"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="210-conjugate-gradient-method"&gt;2.10 Conjugate Gradient Method&lt;a class="heading-anchor" href="#210-conjugate-gradient-method" aria-label="Link to 2.10 Conjugate Gradient Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;前面的最速下降法每次迭代的方向都是残差的方向, 可能会出现振荡的情况.&lt;/p&gt;&#10;&lt;p&gt;共轭梯度法的搜索方向不仅依赖于残差的方向, 还依赖于上一次迭代的搜索方向, 最终使得每次迭代的搜索方向都是共轭的.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; A-共轭: 对于非零向量 \(\mathbf{v}\) 和 \(\mathbf{w}\), 如果满足&#10;&lt;/p&gt;&#10;\[\langle \mathbf{v},\mathbf{A}\mathbf{w}\rangle=0\]&lt;p&gt;则称 \(\mathbf{v}\) 和 \(\mathbf{w}\) 是 A-共轭的.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;共轭梯度法&lt;/strong&gt; 要求满足&lt;/p&gt;&#10;&lt;p&gt;这里假设 \(\mathbf{A}\) 为实对称正定矩阵, 初始方向为残差. 下列正交与共轭关系在精确算术中成立, 从而最多 \(n\) 步求解 \(n\) 维问题; 浮点舍入会破坏这些关系, 应以实际残差验收. 非正定矩阵不能直接使用此处的算法保证.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;共轭&lt;/p&gt;&#10;\[\langle \mathbf{v}^{(i)},\mathbf{A}\mathbf{v}^{(j)}\rangle=0,\qquad i\neq j.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;残差正交&lt;/p&gt;&#10;\[\langle \mathbf{r}^{(i)},\mathbf{r}^{(j)}\rangle=0,\qquad i\neq j.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;残差与旧方向正交&lt;/p&gt;&#10;\[\langle \mathbf{r}^{(k)},\mathbf{v}^{(j)}\rangle=0,\qquad j=1,2,\cdots,k.\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;递推公式为&lt;/p&gt;&#10;\[\mathbf{v}^{(k+1)}=\mathbf{r}^{(k)}+s_k\mathbf{v}^{(k)}\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;由共轭条件 \(\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k+1)}\rangle=0\), 得到&#10;&lt;/p&gt;&#10;\[\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{r}^{(k)}\rangle +s_k\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle = 0\]&lt;p&gt;&#10;解得&#10;&lt;/p&gt;&#10;\[s_k=-\frac{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{r}^{(k)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;再选择合适的步长 \(t_{k}\) 以保证残差条件 \(\langle \mathbf{r}^{(i)}, \mathbf{r}^{(j)} \rangle = 0\). 利用最速下降法的结果&#10;&lt;/p&gt;&#10;\[\begin{aligned} t_k &amp;=\frac{\langle \mathbf{v}^{(k)},\mathbf{r}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle} =\frac{\langle \mathbf{r}^{(k-1)},\mathbf{r}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle} +s_{k-1}\frac{\langle \mathbf{v}^{(k-1)},\mathbf{r}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle}\\ &amp;=\frac{\langle \mathbf{r}^{(k-1)},\mathbf{r}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle}. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;已知&#10;&lt;/p&gt;&#10;\[\mathbf{r}^{(k)} =\mathbf{r}^{(k-1)}-\mathbf{A}\left(\mathbf{x}^{(k)}-\mathbf{x}^{(k-1)}\right) =\mathbf{r}^{(k-1)}-t_k\mathbf{A}\mathbf{v}^{(k)}\]&lt;p&gt;&#10;从而&#10;&lt;/p&gt;&#10;\[\langle \mathbf{r}^{(k)},\mathbf{r}^{(k)}\rangle =\langle \mathbf{r}^{(k-1)},\mathbf{r}^{(k)}\rangle -t_k\langle \mathbf{A}\mathbf{v}^{(k)},\mathbf{r}^{(k)}\rangle =-t_k\langle \mathbf{A}\mathbf{v}^{(k)},\mathbf{r}^{(k)}\rangle,\]&lt;p&gt;&#10;故可以用残差写&#10;&lt;/p&gt;&#10;\[s_k =\frac{\langle \mathbf{r}^{(k)},\mathbf{r}^{(k)}\rangle}{\langle \mathbf{r}^{(k-1)},\mathbf{r}^{(k-1)}\rangle}, \qquad t_k =\frac{\langle \mathbf{v}^{(k)},\mathbf{r}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;最终按顺序的递推关系为&#10;&lt;/p&gt;&#10;\[\begin{aligned} t_k &amp;=\frac{\langle \mathbf{v}^{(k)},\mathbf{r}^{(k-1)}\rangle}{\langle \mathbf{v}^{(k)},\mathbf{A}\mathbf{v}^{(k)}\rangle}\\ \mathbf{x}^{(k)} &amp;= \mathbf{x}^{(k-1)}+t_k\mathbf{v}^{(k)},\\ \mathbf{r}^{(k)} &amp;= \mathbf{r}^{(k-1)}-t_k\mathbf{A}\mathbf{v}^{(k)},\\ s_k &amp;=\frac{\langle \mathbf{r}^{(k)},\mathbf{r}^{(k)}\rangle}{\langle \mathbf{r}^{(k-1)},\mathbf{r}^{(k-1)}\rangle}\\ \mathbf{v}^{(k+1)} &amp;= \mathbf{r}^{(k)}+s_k\mathbf{v}^{(k)}. \end{aligned}\]&lt;p&gt;&#10;初值 \(\mathbf{r}^{(0)}=\mathbf{b}-\mathbf{A}\mathbf{x}^{(0)},\mathbf{v}^{(1)}=\mathbf{r}^{(0)}\). 初始或更新后的残差为零时立即停止, 不再计算下一个步长; 浮点计算按相对及绝对残差容限和最大迭代次数停止.&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 考虑线性方程组两步共轭梯度法&#10;&lt;/p&gt;&#10;\[\begin{pmatrix} 4 &amp; 1\\ 1 &amp; 3 \end{pmatrix} \begin{pmatrix} x_1\\ x_2 \end{pmatrix} = \begin{pmatrix} 1\\ 2 \end{pmatrix}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 先初始化, 设 \(\mathbf{x}_0=(2,1)^{\mathsf{T}}\).&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;初始化. 残差:&#10;&lt;/p&gt;&#10;\[\mathbf{r}_0=\mathbf{b}-\mathbf{A}\mathbf{x}_0 = \binom{1}{2} - \begin{pmatrix} 4 &amp; 1\\ 1 &amp; 3 \end{pmatrix} \binom{2}{1} = \binom{-8}{-3}\]&lt;p&gt;&#10;搜索方向:&#10;&lt;/p&gt;&#10;\[\mathbf{v}_1=\mathbf{r}_0=\binom{-8}{-3}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第一步. 步长:&#10;&lt;/p&gt;&#10;\[t_1=\frac{\langle \mathbf{v}_1,\mathbf{r}_0\rangle}{\langle \mathbf{v}_1,\mathbf{A}\mathbf{v}_1\rangle}=\frac{73}{331}\]&lt;p&gt;&#10;更新解:&#10;&lt;/p&gt;&#10;\[\mathbf{x}_1=\binom{2}{1}+\frac{73}{331}\binom{-8}{-3}=\binom{78/331}{112/331}\approx\binom{0.2356}{0.3384}\]&lt;p&gt;&#10;残差:&#10;&lt;/p&gt;&#10;\[\mathbf{r}_1=\mathbf{r}_0-t_1\mathbf{A}\mathbf{v}_1 = \binom{-8}{-3} -\frac{73}{331} \begin{pmatrix} 4 &amp; 1\\ 1 &amp; 3 \end{pmatrix} \binom{-8}{-3} =\binom{-93/331}{248/331} \approx\binom{-0.2810}{0.7492}\]&lt;p&gt;&#10;系数:&#10;&lt;/p&gt;&#10;\[s_1=\frac{\langle \mathbf{r}^{(1)},\mathbf{r}^{(1)}\rangle}{\langle \mathbf{r}^{(0)},\mathbf{r}^{(0)}\rangle}=\frac{961}{109561}\approx0.0088\]&lt;p&gt;&#10;搜索方向:&#10;&lt;/p&gt;&#10;\[\mathbf{v}_2=\mathbf{r}_1+s_1\mathbf{v}_1 = \binom{-93/331}{248/331} +\frac{961}{109561}\binom{-8}{-3} =\binom{-38471/109561}{79205/109561} \approx\binom{-0.3511}{0.7229}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第二步. 步长:&#10;&lt;/p&gt;&#10;\[t_2=\frac{\langle \mathbf{v}_2,\mathbf{r}_1\rangle}{\langle \mathbf{v}_2,\mathbf{A}\mathbf{v}_2\rangle}=\frac{331}{803}\approx0.4122\]&lt;p&gt;&#10;更新解:&#10;&lt;/p&gt;&#10;\[\mathbf{x}_2 =\binom{78/331}{112/331} +\frac{331}{803}\binom{-38471/109561}{79205/109561} =\binom{1/11}{7/11} \approx\binom{0.0909}{0.6364}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="211-qr-decomposition"&gt;2.11 QR Decomposition&lt;a class="heading-anchor" href="#211-qr-decomposition" aria-label="Link to 2.11 QR Decomposition" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;QR 分解法&lt;/p&gt;&#10;\[\mathbf{A}=\mathbf{Q}\mathbf{R}\]&lt;p&gt;其中 \(\mathbf{Q}\) 为正交矩阵, \(\mathbf{R}\) 为上三角矩阵. 于是线性方程组可以写作&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{x}=\mathbf{b}\implies \mathbf{R}\mathbf{x}=\mathbf{Q}^{\mathsf{T}}\mathbf{b}\]&lt;p&gt;以下解方程的公式针对实非奇异方阵. 对一般 \(m\times n\) 实列满秩矩阵 \((m\geq n)\), 可用薄 QR 分解, 其中 \(\mathbf{Q}^{\mathsf{T}}\mathbf{Q}=\mathbf{I}_n\), 但矩形 \(\mathbf{Q}\) 不是方阵正交矩阵. 若方程不相容, \(\mathbf{R}\mathbf{x}=\mathbf{Q}^{\mathsf{T}}\mathbf{b}\) 给出最小二乘解. 下面的逐列归一化要求列向量线性无关; 浮点实现通常选用 Householder 或 modified Gram-Schmidt 来改善正交性保持.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Gram-Schmidt 正交化&lt;/strong&gt; 对一组列向量&#10;&lt;/p&gt;&#10;\[\mathbf{a}_1,\mathbf{a}_2,\cdots,\mathbf{a}_n\]&lt;p&gt;可以将矩阵列向量组 (\(\mathbf{a}_1, \mathbf{a}_2, \cdots, \mathbf{a}_n\)) 变换成正交列向量组 (\(\mathbf{u}_1, \mathbf{u}_2, \cdots, \mathbf{u}_n\)).&lt;/p&gt;&#10;\[\begin{aligned} &amp;\mathbf{u}_1=\mathbf{a}_1, &amp;&amp;\mathbf{e}_1=\frac{\mathbf{u}_1}{\|\mathbf{u}_1\|},\\ &amp;\mathbf{u}_2=\mathbf{a}_2-\langle \mathbf{a}_2,\mathbf{e}_1\rangle\mathbf{e}_1, &amp;&amp;\mathbf{e}_2=\frac{\mathbf{u}_2}{\|\mathbf{u}_2\|},\\ &amp;\mathbf{u}_n=\mathbf{a}_n-\sum_{j=1}^{n-1}\langle \mathbf{a}_n,\mathbf{e}_j\rangle\mathbf{e}_j, &amp;&amp;\mathbf{e}_n=\frac{\mathbf{u}_n}{\|\mathbf{u}_n\|}. \end{aligned}\]&lt;p&gt;故如果视&#10;&lt;/p&gt;&#10;\[\mathbf{A}=(\mathbf{a}_1,\mathbf{a}_2,\cdots,\mathbf{a}_n), \qquad \mathbf{Q}=(\mathbf{e}_1,\mathbf{e}_2,\cdots,\mathbf{e}_n)\]&lt;p&gt;从而 \(\mathbf{A}\) 的列向量在 \(\mathbf{Q}\) 给出的正交基下的展开可以写为矩阵形式&#10;&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{a}_k &amp;= \sum_{j=1}^{k}\langle \mathbf{a}_k,\mathbf{e}_j\rangle\mathbf{e}_j \implies \mathbf{A} =(\mathbf{e}_1,\mathbf{e}_2,\cdots,\mathbf{e}_n)\mathbf{R}=\mathbf{Q}\mathbf{R}\\ \mathbf{R} &amp;= \begin{pmatrix} \langle \mathbf{a}_1,\mathbf{e}_1\rangle &amp; \langle \mathbf{a}_2,\mathbf{e}_1\rangle &amp; \cdots &amp; \langle \mathbf{a}_n,\mathbf{e}_1\rangle\\ 0 &amp; \langle \mathbf{a}_2,\mathbf{e}_2\rangle &amp; \cdots &amp; \langle \mathbf{a}_n,\mathbf{e}_2\rangle\\ \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; \langle \mathbf{a}_n,\mathbf{e}_n\rangle \end{pmatrix} \end{aligned}\]&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 对矩阵作 QR 分解&#10;&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} 1 &amp; 1 &amp; 0\\ 1 &amp; 0 &amp; 1\\ 0 &amp; 1 &amp; 1 \end{pmatrix}.\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 记 \(\mathbf{A}=(\mathbf{a}_1,\mathbf{a}_2,\mathbf{a}_3)\). Gram-Schmidt 正交化给出&#10;&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{u}_1&amp;=\mathbf{a}_1=(1,1,0)^{\mathsf{T}},\\ \mathbf{e}_1&amp;=\frac{\mathbf{u}_1}{\|\mathbf{u}_1\|}=\frac{1}{\sqrt{2}}(1,1,0)^{\mathsf{T}},\\ \mathbf{u}_2&amp;=\mathbf{a}_2-\langle \mathbf{a}_2,\mathbf{e}_1\rangle\mathbf{e}_1 =\left(\frac{1}{2},-\frac{1}{2},1\right)^{\mathsf{T}},\\ \mathbf{e}_2&amp;=\frac{1}{\sqrt{6}}(1,-1,2)^{\mathsf{T}},\\ \mathbf{u}_3&amp;=\mathbf{a}_3-\langle \mathbf{a}_3,\mathbf{e}_1\rangle\mathbf{e}_1-\langle \mathbf{a}_3,\mathbf{e}_2\rangle\mathbf{e}_2 =\frac{2}{3}(-1,1,1)^{\mathsf{T}},\\ \mathbf{e}_3&amp;=\frac{1}{\sqrt{3}}(-1,1,1)^{\mathsf{T}}. \end{aligned}\]&lt;p&gt;得到&lt;/p&gt;&#10;\[\mathbf{Q} = \begin{pmatrix} \frac{1}{\sqrt{2}} &amp; \frac{1}{\sqrt{6}} &amp; -\frac{1}{\sqrt{3}}\\ \frac{1}{\sqrt{2}} &amp; -\frac{1}{\sqrt{6}} &amp; \frac{1}{\sqrt{3}}\\ 0 &amp; \frac{2}{\sqrt{6}} &amp; \frac{1}{\sqrt{3}} \end{pmatrix}, \qquad \mathbf{R} = \begin{pmatrix} \sqrt{2} &amp; \frac{1}{\sqrt{2}} &amp; \frac{1}{\sqrt{2}}\\ 0 &amp; \frac{\sqrt{6}}{2} &amp; \frac{1}{\sqrt{6}}\\ 0 &amp; 0 &amp; \frac{2}{\sqrt{3}} \end{pmatrix}.\]&lt;h3 id="212-svd-decomposition-"&gt;2.12 SVD Decomposition *&lt;a class="heading-anchor" href="#212-svd-decomposition-" aria-label="Link to 2.12 SVD Decomposition *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;任意 \(m\times n\) 实矩阵 \(\mathbf{A}\) 均可作 SVD(singular value decomposition):&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;\[\mathbf{A}=\mathbf{U}\mathbf{D}\mathbf{V}^{\mathsf{T}}\]&lt;p&gt;其中 \(\mathbf{U}\) 为 \(m \times m\) 正交矩阵, \(\mathbf{V}\) 为 \(n \times n\) 正交矩阵, \(\mathbf{D}\) 为 \(m \times n\) 对角矩阵, 对角线上的元素为 \(\mathbf{A}\) 的奇异值 \(\sigma_i\). 可以将 \(\mathbf{U}\) 的列向量称为左奇异向量, \(\mathbf{V}\) 的列向量称为右奇异向量.&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{U}\mathbf{U}^{\mathsf{T}}&amp;=\mathbf{I}_m,\qquad \mathbf{V}\mathbf{V}^{\mathsf{T}}=\mathbf{I}_n,\\ D_{ij}&amp;= \begin{cases} \sigma_i\delta_{ij}, &amp; i\leq r,\\ 0, &amp; i&gt;r, \end{cases} \qquad r=\min(m,n),\qquad \sigma_1\geq\cdots\geq\sigma_r\geq0. \end{aligned}\]&lt;p&gt;仅当 \(m=n\) 且所有奇异值非零时, 普通逆矩阵为&lt;/p&gt;&#10;\[\mathbf{A}^{-1}=\mathbf{V}\mathbf{D}^{-1}\mathbf{U}^{\mathsf{T}}.\]&lt;p&gt;一般矩形或秩亏矩阵使用 Moore-Penrose 伪逆 \(\mathbf{A}^{+}=\mathbf{V}\mathbf{D}^{+}\mathbf{U}^{\mathsf{T}}\). 其中 \(\mathbf{D}^{+}\) 为 \(n\times m\) 矩阵, 非零奇异值取倒数, 零奇异值仍取零; \(\mathbf{x}=\mathbf{A}^{+}\mathbf{b}\) 给出最小范数的最小二乘解.&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;为抑制小奇异值对噪声的放大, 可作截断 SVD 正则化, 令 \(\epsilon\geq0\), 并定义&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}_{\epsilon}^{+}&amp;=\mathbf{V}\mathbf{D}_{\epsilon}^{+}\mathbf{U}^{\mathsf{T}},\\ \left(\mathbf{D}_{\epsilon}^{+}\right)_{ii}&amp;= \begin{cases} 1/\sigma_i, &amp; \sigma_i&gt;\epsilon,\\ 0, &amp; \sigma_i\leq\epsilon, \end{cases} \qquad i=1,\cdots,r, \end{aligned}\]&lt;p&gt;其他元素为零. 阈值常相对最大奇异值设置; 截断改变了所求问题, 并不保证消除噪声, 也不能把含零奇异值的 \(\mathbf{D}_{\epsilon}\) 当成可逆矩阵.&lt;/p&gt;&#10;&lt;h3 id="213-sherman-morrison-formula-"&gt;2.13 Sherman-Morrison Formula *&lt;a class="heading-anchor" href="#213-sherman-morrison-formula-" aria-label="Link to 2.13 Sherman-Morrison Formula *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Sherman-Morrison 公式提供了一种计算矩阵的逆的方法.&lt;/p&gt;&#10;&lt;p&gt;设 \(\mathbf{A}\) 为一个可逆矩阵, \(\mathbf{u}\) 和 \(\mathbf{v}\) 为同维列向量, 考虑矩阵&lt;/p&gt;&#10;\[\mathbf{B}=\mathbf{A}+\mathbf{u}\mathbf{v}^{\mathsf{T}}\]&lt;p&gt;的逆矩阵. 以下要求 \(1+\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}\mathbf{u}\neq0\), 等价于更新后的 \(\mathbf{B}\) 仍可逆. 这是秩不超过 1 的更新.&lt;/p&gt;&#10;\[\begin{aligned} \left(\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)_{ij} &amp;= u_i v_j,\\ \left(\mathbf{A}+\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)^{-1} &amp;=\left(\mathbf{I}+\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)^{-1}\mathbf{A}^{-1}. \end{aligned}\]&lt;p&gt;先考虑 Neumann 级数展开, 要求 \(\rho(\mathbf{M})\lt1\). 对下式的秩-1 矩阵, 收敛条件为 \(|\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}\mathbf{u}|\lt1\):&lt;/p&gt;&#10;\[\begin{aligned} (\mathbf{I}-\mathbf{M})^{-1} &amp;=\mathbf{I}+\mathbf{M}+\mathbf{M}^2+\mathbf{M}^3+\cdots,\\ \left(\mathbf{I}+\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)^{-1} &amp;=\mathbf{I}-\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}} +\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}-\cdots. \end{aligned}\]&lt;p&gt;定义&lt;/p&gt;&#10;\[\lambda=\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}\mathbf{u}.\]&lt;p&gt;在 \(|\lambda|\lt1\) 时, 上述级数求和给出&lt;/p&gt;&#10;\[\begin{aligned} \left(\mathbf{A}+\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)^{-1} &amp;=\mathbf{A}^{-1}-\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1} \left(1-\lambda+\lambda^2-\cdots\right)\\ &amp;=\mathbf{A}^{-1}-\frac{\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}}{1+\lambda},\\ \left(\mathbf{A}+\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)^{-1} &amp;=\mathbf{A}^{-1}-\frac{\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}}{1+\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}\mathbf{u}}. \end{aligned}\]&lt;p&gt;结果其实只需 \(1+\lambda\neq0\). 令 \(\mathbf{M}=\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\), 则 \(\mathbf{M}^2=\lambda\mathbf{M}\), 可以直接验证&lt;/p&gt;&#10;\[(\mathbf{I}+\mathbf{M})\left(\mathbf{I}-\frac{\mathbf{M}}{1+\lambda}\right) =\mathbf{I}+\mathbf{M}-\frac{\mathbf{M}+\mathbf{M}^2}{1+\lambda}=\mathbf{I}.\]&lt;p&gt;因此 Sherman-Morrison 公式在级数不收敛但分母非零时仍成立. 考虑方程组:&lt;/p&gt;&#10;\[\left(\mathbf{A}+\mathbf{u}\mathbf{v}^{\mathsf{T}}\right)\mathbf{x}=\mathbf{b}\]&lt;p&gt;已知方程组的解:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}\mathbf{y}&amp;=\mathbf{b},\\ \mathbf{A}\mathbf{z}&amp;=\mathbf{u}. \end{aligned}\]&lt;p&gt;方程的解为:&lt;/p&gt;&#10;\[\mathbf{x}=\mathbf{y}-\frac{\mathbf{v}^{\mathsf{T}}\mathbf{y}}{1+\mathbf{v}^{\mathsf{T}}\mathbf{z}}\mathbf{z}\]&lt;h2 id="appendix"&gt;Appendix&lt;a class="heading-anchor" href="#appendix" aria-label="Link to Appendix" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="a-scientific-computing-environment"&gt;A.1 Scientific Computing Environment&lt;a class="heading-anchor" href="#a-scientific-computing-environment" aria-label="Link to A.1 Scientific Computing Environment" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;GNU/Linux&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;GNU/Linux 提供类 Unix 开发环境, 可作为科学计算的工作平台.&lt;/p&gt;&#10;&lt;img src="./assets/linux-file-system-hierarchy.jpg" alt="Linux file system hierarchy" style="width: 400px; max-width: 100%; height: auto;" /&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;GNU/Linux 文件系统层级的简化示例, 不是完整目录清单. 实际目录、挂载点和符号链接随发行版与配置而变; 目录用途可对照 &lt;a href="https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html"&gt;Filesystem Hierarchy Standard 3.0&lt;/a&gt;.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;Ubuntu 基于 Debian; amd64(x86-64)、arm64(AArch64) 和 ppc64el(PowerPC64 little-endian) 属于不同架构, arm64 不属于 PowerPC. 具体支持范围取决于发行版本.&lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Shared Toolchain&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Linux 的静态库以 &lt;code&gt;.a&lt;/code&gt; 为后缀, 由一系列目标文件组成, 在编译时被链接到可执行文件中. Windows 的静态库以 &lt;code&gt;.lib&lt;/code&gt; 为后缀.&lt;/li&gt;&#10;&lt;li&gt;Linux 的动态库以 &lt;code&gt;.so&lt;/code&gt; 为后缀, 在运行时被加载到内存中, 可以被多个程序共享使用. Windows 的动态库以 &lt;code&gt;.dll&lt;/code&gt; 为后缀.&lt;/li&gt;&#10;&lt;li&gt;C++ 适合高性能实现, 数据结构组织和大型工程; Fortran 仍常见于传统科学计算程序; Python 适合原型设计, 数据处理, 可视化和脚本化实验流程.&lt;/li&gt;&#10;&lt;li&gt;NumPy 是 Python 科学计算的基础数组库; CERN ROOT 是高能物理中常见的数据分析框架; 现代工作流中优先使用 &lt;code&gt;git&lt;/code&gt; 追踪代码与结果.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="references"&gt;References&lt;a class="heading-anchor" href="#references" aria-label="Link to References" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, &lt;em&gt;Numerical Recipes in C++&lt;/em&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;Oracle, &lt;em&gt;Numerical Computation Guide&lt;/em&gt;, &lt;a class="link" href="https://docs.oracle.com/cd/E37069_01/html/E39019/z4000ac019178.html" target="_blank" rel="noopener"&#10; &gt;2.2.2 Single Format&lt;/a&gt;, Tables 2-2 and 2-3.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;Oracle, &lt;em&gt;Numerical Computation Guide&lt;/em&gt;, &lt;a class="link" href="https://docs.oracle.com/cd/E37069_01/html/E39019/z4000ac019269.html" target="_blank" rel="noopener"&#10; &gt;2.2.3 Double Format&lt;/a&gt;, Tables 2-4 and 2-5.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;LAPACK Authors, &lt;em&gt;LAPACK Users&amp;rsquo; Guide&lt;/em&gt;, &lt;a class="link" href="https://www.netlib.org/lapack/lug/node75.html" target="_blank" rel="noopener"&#10; &gt;How to Measure Errors&lt;/a&gt;, vector and matrix norms, and condition numbers.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:4"&gt;&#10;&lt;p&gt;J. R. Shewchuk, &lt;a class="link" href="https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf" target="_blank" rel="noopener"&#10; &gt;&lt;em&gt;An Introduction to the Conjugate Gradient Method Without the Agonizing Pain&lt;/em&gt;&lt;/a&gt;, Sections 8, 11 and 12.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:5"&gt;&#10;&lt;p&gt;NumPy Developers, &lt;a class="link" href="https://numpy.org/doc/stable/reference/generated/numpy.linalg.svd.html" target="_blank" rel="noopener"&#10; &gt;numpy.linalg.svd&lt;/a&gt;, full and reduced SVD dimensions.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:6"&gt;&#10;&lt;p&gt;NumPy Developers, &lt;a class="link" href="https://numpy.org/doc/stable/reference/generated/numpy.linalg.pinv.html" target="_blank" rel="noopener"&#10; &gt;numpy.linalg.pinv&lt;/a&gt;, Moore-Penrose inverse and singular-value cutoff.&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:7"&gt;&#10;&lt;p&gt;Ubuntu Project, &lt;a class="link" href="https://ubuntu.com/project/docs/how-ubuntu-is-made/concepts/supported-architectures/" target="_blank" rel="noopener"&#10; &gt;Supported architectures&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Computational Physics - 2</title><link>https://square-yang.github.io/notes/computational-physics-2/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0800</pubDate><guid>https://square-yang.github.io/notes/computational-physics-2/</guid><description>&lt;!-- Source: Square-Yang/Note-Physics, main, 8c405b9c0d1f59ac996ffac8d2b5568173d697ae, Computational Physics/Computational Physics - 2.md; SHA256 c547053e09ce6e7061b80e10a33ca8018e59b3bee4dcf0475d853c8c1df730e2. Prepared with scripts/prepare-note.mjs. --&gt;&#10;&lt;h2 id="3-interpolation-methods"&gt;3 Interpolation Methods&lt;a class="heading-anchor" href="#3-interpolation-methods" aria-label="Link to 3 Interpolation Methods" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="31-lagrange-interpolation"&gt;3.1 Lagrange Interpolation&lt;a class="heading-anchor" href="#31-lagrange-interpolation" aria-label="Link to 3.1 Lagrange Interpolation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑拟合一个函数, 其中 \(n+1\) 个互异节点的函数值已知:&lt;/p&gt;&#10;\[y_0=f(x_0),\quad y_1=f(x_1),\quad \cdots,\quad y_n=f(x_n)\]&lt;p&gt;Lagrange interpolation 要求拟合函数 \(P(x)\) 的每个点都经过插值点:&lt;/p&gt;&#10;\[P(x_k)=f(x_k),\quad k=0,1,2,\cdots,n\]&lt;p&gt;Lagrange interpolation 函数 \(P(x)\):&lt;/p&gt;&#10;\[P(x)=\sum_{k=0}^n f(x_k)L_{n,k}(x)\]&lt;p&gt;插值基函数:&lt;/p&gt;&#10;\[\begin{aligned} L_{n,k}(x) &amp;= \frac{(x-x_0)(x-x_1)\cdots(x-x_{k-1})(x-x_{k+1})\cdots(x-x_n)} {(x_k-x_0)(x_k-x_1)\cdots(x_k-x_{k-1})(x_k-x_{k+1})\cdots(x_k-x_n)}\\ &amp;= \prod_{0\leq i\leq n,\, i\neq k} \frac{x-x_i}{x_k-x_i}. \end{aligned}\]&lt;p&gt;可以看到&lt;/p&gt;&#10;\[L_{n,k}(x_i)= \begin{cases} 1, &amp; k = i,\\ 0, &amp; k \neq i. \end{cases}\]&lt;p&gt;若 \(f\in C^{n+1}\) 于包含插值节点和 \(x\) 的闭区间, 插值余项为&lt;/p&gt;&#10;\[R_n(x)=f(x)-P_n(x) =\frac{f^{(n+1)}(\xi)}{(n+1)!} \prod_{i=0}^{n}(x-x_i),\]&lt;p&gt;其中 \(\xi\) 位于这些点之间. 误差估计通常写成&lt;/p&gt;&#10;\[|R_n(x)| \leq \frac{\max_\xi |f^{(n+1)}(\xi)|}{(n+1)!} \left|\prod_{i=0}^{n}(x-x_i)\right|.\]&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; \(f(x)=x^{-1}\), 计算插值误差. 插值点为 \(x_0=2,x_1=2.75,x_2=4\). 相应函数值为&#10;&lt;/p&gt;&#10;\[f(2)=\frac12,\qquad f(2.75)=\frac{4}{11},\qquad f(4)=\frac14.\]&lt;p&gt;&#10;&lt;strong&gt;Solution&lt;/strong&gt; 三个 Lagrange 基函数:&#10;&lt;/p&gt;&#10;\[\begin{aligned} L_0(x) &amp;=\frac{(x-2.75)(x-4)}{(2-2.75)(2-4)} =\frac{(x-\frac{11}{4})(x-4)}{\frac32},\\ L_1(x) &amp;=\frac{(x-2)(x-4)}{(2.75-2)(2.75-4)} =-\frac{16}{15}(x-2)(x-4),\\ L_2(x) &amp;=\frac{(x-2)(x-2.75)}{(4-2)(4-2.75)} =\frac{2}{5}(x-2)(x-\frac{11}{4}). \end{aligned}\]&lt;p&gt;因此&lt;/p&gt;&#10;\[\begin{aligned} P(x) &amp;=\frac12 L_0(x)+\frac{4}{11}L_1(x)+\frac14 L_2(x)\\ &amp;=\frac{1}{3}(x-\frac{11}{4})(x-4) -\frac{64}{165}(x-2)(x-4) +\frac{1}{10}(x-2)(x-\frac{11}{4})\\ &amp;=\frac{1}{22}x^2-\frac{35}{88}x+\frac{49}{44} \end{aligned}\]&lt;p&gt;这里有三个插值点, 所以 \(n=2\), 需要三阶导数. 因为 \(f^{(3)}(x)=-6x^{-4}\), 二次插值的余项为&lt;/p&gt;&#10;\[R(x) = \frac{f^{(3)}(\xi)}{3!}(x-x_0)(x-x_1)(x-x_2) = -\xi^{-4}(x-2)(x-2.75)(x-4).\]&lt;p&gt;在 \(x,\xi\in [2,4]\) 上, 对右侧两项取极值得到&lt;/p&gt;&#10;\[|R(x)|\leq \frac{1}{16}\cdot\frac{9}{16} =\frac{9}{256}\approx 0.03516.\]&lt;img src="./assets/lagrange-interpolation-reciprocal-example.svg" alt="正文倒数函数例题的二次 Lagrange 插值曲线和实际误差" width="1200" height="540" style="display: block; width: 100%; max-width: 960px; height: auto;" /&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;图 3.1 采用本节倒数函数例题的三个节点 2、2.75、4. 左图叠加原函数与二次插值多项式, 黑点表示插值节点; 右图单独显示原函数减插值多项式的误差, 三个节点处误差为零. 右图纵轴是实际误差, 不是前文给出的统一误差上界. 由本节例题直接计算绘制.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 证明&#10;&lt;/p&gt;&#10;\[\sum_{k=0}^{n}\frac{x_k^n}{(x_k-x_0)\cdots(x_k-x_{k-1})(x_k-x_{k+1})\cdots(x_k-x_n)}=1\]&lt;p&gt;&#10;&lt;strong&gt;Solution&lt;/strong&gt; 对 \(p(x)=x^n\) 作 \(n\) 次 Lagrange 插值. 因 \(p\) 为 \(n\) 次多项式, 插值多项式即为自身&#10;&lt;/p&gt;&#10;\[x^n = \sum_{k=0}^{n} x_k^n L_k(x), \qquad L_k(x)=\frac{\prod_{j\ne k}(x-x_j)}{\prod_{j\ne k}(x_k-x_j)}\]&lt;p&gt;&#10;比较两边 \(x^n\) 的最高次项系数. 左边为 1, \(L_k(x)\) 的最高次项系数为&#10;&lt;/p&gt;&#10;\[\frac{1}{\prod_{j\ne k}(x_k-x_j)}\]&lt;p&gt;&#10;因此&#10;&lt;/p&gt;&#10;\[\sum_{k=0}^{n} \frac{x_k^n}{\prod_{j\ne k}(x_k-x_j)} = 1\]&lt;h3 id="32-hermite-interpolation-"&gt;3.2 Hermite Interpolation *&lt;a class="heading-anchor" href="#32-hermite-interpolation-" aria-label="Link to 3.2 Hermite Interpolation *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Hermite interpolation 是 Lagrange interpolation 的升级版, 不仅要求拟合函数和原函数在插值点的函数值相同, 还要求在插值点的斜率相同. 插值函数为&lt;/p&gt;&#10;\[H_{2n+1}(x)=\sum_{i=0}^n f(x_i)H_{n,i}(x)+\sum_{i=0}^n f'(x_i)\hat H_{n,i}(x)\]&lt;p&gt;\(H_{n,i}(x)\) 为了处理函数值:&lt;/p&gt;&#10;\[\begin{aligned} H_{n,i}(x) &amp;= \left[1-2(x-x_i)L'_{n,i}(x_i)\right]L_{n,i}^2(x),\\ H_{n,i}(x_i) &amp;= 1,\qquad H'_{n,i}(x_i)=0. \end{aligned}\]&lt;p&gt;\(\hat{H}_{n,i}\left(x\right)\) 为了处理导数:&lt;/p&gt;&#10;\[\begin{aligned} \hat H_{n,i}(x) &amp;= (x-x_i)L_{n,i}^2(x),\\ \hat H_{n,i}(x_i) &amp;= 0,\qquad \hat H'_{n,i}(x_i)=1. \end{aligned}\]&lt;p&gt;若节点互异且 \(f\in C^{2n+2}\) 于包含节点和 \(x\) 的闭区间, Hermite 插值余项为:&lt;/p&gt;&#10;\[f(x)=H_{2n+1}(x)+\frac{(x-x_0)^2\cdots(x-x_n)^2}{(2n+2)!}f^{(2n+2)}(\xi)\]&lt;h3 id="33-cubic-spline-interpolation"&gt;3.3 Cubic Spline Interpolation&lt;a class="heading-anchor" href="#33-cubic-spline-interpolation" aria-label="Link to 3.3 Cubic Spline Interpolation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Runge phenomenon 是数值分析中的一个经典问题, 指的是在等距节点下, 使用高次多项式插值时, 插值多项式在区间两端会出现剧烈振荡, 导致插值误差反而比低次多项式更大, 甚至完全不收敛于原函数.&lt;/p&gt;&#10;&lt;p&gt;想要减小 Runge phenomenon, 可以使用低次分段插值方法, 比较经典的方法是三次样条插值.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;函数有 \(n+1\) 个数据点, 节点满足 \(x_0\lt x_1\lt\cdots\lt x_n\), 记 \(h_i=x_{i+1}-x_i&gt;0\), 分为 \(n\) 个区间. 考虑第 \(i\) 个区间, 用三次多项式函数拟合:&lt;/p&gt;&#10;\[S_i(x)=a_i+b_i(x-x_i)+c_i(x-x_i)^2+d_i(x-x_i)^3,\quad i=0,1,\cdots,n-1\]&lt;p&gt;一共有 \(4n\) 个系数.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;插值条件&lt;/p&gt;&#10;\[\begin{aligned} S_i(x_i)=f_i &amp;\implies a_i=f_i,\\ S_i(x_{i+1})=f_{i+1} &amp;\implies a_i+b_i h_i+c_i h_i^2+d_i h_i^3=f_{i+1}. \end{aligned}\]&lt;p&gt;给出了 \(2n\) 个方程, 若消去 \(f\) 可以得到&#10;&lt;/p&gt;&#10;\[a_{i+1} = a_i+b_i h_i+c_i h_i^2+d_i h_i^3\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;一阶导数连续&lt;/p&gt;&#10;\[S_i'(x_{i+1}) = S_{i+1}'(x_{i+1}) \implies b_i+2c_i h_i+3d_i h_i^2 = b_{i+1}.\]&lt;p&gt;给出 \(n-1\) 个方程.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;二阶导数连续&lt;/p&gt;&#10;\[S_i''(x_{i+1}) = S_{i+1}''(x_{i+1}) \implies c_i+3d_i h_i = c_{i+1}.\]&lt;p&gt;给出 \(n-1\) 个方程.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;边界条件: 要根据实际情况来确定. 常用的是&#10;(1) 自然样条边界条件: 两端二阶导数为 \(0\).&#10;&lt;/p&gt;&#10;\[\begin{aligned} S_0''(x_0)=0 &amp;\implies c_0=0,\\ S_{n-1}''(x_n)=0 &amp;\implies c_{n-1}+3d_{n-1}h_{n-1}=0. \end{aligned}\]&lt;p&gt;(2) 固定边界条件:&lt;/p&gt;&#10;\[\begin{aligned} S_0'(x_0)=f_0' &amp;\implies b_0=f_0',\\ S_{n-1}'(x_n)=f_n' &amp;\implies b_{n-1}+2c_{n-1}h_{n-1}+3d_{n-1}h_{n-1}^2=f_n'. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="331-coefficient-relations"&gt;3.3.1 Coefficient Relations&lt;a class="heading-anchor" href="#331-coefficient-relations" aria-label="Link to 3.3.1 Coefficient Relations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;已知方程:&lt;/p&gt;&#10;\[\begin{aligned} a_{i+1} &amp;= a_i+b_i h_i+c_i h_i^2+d_i h_i^3,\\ b_{i+1} &amp;= b_i+2c_i h_i+3d_i h_i^2,\\ c_{i+1} &amp;= c_i+3d_i h_i. \end{aligned}\]&lt;p&gt;消去 \(d_{i}\) 和 \(b_{i}\), 过程中得到&#10;&lt;/p&gt;&#10;\[d_i=\frac{c_{i+1}-c_i}{3h_i},\qquad b_i=\frac{a_{i+1}-a_i}{h_i}-\frac{h_i}{3}(2c_i+c_{i+1})\]&lt;p&gt;&#10;结果为&#10;&lt;/p&gt;&#10;\[h_{i-1}c_{i-1}+2(h_{i-1}+h_i)c_i+h_i c_{i+1} =\frac{3}{h_i}(a_{i+1}-a_i)-\frac{3}{h_{i-1}}(a_i-a_{i-1})\]&lt;p&gt;上述内部节点方程适用于 \(i=1,\cdots,n-1\). 这里把 \(a_n=f_n\) 和 \(c_n=S_{n-1}^{\prime\prime}(x_n)/2\) 作为右端点的记号, 并非再增加一个区间多项式. 已知 \(a_i=f_i\), 加上两个边界条件即可求解 \(c_i\).&lt;/p&gt;&#10;&lt;h4 id="332-boundary-conditions"&gt;3.3.2 Boundary Conditions&lt;a class="heading-anchor" href="#332-boundary-conditions" aria-label="Link to 3.3.2 Boundary Conditions" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;自然样条: \(S''(x_0)=S''(x_n)=0\), 令 \(\mathbf{c}=(c_0,c_1,\cdots,c_n)^{\mathsf{T}}\). 自然样条对应的三对角线性方程组为&#10;&lt;/p&gt;&#10;\[\begin{cases} c_0=0,\\ h_{i-1}c_{i-1}+2(h_{i-1}+h_i)c_i+h_i c_{i+1} =\dfrac{3}{h_i}(a_{i+1}-a_i)-\dfrac{3}{h_{i-1}}(a_i-a_{i-1})\\ c_n=0. \end{cases}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;固定边界条件: 这里 \(a=x_0\), \(b=x_n\) 表示区间端点, 并给定端点一阶导数:&lt;/p&gt;&#10;\[S'(x_0)=f'(a),\qquad S'(x_n)=f'(b).\]&lt;p&gt;左端点 \(x_0\): 利用 \(S_0(x_1) = a_1\) 且 \(S_0^{\prime}(x_0) = f^{\prime}(a)\)&lt;/p&gt;&#10;\[b_0 =\frac{a_1-a_0}{h_0}-\frac{h_0}{3}(2c_0+c_1), \qquad b_0=f'(a),\]&lt;p&gt;消去 \(b_0\) 得到&lt;/p&gt;&#10;\[2h_0c_0+h_0c_1 = \frac{3}{h_0}(a_1-a_0)-3f'(a).\]&lt;p&gt;右端点 \(x_n\): 利用 \(S_{n-1}(x_n)=a_n\) 且 \(S_{n-1}'(x_n)=f'(b)\). 由&lt;/p&gt;&#10;\[a_n=a_{n-1}+b_{n-1}h_{n-1}+c_{n-1}h_{n-1}^2+d_{n-1}h_{n-1}^3\]&lt;p&gt;以及 \(d_{n-1}=(c_n-c_{n-1})/(3h_{n-1})\), 得&lt;/p&gt;&#10;\[b_{n-1} =\frac{a_n-a_{n-1}}{h_{n-1}} -\frac{h_{n-1}}{3}(2c_{n-1}+c_n), \qquad b_{n-1}+h_{n-1}(c_{n-1}+c_n)=f'(b).\]&lt;p&gt;消去 \(b_{n-1}\) 得到&lt;/p&gt;&#10;\[h_{n-1}c_{n-1}+2h_{n-1}c_n = 3f'(b)-\frac{3}{h_{n-1}}(a_n-a_{n-1}).\]&lt;p&gt;于是固定边界条件对应的三对角线性方程组为&lt;/p&gt;&#10;\[\begin{cases} 2h_0c_0+h_0c_1 =\dfrac{3}{h_0}(a_1-a_0)-3f'(a),\\ h_{i-1}c_{i-1}+2(h_{i-1}+h_i)c_i+h_i c_{i+1} =\dfrac{3}{h_i}(a_{i+1}-a_i)-\dfrac{3}{h_{i-1}}(a_i-a_{i-1}), \quad i=1,\cdots,n-1,\\ h_{n-1}c_{n-1}+2h_{n-1}c_n =3f'(b)-\dfrac{3}{h_{n-1}}(a_n-a_{n-1}). \end{cases}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;解出 \(c_i\) 后, 由&lt;/p&gt;&#10;\[d_i=\frac{c_{i+1}-c_i}{3h_i},\qquad b_i=\frac{a_{i+1}-a_i}{h_i}-\frac{h_i}{3}(2c_i+c_{i+1})\]&lt;p&gt;恢复每个区间上的 \(S_i(x)\).&lt;/p&gt;&#10;&lt;h3 id="34-akima-interpolation-"&gt;3.4 Akima Interpolation *&lt;a class="heading-anchor" href="#34-akima-interpolation-" aria-label="Link to 3.4 Akima Interpolation *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Akima 插值用局部数据确定节点斜率, 再构造分段三次 Hermite 多项式. 它保证函数及一阶导数连续, 一般不保证二阶导数连续, 因而与上一节的三次样条条件不同.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;\[S_i(x)=a_i+b_i(x-x_i)+c_i(x-x_i)^2+d_i(x-x_i)^3\]&lt;p&gt;需要四个方程来确定四个系数:&lt;/p&gt;&#10;\[\begin{aligned} S_i(x_i)&amp;=f_i,\qquad S_i(x_{i+1})=f_{i+1},\\ S_i'(x_i)&amp;=t_i,\qquad S_i'(x_{i+1})=t_{i+1}. \end{aligned}\]&lt;p&gt;定义割线斜率和权重:&lt;/p&gt;&#10;\[\begin{aligned} m_i &amp;= \frac{f_{i+1}-f_i}{x_{i+1}-x_i},\\ w_{i-1} &amp;= |m_{i+1}-m_i|,\\ w_i &amp;= |m_{i-1}-m_{i-2}|. \end{aligned}\]&lt;p&gt;\(w_{i-1}\) 是右侧差分, \(w_i\) 是左侧差分. 节点一阶导数 \(t_i=S'(x_i)\) 取为&lt;/p&gt;&#10;\[t_i=\frac{w_{i-1}m_{i-1}+w_i m_i}{w_{i-1}+w_i}\]&lt;p&gt;一些其他的代替方案:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(m_{i-2}=m_{i-1},m_i\neq m_{i+1}\) 时, 取左边的稳定坡度值&lt;/p&gt;&#10;\[t_i=m_{i-1}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(m_i=m_{i+1},m_{i-2}\neq m_{i-1}\) 时, 取右侧的稳定坡度值&lt;/p&gt;&#10;\[t_i=m_i\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(m_{i-1}=m_i\) 时, 取共同的坡度值&lt;/p&gt;&#10;\[t_i=m_{i-1}=m_i\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(m_{i-2}=m_{i-1}\neq m_i=m_{i+1}\) 时, 取平均值&lt;/p&gt;&#10;\[t_i=\frac{m_{i-1}+m_i}{2}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;节点斜率 \(t_i\) 用到四个割线斜率 \(m_{i-2},m_{i-1},m_i,m_{i+1}\), 涉及五个节点. 当两个权重均为零时, 采用上面的共同坡度或平均值规则. 对至少三个节点, 边界缺少的割线斜率可按下式外推; 只有两个节点时可直接采用线性插值:&lt;/p&gt;&#10;\[\begin{aligned} m_{-1} &amp;= 2m_0-m_1,\\ m_{-2} &amp;= 2m_{-1}-m_0,\\ m_n &amp;= 2m_{n-1}-m_{n-2},\\ m_{n+1} &amp;= 2m_n-m_{n-1}. \end{aligned}\]&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 拟合函数&lt;/p&gt;&#10;\[y=a+b(x-x_1)+c(x-x_1)^2+d(x-x_1)^3,\quad x\in[x_1,x_2]\]&lt;p&gt;边界条件:&lt;/p&gt;&#10;\[\begin{aligned} y(x_1)&amp;=y_1,\qquad y(x_2)=y_2,\\ y'(x_1)&amp;=t_1,\qquad y'(x_2)=t_2. \end{aligned}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 求解出系数:&lt;/p&gt;&#10;\[\begin{aligned} a &amp;= y_1,\\ b &amp;= t_1,\\ c &amp;= \frac{1}{x_2-x_1}\left[\frac{3(y_2-y_1)}{x_2-x_1}-2t_1-t_2\right],\\ d &amp;= \frac{1}{(x_2-x_1)^2}\left[t_1+t_2-\frac{2(y_2-y_1)}{x_2-x_1}\right]. \end{aligned}\]&lt;h3 id="35-rational-function-interpolation-"&gt;3.5 Rational Function Interpolation *&lt;a class="heading-anchor" href="#35-rational-function-interpolation-" aria-label="Link to 3.5 Rational Function Interpolation *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;分数多项式插值可通过分母描述某些极点结构, 在合适的函数及节点上可能比多项式插值更准确. 但它也可能引入伪极点, 不能普遍保证避免 Runge phenomenon 或优于多项式插值. 一种方法是经过给定数据点, 即有理函数插值. 已知函数的 \(m+1\) 个点的数值 \((x_i, y_i)\), \(i=1,2,\cdots,m+1\). 插值函数:&lt;/p&gt;&#10;\[R_{i(i+1)\cdots(i+m)}(x)=\frac{P_\mu(x)}{Q_\nu(x)} =\frac{p_0+p_1x+\cdots+p_\mu x^\mu}{1+q_1x+\cdots+q_\nu x^\nu}\]&lt;p&gt;其中 \(m=\mu+\nu\), 其数值应根据实际情况选取, \(P_{\mu}(x)\), \(Q_{\nu}(x)\) 为两个多项式. 确定系数:&lt;/p&gt;&#10;\[\begin{aligned} R(x_i)&amp;=\frac{P_\mu(x_i)}{Q_\nu(x_i)}=y_i,\\ P_\mu(x_i)-y_i Q_\nu(x_i)&amp;=0,\\ \sum_{j=0}^{\mu}p_j x_i^j-y_i\left(1+\sum_{k=1}^{\nu}q_k x_i^k\right)&amp;=0. \end{aligned}\]&lt;p&gt;这是关于未知系数的线性方程组. 需要检查该归一化下方程组是否有解, 并确保 \(Q_\nu(x_i)\ne0\); 交叉相乘所得等式本身不排除节点处 \(P_\mu=Q_\nu=0\) 的未定义情形:&lt;/p&gt;&#10;\[\begin{aligned} p_0+x_1p_1+\cdots+x_1^\mu p_\mu-y_1x_1q_1-\cdots-y_1x_1^\nu q_\nu &amp;= y_1,\\ p_0+x_2p_1+\cdots+x_2^\mu p_\mu-y_2x_2q_1-\cdots-y_2x_2^\nu q_\nu &amp;= y_2,\\ &amp;\cdots\\ p_0+x_{m+1}p_1+\cdots+x_{m+1}^\mu p_\mu-y_{m+1}x_{m+1}q_1-\cdots-y_{m+1}x_{m+1}^\nu q_\nu &amp;= y_{m+1}. \end{aligned}\]&lt;h3 id="36-padé-approximation-"&gt;3.6 Padé Approximation *&lt;a class="heading-anchor" href="#36-pad%c3%a9-approximation-" aria-label="Link to 3.6 Padé Approximation *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Padé 近似是另一种分式多项式插值方法, 已知函数 \(f(x)\) 的 Taylor expansion, 我们要构造有理函数, 使其 Taylor expansion 在 \(x=0\) 处与 \(f(x)\) 匹配到尽可能高的阶数. 拟合函数:&lt;/p&gt;&#10;\[R(x)=\frac{a_0+a_1x+\cdots+a_m x^m}{1+b_1x+\cdots+b_n x^n}\]&lt;p&gt;\(f(x)\) 在原点的 Taylor 系数已知, 或给定相应形式幂级数. 约定 \(c_k=0\) 当 \(k\lt0\), 并令 \(b_0=1\). 下述系数匹配以这个归一化的线性方程组存在解为前提:&lt;/p&gt;&#10;\[f(x)=\sum_{k=0}^{\infty}c_k x^k\]&lt;p&gt;要求两个展开的前 \(m+n+1\) 项完全相同, 即&lt;/p&gt;&#10;\[\begin{aligned} \frac{a_0+a_1x+\cdots+a_m x^m}{1+b_1x+\cdots+b_nx^n} &amp;=c_0+c_1x+\cdots+c_{m+n}x^{m+n}+\cdots,\\ (1+b_1x+\cdots+b_nx^n)(c_0+c_1x+c_2x^2+\cdots) &amp;=a_0+a_1x+\cdots+a_m x^m+O(x^{m+n+1}). \end{aligned}\]&lt;p&gt;各阶系数一般满足&#10;&lt;/p&gt;&#10;\[a_k=\sum_{i=0}^{\min(k,n)}b_i c_{k-i},\qquad 0\leq k\leq m.\]&lt;p&gt;&#10;下面的一阶、二阶示例只在相应次数的系数存在时使用; 若某个 \(b_i\) 超过分母次数, 则取其为零.&lt;/p&gt;&#10;&lt;p&gt;零阶项:&lt;/p&gt;&#10;\[a_0=c_0\]&lt;p&gt;一阶项:&lt;/p&gt;&#10;\[a_1=c_1+b_1c_0\]&lt;p&gt;二阶项:&lt;/p&gt;&#10;\[\begin{aligned} a_2 &amp;= c_2+b_1c_1+b_2c_0,\\ &amp;\cdots\\ a_m &amp;= c_m+\sum_{i=1}^{\min(m,n)}b_i c_{m-i}. \end{aligned}\]&lt;p&gt;\(x^{m+1}\) 到 \(x^{m+n}\) 的系数都为零, 因为右边没有 \(m+1\) 阶以上的多项式项.&lt;/p&gt;&#10;\[\begin{pmatrix} c_{m-n+1} &amp; c_{m-n+2} &amp; \cdots &amp; c_m\\ c_{m-n+2} &amp; c_{m-n+3} &amp; \cdots &amp; c_{m+1}\\ \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ c_m &amp; c_{m+1} &amp; \cdots &amp; c_{m+n-1} \end{pmatrix} \begin{pmatrix} b_n\\ b_{n-1}\\ \vdots\\ b_1 \end{pmatrix} =- \begin{pmatrix} c_{m+1}\\ c_{m+2}\\ \vdots\\ c_{m+n} \end{pmatrix}\]&lt;h2 id="4-numerical-differentiation-and-integration"&gt;4 Numerical Differentiation and Integration&lt;a class="heading-anchor" href="#4-numerical-differentiation-and-integration" aria-label="Link to 4 Numerical Differentiation and Integration" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="41-first-derivative-formulas"&gt;4.1 First-Derivative Formulas&lt;a class="heading-anchor" href="#41-first-derivative-formulas" aria-label="Link to 4.1 First-Derivative Formulas" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;若 \(h&gt;0\) 且 \(f\in C^2[x_0,x_0+h]\), 最简单的一阶微分公式是向前差分公式, 其中 \(\xi\in(x_0,x_0+h)\):&lt;/p&gt;&#10;\[f'(x_0)=\frac{f(x_0+h)-f(x_0)}{h}-\frac{h}{2}f''(\xi)\]&lt;p&gt;截断误差精度为一阶, 误差相对较大. 考虑其他微分公式来提高精度.&lt;/p&gt;&#10;&lt;p&gt;取三个互异节点 \(x_0,x_1,x_2\), 令&#10;&lt;/p&gt;&#10;\[P_2(x)=\sum_{k=0}^{2}f(x_k)L_k(x),\qquad \omega_3(x)=\prod_{k=0}^{2}(x-x_k).\]&lt;p&gt;在节点 \(x_i\) 处对插值多项式求导, 得到三点微分近似. 若 \(f\in C^3\) 于包含节点的区间, 则完整公式为&lt;/p&gt;&#10;\[\begin{aligned} f'(x_i) &amp;=f(x_0)\frac{2x_i-x_1-x_2}{(x_0-x_1)(x_0-x_2)} +f(x_1)\frac{2x_i-x_0-x_2}{(x_1-x_0)(x_1-x_2)}\\ &amp;\quad+f(x_2)\frac{2x_i-x_0-x_1}{(x_2-x_0)(x_2-x_1)}+R(x_i),\\ R(x_i)&amp;=\frac{f^{(3)}(\xi_i)}{6}\omega_3'(x_i) =\frac{f^{(3)}(\xi_i)}{6}\prod_{\substack{k=0\\k\ne i}}^2(x_i-x_k). \end{aligned}\]&lt;p&gt;这里不能把插值余项中的存在性记号 \(\xi\) 直接当作可微函数求导. 余项可独立验证: 取&#10;&lt;/p&gt;&#10;\[K=\frac{f'(x_i)-P_2'(x_i)}{\omega_3'(x_i)},\qquad \phi(x)=f(x)-P_2(x)-K\omega_3(x).\]&lt;p&gt;&#10;\(\phi\) 在三个节点为零且 \(\phi'(x_i)=0\). 把 \(x_i\) 的重零点计入后, 反复使用 Rolle 定理可得某个 \(\xi_i\) 满足 \(\phi^{(3)}(\xi_i)=0\). 因 \(P_2^{(3)}=0\)、\(\omega_3^{(3)}=6\), 所以 \(K=f^{(3)}(\xi_i)/6\).&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;若等间距取点, 即 \(x_1=x_0+h,x_2=x_0+2h\), 得到三个点的微分公式:&lt;/p&gt;&#10;\[\begin{aligned} f'(x_0)&amp;=\frac{1}{h}\left[-\frac{3}{2}f(x_0)+2f(x_0+h)-\frac{1}{2}f(x_0+2h)\right]+\frac{h^2}{3}f^{(3)}(\xi_0),\\ f'(x_0+h)&amp;=\frac{1}{h}\left[-\frac{1}{2}f(x_0)+\frac{1}{2}f(x_0+2h)\right]-\frac{h^2}{6}f^{(3)}(\xi_1),\\ f'(x_0+2h)&amp;=\frac{1}{h}\left[\frac{1}{2}f(x_0)-2f(x_0+h)+\frac{3}{2}f(x_0+2h)\right]+\frac{h^2}{3}f^{(3)}(\xi_2). \end{aligned}\]&lt;p&gt;平移得到&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;端点三点微分公式:&#10;&lt;/p&gt;&#10;\[f'(x_0)=\frac{1}{2h}\left[-3f(x_0)+4f(x_0+h)-f(x_0+2h)\right]+\frac{h^2}{3}f^{(3)}(\xi_0)\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;中心差分公式:&#10;&lt;/p&gt;&#10;\[f'(x_0)=\frac{1}{2h}\left[-f(x_0-h)+f(x_0+h)\right]-\frac{h^2}{6}f^{(3)}(\xi_1)\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;端点三点公式:&#10;&lt;/p&gt;&#10;\[f'(x_0)=\frac{1}{2h}\left[f(x_0-2h)-4f(x_0-h)+3f(x_0)\right]+\frac{h^2}{3}f^{(3)}(\xi_2)\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="42-second-derivative-formulas"&gt;4.2 Second-Derivative Formulas&lt;a class="heading-anchor" href="#42-second-derivative-formulas" aria-label="Link to 4.2 Second-Derivative Formulas" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;若 \(f\in C^4\) 于包含 \(x_0-h,x_0+h\) 的区间, 在左右对称点展开&#10;&lt;/p&gt;&#10;\[\begin{aligned} f(x_0+h)&amp;=f(x_0)+f'(x_0)h+\frac{1}{2}f''(x_0)h^2+\frac{1}{6}f'''(x_0)h^3+\frac{1}{24}f^{(4)}(\xi_1)h^4,\\ f(x_0-h)&amp;=f(x_0)-f'(x_0)h+\frac{1}{2}f''(x_0)h^2-\frac{1}{6}f'''(x_0)h^3+\frac{1}{24}f^{(4)}(\xi_{-1})h^4 \end{aligned}\]&lt;p&gt;&#10;相加消去 Taylor 展开中的奇次导数项&#10;&lt;/p&gt;&#10;\[f''(x_0)=\frac{1}{h^2}\left[f(x_0-h)-2f(x_0)+f(x_0+h)\right]-\frac{h^2}{24}\left[f^{(4)}(\xi_1)+f^{(4)}(\xi_{-1})\right].\]&lt;p&gt;因此记二阶中心差分公式为&lt;/p&gt;&#10;\[f''(x_0) = \frac{f(x_0-h)-2f(x_0)+f(x_0+h)}{h^2} +O(h^2).\]&lt;h3 id="43-simpson-formula"&gt;4.3 Simpson Formula&lt;a class="heading-anchor" href="#43-simpson-formula" aria-label="Link to 4.3 Simpson Formula" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;由 Lagrange interpolation 公式:&lt;/p&gt;&#10;\[\begin{aligned} P_n(x)&amp;=\sum_{i=0}^{n}f(x_i)L_i(x),\\ \int_a^b f(x)\,\mathrm{d}x &amp;=\int_a^b\sum_{i=0}^{n}f(x_i)L_i(x)\,\mathrm{d}x +\frac{1}{(n+1)!}\int_a^b\prod_{i=0}^{n}(x-x_i)f^{(n+1)}(\xi)\,\mathrm{d}x\\ &amp;=\sum_{i=0}^{n}a_i f(x_i)+\frac{1}{(n+1)!}\int_a^b\prod_{i=0}^{n}(x-x_i)f^{(n+1)}(\xi)\,\mathrm{d}x\\ &amp;\approx \sum_{i=0}^{n}a_i f(x_i). \end{aligned}\]&lt;p&gt;其中&lt;/p&gt;&#10;\[a_i=\int_a^b L_i(x)\,\mathrm{d}x\]&lt;p&gt;选三个等距点:&lt;/p&gt;&#10;\[x_0=a,\qquad x_1=\frac{a+b}{2},\qquad x_2=b\]&lt;p&gt;插值多项式为&lt;/p&gt;&#10;\[P_2(x)=L_0(x)f(x_0)+L_1(x)f(x_1)+L_2(x)f(x_2)\]&lt;p&gt;因此积分可写作:&lt;/p&gt;&#10;\[\begin{aligned} \int_a^b P_2(x)\,\mathrm{d}x &amp;=\sum_{k=0}^{2}a_k f(x_k)\\ &amp;=a_0f(x_0)+a_1f(x_1)+a_2f(x_2),\\ L_k(x)&amp;=\prod_{i=0,i\neq k}^{2}\frac{x-x_i}{x_k-x_i},\\ a_0&amp;=\int_a^b L_0(x)\,\mathrm{d}x=\frac{1}{6}(b-a). \end{aligned}\]\[\begin{aligned} a_1&amp;=\int_a^b L_1(x)\,\mathrm{d}x=\frac{2}{3}(b-a),\\ a_2&amp;=\int_a^b L_2(x)\,\mathrm{d}x=\frac{1}{6}(b-a). \end{aligned}\]&lt;p&gt;得到 Simpson 公式:&lt;/p&gt;&#10;\[\int_a^b f(x)\,\mathrm{d}x\approx \frac{b-a}{6}\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)\right]\]&lt;p&gt;若 \(f\in C^4[a,b]\), 其余项为&#10;&lt;/p&gt;&#10;\[R=\int_a^b f(x)\,\mathrm{d}x-\int_a^b P_2(x)\,\mathrm{d}x =-\frac{(b-a)^5}{2880}f^{(4)}(\xi),\qquad \xi\in(a,b).\]&lt;p&gt;&#10;因此 Simpson 公式对三次及以下多项式精确, 比二次插值本身的次数多一阶.&lt;/p&gt;&#10;&lt;h3 id="44-newton-cotes-formulas"&gt;4.4 Newton-Cotes Formulas&lt;a class="heading-anchor" href="#44-newton-cotes-formulas" aria-label="Link to 4.4 Newton-Cotes Formulas" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;取 \(x_k=a+kh\), \(k=0,\cdots,n\), 共 \(n+1\) 个等距节点, 积分公式为&lt;/p&gt;&#10;\[\begin{aligned} \int_a^b f(x)\,\mathrm{d}x&amp;\approx \sum_{k=0}^{n}a_k f(x_k),\\ a_k&amp;=\int_a^b L_k(x)\,\mathrm{d}x =\int_a^b\prod_{i=0,i\ne k}^{n}\frac{x-x_i}{x_k-x_i}\,\mathrm{d}x. \end{aligned}\]&lt;p&gt;定义科特斯系数:&lt;/p&gt;&#10;\[c_k=\frac{a_k}{b-a}\]&lt;p&gt;步长:&lt;/p&gt;&#10;\[\begin{aligned} h&amp;=\frac{b-a}{n},\\ \int_a^b f(x)\,\mathrm{d}x &amp;\approx (b-a)\sum_{k=0}^{n}c_k f(x_k) =(b-a)\sum_{k=0}^{n}c_k f(a+kh),\\ c_k &amp;=\frac{1}{b-a}\int_a^b\prod_{i=0,i\ne k}^{n}\frac{x-x_i}{x_k-x_i}\,\mathrm{d}x\\ &amp;=\frac{1}{nh}\int_0^n\prod_{i=0,i\ne k}^{n}\frac{\lambda-i}{k-i}\,h\,\mathrm{d}\lambda\\ &amp;=\frac{(-1)^{n-k}}{n(n-k)!k!}\int_0^n\prod_{i=0,i\ne k}^{n}(\lambda-i)\,\mathrm{d}\lambda. \end{aligned}\]&lt;p&gt;科特斯系数的性质:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对于确定的 \(n\), 有&lt;/p&gt;&#10;\[\sum_{k=0}^{n}c_k=1\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对称性&lt;/p&gt;&#10;\[c_k=c_{n-k}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;闭型 Newton-Cotes 公式从 \(n=8\) 开始会出现负权重. 负权重会增加抵消及数据误差放大的风险, 因而实践中通常采用低阶复合公式; 这不意味着每个高阶公式对每个函数都必然不稳定.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;比较常用的是 \(n=4\) 的闭型 Newton-Cotes 公式(Boole 公式). 取 \(h=(b-a)/4\), 若 \(f\in C^6[a,b]\), 可写出求积式及余项:&lt;/p&gt;&#10;\[\begin{aligned} \int_a^b f(x)\,\mathrm{d}x &amp;\approx (b-a)\left[\frac{7}{90}f(x_0)+\frac{16}{45}f(x_1)+\frac{2}{15}f(x_2)+\frac{16}{45}f(x_3)+\frac{7}{90}f(x_4)\right],\\ R&amp;=-\frac{8h^7}{945}f^{(6)}(\xi). \end{aligned}\]&lt;h3 id="45-composite-quadrature-formulas"&gt;4.5 Composite Quadrature Formulas&lt;a class="heading-anchor" href="#45-composite-quadrature-formulas" aria-label="Link to 4.5 Composite Quadrature Formulas" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;复合积分公式将积分区间分为若干子区间, 分别利用低阶积分公式, 再把各段积分加起来. 考虑复合 Simpson 公式: 令 \(n\) 为正偶数, \(h=(b-a)/n\), \(x_k=a+kh\), 并假设 \(f\in C^4[a,b]\). 每个 Simpson 面板包含两个长度为 \(h\) 的子区间:&lt;/p&gt;&#10;\[\begin{aligned} \int_a^b f(x)\,\mathrm{d}x &amp;=\sum_{k=1}^{n/2}\int_{x_{2k-2}}^{x_{2k}}f(x)\,\mathrm{d}x\\ &amp;=\sum_{k=1}^{n/2}\left\{\frac{h}{3}\left[f(x_{2k-2})+4f(x_{2k-1})+f(x_{2k})\right]-\frac{h^5}{90}f^{(4)}(\xi_k)\right\} \end{aligned}\]&lt;p&gt;每个 \(\xi_k\) 位于对应面板内. 利用 \(f^{(4)}\) 的连续性合并余项, 同时合并重复节点的权重:&lt;/p&gt;&#10;\[\int_a^b f(x)\,\mathrm{d}x =\frac{h}{3}\left[f(a)+2\sum_{k=1}^{n/2-1}f(x_{2k})+4\sum_{k=1}^{n/2}f(x_{2k-1})+f(b)\right] -\frac{b-a}{180}h^4 f^{(4)}(\xi')\]&lt;h3 id="46-remainder-extrapolation"&gt;4.6 Remainder Extrapolation&lt;a class="heading-anchor" href="#46-remainder-extrapolation" aria-label="Link to 4.6 Remainder Extrapolation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;假设精确值为 \(M\), 用步长 \(h\) 计算近似值为 \(N_1(h)\). 下面以余项具有幂次渐近展开、且系数 \(k_i\) 与 \(h\) 无关为前提; 实际计算按已有光滑性截断展开, 不要求无穷级数收敛:&lt;/p&gt;&#10;\[M=N_1(h)+k_1h+k_2h^2+k_3h^3+\cdots\]&lt;p&gt;换成一半步长:&lt;/p&gt;&#10;\[\begin{aligned} M&amp;=N_1\left(\frac{h}{2}\right)+k_1\frac{h}{2}+k_2\frac{h^2}{4}+k_3\frac{h^3}{8}+\cdots,\\ M&amp;=2N_1\left(\frac{h}{2}\right)-N_1(h)-\frac{k_2}{2}h^2-\frac{3k_3}{4}h^3+\cdots. \end{aligned}\]&lt;p&gt;定义:&lt;/p&gt;&#10;\[\begin{aligned} N_2(h)&amp;=2N_1\left(\frac{h}{2}\right)-N_1(h),\\ M&amp;=N_2(h)-\frac{k_2}{2}h^2-\frac{3k_3}{4}h^3+\cdots. \end{aligned}\]&lt;p&gt;精度从 \(O(h)\) 提高到了 \(O(h^{2})\).&lt;/p&gt;&#10;&lt;p&gt;下面考虑只有偶数阶余项的情形:&lt;/p&gt;&#10;\[\begin{aligned} M&amp;=N_1(h)+k_1h^2+k_2h^4+k_3h^6+\cdots,\\ M&amp;=N_1\left(\frac{h}{2}\right)+k_1\frac{h^2}{4}+k_2\frac{h^4}{16}+k_3\frac{h^6}{64}+\cdots,\\ 3M&amp;=4N_1\left(\frac{h}{2}\right)-N_1(h)-\frac{3k_2}{4}h^4-\frac{15k_3}{16}h^6+\cdots. \end{aligned}\]&lt;p&gt;定义:&lt;/p&gt;&#10;\[\begin{aligned} N_2(h)&amp;=\frac{1}{3}\left[4N_1\left(\frac{h}{2}\right)-N_1(h)\right],\\ M&amp;=N_2(h)-\frac{k_2}{4}h^4-\frac{5k_3}{16}h^6+\cdots. \end{aligned}\]&lt;p&gt;下一阶:&lt;/p&gt;&#10;\[\begin{aligned} N_3(h)&amp;=\frac{1}{15}\left[16N_2\left(\frac{h}{2}\right)-N_2(h)\right],\\ M&amp;=N_3(h)+\frac{k_3}{64}h^6+\cdots. \end{aligned}\]&lt;p&gt;考虑复合梯形公式:&lt;/p&gt;&#10;\[\begin{aligned} \int_a^b f(x)\,\mathrm{d}x &amp;=\frac{h}{2}\left[f(a)+2\sum_{k=1}^{n-1}f(x_k)+f(b)\right]+k_1h^2+k_2h^4+k_3h^6+\cdots,\\ N_1(h)&amp;=\frac{h}{2}\left[f(a)+2\sum_{k=1}^{n-1}f(x_k)+f(b)\right]. \end{aligned}\]&lt;p&gt;按相同方式逐阶消去偶次误差项, 统一递推为&#10;&lt;/p&gt;&#10;\[N_i(h)=N_{i-1}\left(\frac{h}{2}\right)+\frac{N_{i-1}\left(\frac{h}{2}\right)-N_{i-1}(h)}{4^{i-1}-1}.\]&lt;h3 id="47-romberg-integration"&gt;4.7 Romberg Integration&lt;a class="heading-anchor" href="#47-romberg-integration" aria-label="Link to 4.7 Romberg Integration" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Romberg algorithm 是一种加速算法, 可以得到更高精度的求积公式. 考虑变步长梯形法, 将积分区间 \([a,b]\) 等分为 \(n\) 个区间, 有 \(n+1\) 个点.&lt;/p&gt;&#10;\[x_k=a+kh,\quad h=\frac{b-a}{n},\quad k=0,1,2,\cdots,n\]&lt;p&gt;积分:&lt;/p&gt;&#10;\[T_n=\sum_{k=0}^{n-1}\frac{h}{2}\left[f(x_k)+f(x_{k+1})\right]\]&lt;p&gt;对每一个子区间再加一个节点 \(x_{k+1/2}\), 则每一段区间的积分为&lt;/p&gt;&#10;\[\frac{h}{4}\left[f(x_k)+2f(x_{k+1/2})+f(x_{k+1})\right]\]&lt;p&gt;整个区间:&lt;/p&gt;&#10;\[\begin{aligned} T_{2n} &amp;=\frac{h}{4}\sum_{k=0}^{n-1}\left[f(x_k)+f(x_{k+1})\right] +\frac{h}{2}\sum_{k=0}^{n-1}f(x_{k+1/2})\\ &amp;=\frac{T_n}{2}+\frac{h}{2}\sum_{k=0}^{n-1}f(x_{k+1/2}). \end{aligned}\]&lt;p&gt;等间隔取点:&lt;/p&gt;&#10;\[h=\frac{b-a}{n},\quad x_{k+1/2}=a+\left(k+\frac{1}{2}\right)h\]&lt;p&gt;截断误差:&lt;/p&gt;&#10;\[\begin{aligned} I-T_n&amp;=-\frac{b-a}{12}h^2f''(\xi_n) =-\frac{b-a}{12}\left(\frac{b-a}{n}\right)^2f''(\xi_n),\\ I-T_{2n}&amp;=-\frac{b-a}{12}\left(\frac{b-a}{2n}\right)^2f''(\xi_{2n}). \end{aligned}\]&lt;p&gt;不同步长对应的 \(\xi_n\) 一般不同, 不能直接令两个余项严格相差四倍. 若 \(f\) 足够光滑, 用 Euler-Maclaurin 型渐近展开&#10;&lt;/p&gt;&#10;\[I-T_n=k_1h^2+k_2h^4+k_3h^6+\cdots\]&lt;p&gt;&#10;消去最低阶项, 得&#10;&lt;/p&gt;&#10;\[I-T_{2n}=\frac{T_{2n}-T_n}{3}+O(h^4),\qquad S_n\equiv\frac{4T_{2n}-T_n}{3},\qquad I=S_n+O(h^4).\]&lt;p&gt;&#10;仅在该渐近展开适用且主导项未因抵消消失时, 相邻近似值之差才是可靠的余项估计; 两个近似值接近本身不能保证真误差很小.&lt;/p&gt;&#10;&lt;p&gt;这里 \(S_n\) 是由 \(n\) 个宽度为 \(h\) 的 Simpson 面板组成的复合公式, 其节点间距为 \(h/2\), 因而若 \(f\in C^4[a,b]\),&#10;&lt;/p&gt;&#10;\[\begin{aligned} I-S_n&amp;=-\frac{b-a}{2880}h^4f^{(4)}(\xi_n),\\ I-S_{2n}&amp;=-\frac{b-a}{2880}\left(\frac{h}{2}\right)^4f^{(4)}(\xi_{2n}). \end{aligned}\]&lt;p&gt;&#10;继续外推, 定义&#10;&lt;/p&gt;&#10;\[C_n\equiv\frac{16S_{2n}-S_n}{15},\qquad I=C_n+O(h^6).\]&lt;p&gt;&#10;\(C_n\) 恰为 \(n\) 个宽度为 \(h\)、节点间距为 \(h/4\) 的 Boole 面板组成的复合公式. 若 \(f\in C^6[a,b]\),&#10;&lt;/p&gt;&#10;\[\begin{aligned} I-C_n&amp;=-\frac{2(b-a)}{945}\left(\frac{h}{4}\right)^6f^{(6)}(\xi_n),\\ I-C_{2n}&amp;=-\frac{2(b-a)}{945}\left(\frac{h}{8}\right)^6f^{(6)}(\xi_{2n}). \end{aligned}\]&lt;p&gt;&#10;在具有相应高阶渐近展开时, 再消去六阶项得&#10;&lt;/p&gt;&#10;\[I=\frac{64C_{2n}-C_n}{63}+O(h^8).\]&lt;p&gt;&#10;各阶余项估计所需的光滑性不能从低阶公式自动推出; 例如 \(f\in C^{2m+2}[a,b]\) 足以支持梯形余项展开到 \(h^{2m}\), 剩余为 \(O(h^{2m+2})\).&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;h3 id="48-gaussian-quadrature"&gt;4.8 Gaussian Quadrature&lt;a class="heading-anchor" href="#48-gaussian-quadrature" aria-label="Link to 4.8 Gaussian Quadrature" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; 取 \(n+1\) 个合适的点 \(x_{k}, k=0,1,2, \cdots, n\), 使得积分公式&#10;&lt;/p&gt;&#10;\[\int_a^b f(x)\,\mathrm{d}x\approx\sum_{k=0}^n a_k f(x_k)\]&lt;p&gt;对所有不超过 \(2n+1\) 次的多项式精确成立, 就称该求积公式具有 \(2n+1\) 次代数精度. 此时称为 Gaussian quadrature, 对应节点称为 Gauss points; 对一般函数仍有求积余项.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;然后确定权重 \(a_k\). 令 Lagrange 基函数为&#10;&#10;\[\ell_k(x)=\prod_{\substack{i=0\\i\neq k}}^n\frac{x-x_i}{x_k-x_i}\]&#10;任意不超过 \(n\) 次的多项式 \(\Pi_n(x)\) 都可以精确写成 \(\Pi_n(x)=\sum_{k=0}^n \Pi_n(x_k)\ell_k(x)\), 对两边积分得&#10;&#10;\[\int_a^b \Pi_n(x)\,\mathrm{d}x = \sum_{k=0}^n \Pi_n(x_k)\int_a^b \ell_k(x)\,\mathrm{d}x\]&#10;与上述积分公式比较, 得到&#10;&#10;\[a_k=\int_a^b\ell_k(x)\,\mathrm{d}x\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Theorem&lt;/strong&gt; 节点 \(x_{k}, k=0,1,2, \cdots, n\) 是 Gauss points 的充分必要条件是, 以这些点为零点的多项式&#10;&lt;/p&gt;&#10;\[\omega_{n+1}(x)=\prod_{k=0}^n(x-x_k)\]&lt;p&gt;与任意不超过 \(n\) 次的多项式 \(Q_{n}(x)\) 均正交, 即&lt;/p&gt;&#10;\[\int_a^b Q_n(x)\omega_{n+1}(x)\,\mathrm{d}x=0\]&lt;p&gt;&lt;strong&gt;Proof&lt;/strong&gt; 必要性: 取 \(f=Q_n\omega_{n+1}\), 次数至多 \(2n+1\), 各节点函数值为零, 精确求积即给出正交性. 充分性: 任意次数至多 \(2n+1\) 的多项式均可作带余除法 \(f=q\omega_{n+1}+r\), 其中 \(\deg q,\deg r\le n\). 第一项的积分与节点求和值均为零, 第二项由插值权重精确积分, 故整个公式精确. 对正权重的正交多项式, 节点位于开区间内且互异; 此处权重为 1.&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;根据这个判据, 构造 Gauss points 的关键是找到满足上述正交性的 \(\omega_{n+1}(x)\). 在 \([-1,1]\) 且权重为 1 的情形下, 可以用 Legendre 多项式来完成这个构造.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;Proposition&lt;/strong&gt; Gauss-Legendre 求积&#10;对于 \([-1,1]\) 上的 Gaussian quadrature, 可以取 \(\omega_{n+1}(x)\) 为 \(n+1\) 次 Legendre 多项式 \(P_{n+1}(x)\) 的常数倍. 此时 \(P_{n+1}(x)\) 的零点就是 Gauss-Legendre quadrature 的 Gauss points.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Proof&lt;/strong&gt; Legendre 多项式在 \([-1,1]\) 上满足正交关系:&#10;&lt;/p&gt;&#10;\[\int_{-1}^1 P_i(x)P_j(x)\,\mathrm{d}x=\frac{2}{2i+1}\delta_{ij}\]&lt;p&gt;因此可以取&lt;/p&gt;&#10;\[\omega_{n+1}(x) =\frac{2^{n+1}[(n+1)!]^2}{(2n+2)!}P_{n+1}(x) =\frac{(n+1)!}{(2n+2)!}\frac{\mathrm{d}^{n+1}}{\mathrm{d}x^{n+1}}(x^2-1)^{n+1}\]&lt;p&gt;对于不超过 \(n\) 次的多项式 \(Q_{n}(x)\), 可以用 Legendre 多项式展开:&lt;/p&gt;&#10;\[Q_n(x)=\sum_{k=0}^n\lambda_k P_k(x) \implies \int_{-1}^1\omega_{n+1}(x)Q_n(x)\,\mathrm{d}x =C(n)\sum_{k=0}^n\lambda_k\int_{-1}^1P_k(x)P_{n+1}(x)\,\mathrm{d}x=0.\]&lt;p&gt;所以 \(P_{n+1}(x)\) 的零点满足 Gauss points 的正交判据.&lt;sup id="fnref1:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;此时, 权重可以给出另解, 即求解线性方程组&#10;&#10;\[\sum_{k=0}^{n}a_kP_i(x_k) = \int_{-1}^{1}P_i(x)\,\mathrm{d}x\]&#10;注意此处 \(i\) 的编号从 \(0\) 到 \(n\) 而不是 \(n+1\).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 通过区间变换, 可把其他区间上的积分化为 \([-1,1]\) 上的, 从而可以用Gauss-Legendre quadrature&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;若积分区间为 \(t \in [a,b]\), 令&#10;&lt;/p&gt;&#10;\[t=\frac{b-a}{2}x+\frac{b+a}{2}\]&lt;p&gt;&#10;积分区间化为 \(x \in [-1,1]\), 即&#10;&lt;/p&gt;&#10;\[\int_a^b f(t)\,\mathrm{d}t=\frac{b-a}{2}\int_{-1}^1 f\left(\frac{b-a}{2}x+\frac{b+a}{2}\right)\,\mathrm{d}x\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;若为无穷区间积分 \(\int_0^\infty f(t)\,\mathrm{d}t\), 令&#10;&lt;/p&gt;&#10;\[t=\tan\left[\frac{\pi}{4}(1+x)\right]\]&lt;p&gt;&#10;积分区间化为 \(x \in [-1,1]\), 即&#10;&lt;/p&gt;&#10;\[\begin{aligned} \int_0^\infty f(t)\,\mathrm{d}t &amp;=\int_{-1}^1 t'(x)f(t(x))\,\mathrm{d}x\\ &amp;\approx\sum_{k=0}^n a_k t'(x_k)f(t(x_k)),\\ t'(x)&amp;=\frac{\pi}{4}\sec^2\left[\frac{\pi}{4}(1+x)\right]. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;变换后的积分应收敛; \(t(x)\) 在 \(x=1\) 发散, 变换后的被积函数未必满足有限区间 Gauss 余项所需的光滑性.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 计算积分&#10;&lt;/p&gt;&#10;\[\int_{-1}^1x^2\,\mathrm{d}x\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 考虑两个 Gauss points 的情形, 取二阶 Legendre 多项式&#10;&lt;/p&gt;&#10;\[P_2(x)=\frac{1}{2}(3x^2-1)\]&lt;p&gt;Gauss points 为 \(x_0=-\frac{1}{\sqrt{3}},x_1=\frac{1}{\sqrt{3}}\), 对应的 Lagrange 基函数为&lt;/p&gt;&#10;\[\begin{aligned} \ell_0(x) &amp;=\frac{x-x_1}{x_0-x_1} =\frac{x-\frac{1}{\sqrt{3}}}{-\frac{2}{\sqrt{3}}} =\frac{1-\sqrt{3}x}{2},\\ \ell_1(x) &amp;=\frac{x-x_0}{x_1-x_0} =\frac{x+\frac{1}{\sqrt{3}}}{\frac{2}{\sqrt{3}}} =\frac{1+\sqrt{3}x}{2}. \end{aligned}\]&lt;p&gt;由权重公式 \(a_k=\int_{-1}^{1}\ell_k(x)\,\mathrm{d}x\) 得&lt;/p&gt;&#10;\[a_0 =\int_{-1}^{1}\frac{1-\sqrt{3}x}{2}\,\mathrm{d}x=1, \qquad a_1 =\int_{-1}^{1}\frac{1+\sqrt{3}x}{2}\,\mathrm{d}x=1.\]&lt;p&gt;代入积分公式&lt;/p&gt;&#10;\[\int_{-1}^1x^2\,\mathrm{d}x=a_0x_0^2+a_1x_1^2=\frac{1}{3}+\frac{1}{3}=\frac{2}{3}\]&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 上述 \(a_k\) 也可直接由矩条件得到. 对 2 点 Gauss-Legendre 公式, 要求对 \(1,x\) 精确:&#10;&lt;/p&gt;&#10;\[\begin{aligned} 2 &amp;= a_0 + a_1,\\ 0 &amp;= a_0x_0 + a_1x_1 = -\frac{a_0}{\sqrt3} + \frac{a_1}{\sqrt3} \end{aligned}\]&lt;p&gt;&#10;解得 \(a_0 = a_1 = 1\), 与 Lagrange 基积分结果一致. 在此权重下, 公式自动对 \(x^2\) 和 \(x^3\) 也精确 — 这正是 \(N\) 个节点的 Gauss 求积具有 \(2N-1\) 次代数精度(本节 \(N=n+1\)): 2 个节点精确到 3 次多项式, 多出的精度由节点位置的 Legendre 根性质保证.&lt;/p&gt;&#10;&lt;h3 id="49-weighted-gaussian-quadrature-"&gt;4.9 Weighted Gaussian Quadrature *&lt;a class="heading-anchor" href="#49-weighted-gaussian-quadrature-" aria-label="Link to 4.9 Weighted Gaussian Quadrature *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;很多情况下我们需要处理带权函数的 Gaussian quadrature:&lt;/p&gt;&#10;\[\int_a^b \rho(x)f(x)\,\mathrm{d}x\]&lt;p&gt;以下假设:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;\(\rho\geq0\);&lt;/li&gt;&#10;&lt;li&gt;所需多项式矩有限;&lt;/li&gt;&#10;&lt;li&gt;对所需次数的任意非零多项式 \(q\) 有 \(\int_a^b\rho(x)q(x)^2\,\mathrm{d}x&gt;0\).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这些条件保证相应正交多项式存在.&lt;/p&gt;&#10;&lt;p&gt;此时 Gauss points 成立的条件为: 多项式&lt;/p&gt;&#10;\[\omega_{n+1}(x)=\prod_{k=0}^n(x-x_k)\]&lt;p&gt;为区间 \([a,b]\) 上关于权函数 \(\rho(x)\) 的正交多项式:&lt;/p&gt;&#10;\[\int_a^b \rho(x)\omega_{n+1}(x)Q_n(x)\,\mathrm{d}x=0\]&lt;p&gt;各公式使用 \(n+1\) 个节点, 取对应 \(n+1\) 次正交多项式的零点; 对次数至多 \(2n+1\) 的多项式精确, 对一般函数是近似求积. 下面列举常见公式:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Gauss-Laguerre quadrature formula&lt;/p&gt;&#10;&lt;p&gt;\(\mathcal{L}_{n}(x)\) 为 Laguerre polynomial:&lt;/p&gt;&#10;\[\begin{aligned} \int_0^\infty \mathrm{e}^{-x}f(x)\,\mathrm{d}x&amp;\approx\sum_{k=0}^n a_k f(x_k),\\ a_k&amp;=-\frac{1}{(n+1)\mathcal{L}'_{n+1}(x_k)\mathcal{L}_n(x_k)}. \end{aligned}\]\[\int_0^\infty \mathrm{e}^{-x}\mathcal{L}_n(x)^2\,\mathrm{d}x=1\]&lt;p&gt;递推关系为&lt;/p&gt;&#10;\[\begin{aligned} (n+1)\mathcal{L}_{n+1}(x)&amp;=(2n+1-x)\mathcal{L}_n(x)-n\mathcal{L}_{n-1}(x),\\ \mathcal{L}_0(x)&amp;=1,\\ \mathcal{L}_1(x)&amp;=1-x. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Gauss-Hermite quadrature formula&lt;/p&gt;&#10;\[\begin{aligned} \int_{-\infty}^{\infty}\mathrm{e}^{-x^2}f(x)\,\mathrm{d}x&amp;\approx\sum_{k=0}^n a_k f(x_k),\\ a_k&amp;=\frac{2^{n+1}n!\sqrt{\pi}}{H'_{n+1}(x_k)H_n(x_k)}. \end{aligned}\]&lt;p&gt;\(H_{n}\left(x\right)\) Hermite polynomial:&lt;/p&gt;&#10;\[\int_{-\infty}^{\infty}\mathrm{e}^{-x^2}H_n(x)^2\,\mathrm{d}x=2^n n!\sqrt{\pi}\]&lt;p&gt;递推关系为&lt;/p&gt;&#10;\[\begin{aligned} H_{n+1}(x)&amp;=2xH_n(x)-2nH_{n-1}(x),\\ H_0(x)&amp;=1,\\ H_1(x)&amp;=2x. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Gauss-Chebyshev quadrature formula&lt;/p&gt;&#10;\[\begin{aligned} \int_{-1}^1\frac{f(x)}{\sqrt{1-x^2}}\,\mathrm{d}x&amp;\approx\sum_{k=0}^n a_k f(x_k),\\ a_k&amp;=\frac{\pi}{n+1},\qquad x_k=\cos\frac{(2k+1)\pi}{2(n+1)},\quad k=0,\cdots,n. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="5-nonlinear-equations"&gt;5 Nonlinear Equations&lt;a class="heading-anchor" href="#5-nonlinear-equations" aria-label="Link to 5 Nonlinear Equations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;以下讨论复杂方程的求根方法.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="51-bisection-method"&gt;5.1 Bisection Method&lt;a class="heading-anchor" href="#51-bisection-method" aria-label="Link to 5.1 Bisection Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;二分法&lt;/strong&gt; 利用介值定理. 假设 \(f\) 在 \([a,b]\) 上连续且 \(f(a)f(b)\lt 0\); 若端点已经为根则直接返回. 取区间中点 \(p_1=\frac{a+b}{2}\)&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;如果 \(f(p_{1})\) 与 \(f(a)\) 同号, 说明根在右半区间 \((p_{1}, b)\) 内, 更新 \((a_{2}, b_{2}) = (p_{1}, b)\);&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;如果 \(f(p_{1})\) 与 \(f(b)\) 同号, 说明根在左半区间 \((a, p_{1})\) 内, 更新 \((a_{2}, b_{2}) = (a, p_{1})\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;若中点恰为根则终止; 通常按区间半宽小于指定误差容限终止, 不应等待浮点函数值精确为零. 每次保留异号区间, 其长度减半, 中点到该区间中至少一个根的距离不超过半区间长.&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;二分法具有全局线形收敛性, 对于振荡, 不光滑函数具有较好效果.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="52-fixed-point-iteration"&gt;5.2 Fixed-Point Iteration&lt;a class="heading-anchor" href="#52-fixed-point-iteration" aria-label="Link to 5.2 Fixed-Point Iteration" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;不动点法&lt;/strong&gt; 对待求根函数 \(f(x)\), 寻找一个不动点为其根的函数, 即&#10;&lt;/p&gt;&#10;\[f(p)=0\implies p=g(p).\]&lt;p&gt;以化为寻找不动点的问题. 选取初始值 \(p_{0}\), 迭代求解:&#10;&lt;/p&gt;&#10;\[p_n=g(p_{n-1})\]&lt;p&gt;若迭代收敛且 \(g\) 在极限点连续, 则极限是它的不动点. 必须在所选定义域保证不动点与原方程的根等价; 一般的 \(g\) 并不自动收敛:&lt;/p&gt;&#10;\[p=\lim_{n\to\infty}p_n=\lim_{n\to\infty}g(p_n)=g(p)\]&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 对于同一个 \(f(x)\), 有很多不同的 \(g(x)\) 选取方法. \(g(x)\) 的选取和迭代的收敛速度有很大关系.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Theorem&lt;/strong&gt; 压缩映射定理: 若&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;\(g\) 将区间 \([a,b]\) 映射到自身&lt;/li&gt;&#10;&lt;li&gt;\(g(x)\) 在 \([a,b]\) 上可导&lt;/li&gt;&#10;&lt;li&gt;存在常数 \(0\leq k\lt1\) 使得 \(|g'(x)| \leq k, \forall x \in (a,b)\)&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;则对于任意初始值 \(p_0 \in [a,b]\), 由 \(p_n = g(p_{n-1})\) 生成的序列必定收敛到 \([a,b]\) 内的唯一不动点 \(p\).&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 对于方程&#10;&lt;/p&gt;&#10;\[f(x)=x^3+4x^2-10=0\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 尝试以下五种 \(g(x)\) 的取值方法:&#10;&lt;/p&gt;&#10;\[\begin{aligned} &amp;g_1(x)=x-f(x), &amp;&amp;g_2(x)=\left(\frac{10}{x}-4x\right)^{1/2}, &amp;g_3(x)=\frac{1}{2}(10-x^3)^{1/2},\\ &amp;g_4(x)=\left(\frac{10}{4+x}\right)^{1/2}, &amp;&amp;g_5(x)=x-\frac{f(x)}{f^{\prime}(x)}. \end{aligned}\]&lt;p&gt;取 \(p_{0}=1.5\).&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(n\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(g_1(x)\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(g_2(x)\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(g_3(x)\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(g_4(x)\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(g_5(x)\)&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.5&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-0.875&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.8165&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.286953768&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.348399725&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.373333333&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6.732&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2.9969&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.402540804&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.367376372&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365262015&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-469.7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\((-8.65)^{1/2}\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.345458374&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.364957015&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230014&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(1.03\times10^8\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.375170253&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365264748&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230013&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.360094193&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365225594&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.367846968&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230576&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.363887004&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365229942&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365916734&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230022&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.364878217&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230012&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365410062&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230014&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;15&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365223680&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230013&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;20&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.365230236&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;第一个函数会发散, 第二个函数会迭代到负数开方而在实数范围内失效.&#10;从第三个到第五个函数, 收敛速度会不断变快.&lt;/p&gt;&#10;&lt;img src="./assets/fixed-point-cobweb-convergence.svg" alt="同一三次方程的两个不动点映射从相同初值出发的蛛网迭代过程" width="1200" height="564" style="display: block; width: 100%; max-width: 960px; height: auto;" /&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;图 5.1 采用本节三次方程例题的第三、第四种不动点映射, 均从 1.5 出发绘制七次迭代. 从对角线上的当前值竖直到蓝色映射曲线, 再水平返回对角线, 得到下一个值. 两者均交替趋近同一根, 右侧收缩更快; 接近根时的步长会在图上重叠. 红线表示算法步骤, 不表示物理运动轨迹. 由本节例题直接计算绘制.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="53-newton-method"&gt;5.3 Newton Method&lt;a class="heading-anchor" href="#53-newton-method" aria-label="Link to 5.3 Newton Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;h4 id="531-newton-method-for-simple-roots"&gt;5.3.1 Newton Method for Simple Roots&lt;a class="heading-anchor" href="#531-newton-method-for-simple-roots" aria-label="Link to 5.3.1 Newton Method for Simple Roots" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Newton method 是另一种求解方程的方法, 其核心思想为在当前位置用切线近似原函数, 将切线与 \(x\) 轴的交点作为下一个近似根.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;对于方程 \(f(p)=0\), 函数 \(f(p)\) 可以 Taylor 展开:&#10;&lt;/p&gt;&#10;\[f(p)=f(p_0)+(p-p_0)f'(p_0)+\frac{(p-p_0)^2}{2}f''(\xi(p))\]&lt;p&gt;不考虑二阶微分项:&lt;/p&gt;&#10;\[p\approx p_0-\frac{f(p_0)}{f'(p_0)}\equiv p_1\]&lt;p&gt;迭代:&lt;/p&gt;&#10;\[p_n=p_{n-1}-\frac{f(p_{n-1})}{f'(p_{n-1})}\]&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 若 \(f\in C^2\) 于单根 \(p\) 的邻域、\(f'(p)\ne0\), 且初值足够接近 \(p\), Newton method 至少二阶局部收敛. 迭代中要求 \(f'(p_{n-1})\ne0\); 初值偏离根较远时可能发散或走出定义域.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; Newton method 也可以看作不动点迭代. 对于方程 \(f(x)=0\), 定义 Newton map&#10;&lt;/p&gt;&#10;\[G(x)=x-\frac{f(x)}{f'(x)}\]&lt;p&gt;Newton method 的迭代就是 \(p_n=G(p_{n-1})\). 上一节例子中的 \(g_5\) 正是 Newton map.&lt;/p&gt;&#10;&lt;h4 id="532-newton-method-for-multiple-roots"&gt;5.3.2 Newton Method for Multiple Roots&lt;a class="heading-anchor" href="#532-newton-method-for-multiple-roots" aria-label="Link to 5.3.2 Newton Method for Multiple Roots" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Newton method 求解多重根问题时, 如果采用前面的公式, 收敛速度将变为线性收敛. 为了恢复平方收敛速度, 可以将问题再转换为求单根问题.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;例如对于 \(m\geq2\) 重根 \(f(x)=(x-p)^m q(x)\), 假设 \(q(p)\ne0\) 且 \(q\) 在根的邻域足够光滑. 普通 Newton 法的渐近误差因子为 \(1-1/m\); 若 \(m\) 已知, 可用 \(x_{n+1}=x_n-mf(x_n)/f'(x_n)\) 恢复至少二阶局部收敛. 若不使用重数, 定义&#10;&lt;/p&gt;&#10;\[\mu(x)=\frac{f(x)}{f'(x)}\]&lt;p&gt;将问题转化为求解 \(\mu(x)\) 的单根, 可以计算出&lt;/p&gt;&#10;\[\begin{aligned} \mu(x)&amp;=\frac{(x-p)q(x)}{mq(x)+(x-p)q'(x)},\\ g(x)&amp;=x-\frac{\mu(x)}{\mu'(x)} =x-\frac{f(x)f'(x)}{f'(x)^2-f(x)f''(x)}. \end{aligned}\]&lt;p&gt;在 \(p\) 处对 \(\mu\) 作连续延拓, 有 \(\mu(p)=0\)、\(\mu'(p)=1/m\), 因而它是单根. 对 \(\mu\) 使用 Newton 法, 迭代公式为&lt;/p&gt;&#10;\[p_{n+1}=p_n-\frac{f(p_n)f'(p_n)}{f'(p_n)^2-f(p_n)f''(p_n)}\]&lt;p&gt;计算时要求分母非零; 达到根或残差、步长容限后应停止, 避免在多重根处计算 \(0/0\).&lt;/p&gt;&#10;&lt;h3 id="54-secant-method"&gt;5.4 Secant Method&lt;a class="heading-anchor" href="#54-secant-method" aria-label="Link to 5.4 Secant Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;割线法可以看作 Newton method 的离散化版本: 它避免直接计算导数, 而是用两点连线的斜率来近似切线斜率.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;割线法中斜率近似为&#10;&lt;/p&gt;&#10;\[f'(p_{n-1}) =\lim_{x\to p_{n-1}}\frac{f(x)-f(p_{n-1})}{x-p_{n-1}} \approx\frac{f(p_{n-1})-f(p_{n-2})}{p_{n-1}-p_{n-2}}\]&lt;p&gt;若 \(f(p_{n-1})\ne f(p_{n-2})\), 代入原迭代式&lt;/p&gt;&#10;\[p_n=p_{n-1}-\frac{f(p_{n-1})(p_{n-1}-p_{n-2})}{f(p_{n-1})-f(p_{n-2})}\]&lt;p&gt;图 5.2 采用 \(f(x)=x^3+4x^2-10\), 左右两栏使用同一函数.&lt;/p&gt;&#10;&lt;img src="./assets/newton-and-secant-step-geometry.svg" alt="同一三次函数上 Newton 切线与割线分别给出下一次求根近似的几何过程" width="1200" height="540" style="display: block; width: 100%; max-width: 960px; height: auto;" /&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;图 5.2 比较同一三次函数的求根步骤. 左: Newton 法在初值 1.5 处作切线, 切线与横轴的交点给出下一次近似. 右: 割线法取两个初值 1.1、1.5, 两个函数值的连线与横轴交于新的近似. 每栏只显示一步, 旨在比较所需信息与几何构造, 不用于比较不同初值下的总收敛速度. 由该函数直接计算绘制.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="55-aitken-acceleration-"&gt;5.5 Aitken Acceleration *&lt;a class="heading-anchor" href="#55-aitken-acceleration-" aria-label="Link to 5.5 Aitken Acceleration *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;利用 Aitken 加速算法可以加速收敛. 考虑序列 \(p_0, p_1, p_2, \cdots\), 该序列将收敛为 \(p\). 可以构造一个新的序列, 使其收敛速度变快. 假设对于足够大的 \(n\), 有&lt;/p&gt;&#10;\[\begin{aligned} \frac{p_{n+1}-p}{p_n-p} &amp;\approx\frac{p_{n+2}-p}{p_{n+1}-p},\\ p &amp;\approx\frac{p_{n+2}p_n-p_{n+1}^2}{p_{n+2}-2p_{n+1}+p_n}\\ &amp;=p_n-\frac{(p_{n+1}-p_n)^2}{p_{n+2}-2p_{n+1}+p_n}. \end{aligned}\]&lt;p&gt;当 \(\Delta^2p_n\ne0\) 时可构造新的序列 \(\hat{p}_n\). 对渐近线性误差且极限比值 \(\lambda\ne1\) 的序列, 它可消去主导的几何误差项; 并非任意收敛序列都必然加速:&lt;/p&gt;&#10;\[\hat{p}_n=p_n-\frac{(p_{n+1}-p_n)^2}{p_{n+2}-2p_{n+1}+p_n}\]&lt;p&gt;如果定义&lt;/p&gt;&#10;\[\begin{aligned} \Delta p_n&amp;=p_{n+1}-p_n,\\ \Delta^2p_n&amp;=p_{n+2}-2p_{n+1}+p_n. \end{aligned}\]&lt;p&gt;可以写成差分形式:&lt;/p&gt;&#10;\[\hat{p}_n=p_n-\frac{(\Delta p_n)^2}{\Delta^2p_n}\]&lt;h3 id="56-steffensen-method-"&gt;5.6 Steffensen Method *&lt;a class="heading-anchor" href="#56-steffensen-method-" aria-label="Link to 5.6 Steffensen Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Steffensen 方法把 Aitken 加速和不动点迭代结合起来, 每轮都对两步迭代作加速. 若 \(g\) 在不动点 \(p\) 邻域足够光滑、\(g'(p)\ne1\), 初值足够接近且下面的分母非零, 通常可获得至少二阶局部收敛; 它不需要显式导数. 若当前点已为不动点则先终止.&lt;/p&gt;&#10;&lt;p&gt;从当前近似 \(p_{0}^{(k)}\) 出发, 先做两步不动点迭代:&lt;/p&gt;&#10;\[\begin{aligned} p_1^{(k)}&amp;=g(p_0^{(k)}),\\ p_2^{(k)}&amp;=g(p_1^{(k)}). \end{aligned}\]&lt;p&gt;这三个点利用 Aitken 公式, 计算出加速度的值作为下一轮的起点:&lt;/p&gt;&#10;\[p_0^{(k+1)}=\hat{p}_0^{(k)} =p_0^{(k)}-\frac{(p_1^{(k)}-p_0^{(k)})^2}{p_2^{(k)}-2p_1^{(k)}+p_0^{(k)}}\]&lt;p&gt;再重复上述步骤即可.&lt;/p&gt;&#10;&lt;h3 id="57-qin-jiushao-algorithm-"&gt;5.7 Qin Jiushao Algorithm *&lt;a class="heading-anchor" href="#57-qin-jiushao-algorithm-" aria-label="Link to 5.7 Qin Jiushao Algorithm *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑代数多项式:&lt;/p&gt;&#10;\[P(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0\]&lt;p&gt;可以将其写作如下形式:&lt;/p&gt;&#10;\[P(x)=(\cdots((a_nx+a_{n-1})x+a_{n-2})x+\cdots+a_1)x+a_0\]&lt;p&gt;令&lt;/p&gt;&#10;\[\begin{aligned} b_n&amp;=a_n,\\ b_k&amp;=a_k+b_{k+1}x_0,\\ b_0&amp;=P(x_0). \end{aligned}\]&lt;p&gt;考虑多项式:&lt;/p&gt;&#10;\[Q(x)=b_nx^{n-1}+b_{n-1}x^{n-2}+\cdots+b_2x+b_1\]&lt;p&gt;这个多项式是 \(P(x)\) 除以 \((x-x_0)\) 的商, 余数为 \(b_0\), 即&lt;/p&gt;&#10;\[P(x)=(x-x_0)Q(x)+b_0\]&lt;p&gt;求导:&lt;/p&gt;&#10;\[\begin{aligned} P'(x)&amp;=Q(x)+(x-x_0)Q'(x),\\ P'(x_0)&amp;=Q(x_0). \end{aligned}\]&lt;p&gt;再利用 Newton method:&lt;/p&gt;&#10;\[x_1=x_0-\frac{P(x_0)}{P'(x_0)}=x_0-\frac{P(x_0)}{Q(x_0)}\]&lt;p&gt;收敛到根 \(t\) 时, \(P(t)=0\), 此时对应的 \(b_{0}=0\). 于是&lt;/p&gt;&#10;\[P(x)=(x-t)Q(x)\]&lt;p&gt;\(Q(x)\) 在精确代数下保留除去一次重数后的其他根. 可以继续对 \(Q(x)\) 求根以逐次降阶, 但 Newton 法仍需要合适初值, 也可能遇到复根; 用近似根作降阶会传播舍入误差, 宜回到原多项式检查最终根的残差.&lt;/p&gt;&#10;&lt;h3 id="58-brent-method-"&gt;5.8 Brent Method *&lt;a class="heading-anchor" href="#58-brent-method-" aria-label="Link to 5.8 Brent Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Brent 算法是一种混合型求根方法. 假设 \(f\) 在初始区间连续, 两端函数值异号(端点为根则先返回). 它保持括根区间, 在割线、逆二次插值和二分法之间选择, 用步长保护获得可靠的区间收缩.&lt;/p&gt;&#10;&lt;p&gt;下面采用 \(a,b\) 为括根端点的记号, 始终保持 \(f(a)f(b)\lt0\)、\(|f(b)|\leq|f(a)|\), 而 \(c\) 保留上一轮的 \(b\). 三个点的函数值互异时, 可通过逆二次插值构造候选点(不同实现对 \(a,b,c\) 的命名可能不同):&lt;/p&gt;&#10;\[\begin{aligned} x &amp;=\frac{[y-f(a)][y-f(b)]c}{[f(c)-f(a)][f(c)-f(b)]}\\ &amp;\quad+\frac{[y-f(b)][y-f(c)]a}{[f(a)-f(b)][f(a)-f(c)]}\\ &amp;\quad+\frac{[y-f(c)][y-f(a)]b}{[f(b)-f(c)][f(b)-f(a)]}. \end{aligned}\]&lt;p&gt;\(y=0\) 时可以求解出对应的 \(x\) 值, 解得&lt;/p&gt;&#10;\[\begin{aligned} x&amp;=b+\frac{P}{Q},\\ R&amp;=\frac{f(b)}{f(c)},\qquad S=\frac{f(b)}{f(a)},\qquad T=\frac{f(a)}{f(c)},\\ P&amp;=S[T(R-T)(c-b)-(1-R)(b-a)],\\ Q&amp;=(T-1)(R-1)(S-1). \end{aligned}\]&lt;p&gt;下面要考虑这个计算出的结果 \(x\) 要不要接受, 一般来说, 接受新值的具体条件:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;候选点位于当前括根区间 \((\min(a,b),\max(a,b))\) 内; 端点重排后并不保证 \(a\lt b\);&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;与上次迭代相比, 区间收缩不会太慢.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;若三个函数值不互异, 优先退化为割线候选 \(x=b-f(b)(b-a)/(f(b)-f(a))\); 若候选不安全或分母过小, 使用二分法. 上述区间与步长条件只是保护思路, 完整实现还必须保存前两步长度、检查插值步是否足够缩短以及绝对/相对容限, 不能仅凭区间内条件保证 Brent 的收敛界. 可参照 Netlib 的成熟实现.&lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt; 放弃插值时使用二分法:&lt;/p&gt;&#10;\[x=\frac{a+b}{2}\]&lt;p&gt;随后再迭代, 更新三个点: 计算&lt;/p&gt;&#10;\[y=f(x)\]&lt;p&gt;若 \(y=0\) 则返回 \(x\); 否则按异号性更新:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;如果 \(f(b)\) 与 \(y\) 同号, 新括根端点为 \((a',b')=(a,x)\).&lt;/li&gt;&#10;&lt;li&gt;否则新括根端点为 \((a',b')=(x,b)\).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;这里括根区间始终按两端点的最小值与最大值理解; 达到区间宽度容限时也应终止.&lt;/p&gt;&#10;&lt;p&gt;如果 \(|f(a')| \lt |f(b')|\), 则需要更换 \(a',b'\), 因为要保持 \(f(b')\) 的绝对值最小. 最后再取 \(c' = b\), 重复上面的过程.&lt;/p&gt;&#10;&lt;h3 id="59-newton-method-for-nonlinear-systems"&gt;5.9 Newton Method for Nonlinear Systems&lt;a class="heading-anchor" href="#59-newton-method-for-nonlinear-systems" aria-label="Link to 5.9 Newton Method for Nonlinear Systems" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑非线性方程组 \(\mathbf{F}(\mathbf{x})=\mathbf{0}\) 的求解. 每一步要求当前 Jacobian 可逆; 若解处 Jacobian 可逆、\(\mathbf{F}\) 在其邻域二阶连续可微且初值足够接近, Newton 法至少二阶局部收敛, 并不保证任意初值都成功:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;构造 Jacobian matrix:&#10;&lt;/p&gt;&#10;\[\mathbf{J}(\mathbf{x})= \left(\frac{\partial f_i}{\partial x_j}\right)\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;令&#10;&lt;/p&gt;&#10;\[G(\mathbf{x})=\mathbf{x}-\mathbf{J}(\mathbf{x})^{-1}\mathbf{F}(\mathbf{x})\]&lt;p&gt;&#10;迭代公式:&#10;&lt;/p&gt;&#10;\[\mathbf{x}^{(k)} =G(\mathbf{x}^{(k-1)})=\mathbf{x}^{(k-1)}-\mathbf{J}(\mathbf{x}^{(k-1)})^{-1}\mathbf{F}(\mathbf{x}^{(k-1)}).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在实际的求解过程中, 一般不会直接求解 Jacobian matrix 的逆矩阵. 定义 \(\mathbf{y}=\mathbf{x}^{(k)}-\mathbf{x}^{(k-1)}\), 上式化为&#10;&lt;/p&gt;&#10;\[\mathbf{J}(\mathbf{x}^{(k-1)})\mathbf{y}=-\mathbf{F}(\mathbf{x}^{(k-1)}).\]&lt;p&gt;&#10;求解该线性方程组即可.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 求解非线性方程组&lt;/p&gt;&#10;\[\begin{aligned} f_1(x_1,x_2,x_3)&amp;=3x_1-\cos(x_2x_3)-\frac{1}{2},\\ f_2(x_1,x_2,x_3)&amp;=x_1^2-81(x_2+0.1)^2+\sin x_3+1.06,\\ f_3(x_1,x_2,x_3)&amp;=\mathrm{e}^{-x_1x_2}+20x_3+\frac{10\pi-3}{3}. \end{aligned}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; Jacobian matrix 为:&#10;&lt;/p&gt;&#10;\[\mathbf{J}(x_1,x_2,x_3)= \begin{pmatrix} 3&amp;x_3\sin(x_2x_3)&amp;x_2\sin(x_2x_3)\\ 2x_1&amp;-162(x_2+0.1)&amp;\cos x_3\\ -x_2\mathrm{e}^{-x_1x_2}&amp;-x_1\mathrm{e}^{-x_1x_2}&amp;20 \end{pmatrix}\]&lt;p&gt;取定初始值 \(\mathbf{x}^{(0)}=(0.1,0.1,-0.1)^{\mathsf{T}}\), 计算得&lt;/p&gt;&#10;\[\mathbf{F}(\mathbf{x}^{(0)})=(-1.19995000042,-2.26983341665,8.46202534572)^{\mathsf{T}}\]&lt;p&gt;求解线性方程组:&lt;/p&gt;&#10;\[\mathbf{J}(\mathbf{x}^{(0)})\mathbf{y}^{(0)}=-\mathbf{F}(\mathbf{x}^{(0)})\]&lt;p&gt;求解得&lt;/p&gt;&#10;\[\mathbf{y}^{(0)} =\begin{pmatrix} 0.39986967293\\ -0.08053315146\\ -0.42152047194 \end{pmatrix}, \qquad \mathbf{x}^{(1)} =\mathbf{x}^{(0)}+\mathbf{y}^{(0)} =\begin{pmatrix} 0.49986967293\\ 0.01946684854\\ -0.52152047194 \end{pmatrix}.\]&lt;p&gt;继续迭代并检验原方程残差:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(k\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_1^{(k)}\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_2^{(k)}\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_3^{(k)}\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(\Vert \mathbf{F}(\mathbf{x}^{(k)})\Vert _\infty\)&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.5000142402&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.0015885914&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-0.5235569643&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.0258891&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.5000001135&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.0000124448&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-0.5235984501&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.000201223&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.5000000000&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(7.7579\times10^{-10}\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-0.5235987756&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(1.2543\times10^{-8}\)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0.5000000000&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(3.36\times10^{-18}\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-0.5235987756&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(1.78\times10^{-15}\)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;表中残差用未舍入的迭代值计算. 对应精确解为&#10;&lt;/p&gt;&#10;\[\boxed{\mathbf x_*=(1/2,0,-\pi/6)^{\mathsf T}},\qquad\mathbf F(\mathbf x_*)=\mathbf0,\]&lt;p&gt;&#10;可直接代入三式验证. 这是该初值收敛到的根, 未据此声称全部根已枚举.&lt;/p&gt;&#10;&lt;p&gt;&lt;a id="cp-broyden"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="510-quasi-newton-method-broyden-method-"&gt;5.10 Quasi-Newton Method: Broyden Method *&lt;a class="heading-anchor" href="#510-quasi-newton-method-broyden-method-" aria-label="Link to 5.10 Quasi-Newton Method: Broyden Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;如果 Jacobian matrix 很难计算, 则需要用近似矩阵 \(\mathbf{A}\) 来代替. 近似矩阵 \(\mathbf{A}\) 需要满足:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;割线条件&lt;/p&gt;&#10;&lt;p&gt;对于标量函数 \(f(x)\), 割线近似为:&lt;/p&gt;&#10;\[f'(x_1)\approx\frac{f(x_1)-f(x_0)}{x_1-x_0}\]&lt;p&gt;对于向量函数, 自然推广为&lt;/p&gt;&#10;\[\mathbf{A}_1(\mathbf{x}^{(1)}-\mathbf{x}^{(0)}) =\mathbf{F}(\mathbf{x}^{(1)})-\mathbf{F}(\mathbf{x}^{(0)})\]&lt;p&gt;记&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{s}_1&amp;=\mathbf{x}^{(1)}-\mathbf{x}^{(0)},\\ \mathbf{y}_1&amp;=\mathbf{F}(\mathbf{x}^{(1)})-\mathbf{F}(\mathbf{x}^{(0)}). \end{aligned}\]&lt;p&gt;割线条件可以写作&lt;/p&gt;&#10;\[\mathbf{A}_1\mathbf{s}_1=\mathbf{y}_1\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;正交条件&lt;/p&gt;&#10;&lt;p&gt;对于任意与 \(\mathbf{s}_1\) 正交的向量 \(\mathbf{z}\).&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{s}_1^{\mathsf{T}}\mathbf{z}&amp;=0,\\ \mathbf{A}_1\mathbf{z}&amp;=\mathbf{A}_0\mathbf{z}. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;\(\mathbf{A}_1\) 需要满足秩-1 更新:&lt;/p&gt;&#10;\[\mathbf{A}_1=\mathbf{A}_0+\frac{\mathbf{y}_1-\mathbf{A}_0\mathbf{s}_1}{\lVert\mathbf{s}_1\rVert^2}\mathbf{s}_1^{\mathsf{T}}\]&lt;p&gt;验证正交条件:&lt;/p&gt;&#10;\[\mathbf{A}_1\mathbf{z} =\mathbf{A}_0\mathbf{z} +\frac{\mathbf{y}_1-\mathbf{A}_0\mathbf{s}_1}{\lVert\mathbf{s}_1\rVert^2}(\mathbf{s}_1^{\mathsf{T}}\mathbf{z}) =\mathbf{A}_0\mathbf{z}\]&lt;p&gt;于是 \(\mathbf{A}_{i}\) 的迭代公式:&lt;/p&gt;&#10;\[\mathbf{A}_i=\mathbf{A}_{i-1}+\frac{\mathbf{y}_i-\mathbf{A}_{i-1}\mathbf{s}_i}{\lVert\mathbf{s}_i\rVert^2}\mathbf{s}_i^{\mathsf{T}}\]&lt;p&gt;\(\mathbf{x}_{i}\) 的迭代公式:&lt;/p&gt;&#10;\[\mathbf{x}^{(i+1)}=\mathbf{x}^{(i)}-\mathbf{A}_i^{-1}\mathbf{F}(\mathbf{x}^{(i)})\]&lt;p&gt;\(\mathbf{x}_{i}\) 的迭代中需要求解 \(\mathbf{A}_{i}\) 的逆矩阵, 根据 Sherman-Morrison 公式:&lt;/p&gt;&#10;\[\begin{aligned} (\mathbf{A}+\mathbf{u}\mathbf{v}^{\mathsf{T}})^{-1} &amp;=\mathbf{A}^{-1}-\frac{\mathbf{A}^{-1}\mathbf{u}\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}}{1+\mathbf{v}^{\mathsf{T}}\mathbf{A}^{-1}\mathbf{u}},\\ \mathbf{A}_i^{-1} &amp;=\left(\mathbf{A}_{i-1}+\frac{\mathbf{y}_i-\mathbf{A}_{i-1}\mathbf{s}_i}{\lVert\mathbf{s}_i\rVert^2}\mathbf{s}_i^{\mathsf{T}}\right)^{-1}\\ &amp;=\mathbf{A}_{i-1}^{-1} +\frac{(\mathbf{s}_i-\mathbf{A}_{i-1}^{-1}\mathbf{y}_i)\mathbf{s}_i^{\mathsf{T}}\mathbf{A}_{i-1}^{-1}}{\mathbf{s}_i^{\mathsf{T}}\mathbf{A}_{i-1}^{-1}\mathbf{y}_i}. \end{aligned}\]&lt;p&gt;上述公式用于更新近似逆矩阵, 可节省重复求逆的计算量, 本身不改变算法的收敛阶. 它要求 \(\mathbf{A}_{i-1}\) 可逆且 \(\mathbf{s}_i^{\mathsf{T}}\mathbf{A}_{i-1}^{-1}\mathbf{y}_i\ne0\); 秩-1 更新还要求 \(\mathbf{s}_i\ne0\). 若分母过小应重建近似矩阵或跳过更新. 也可直接求解 \(\mathbf{A}_i\Delta\mathbf{x}=-\mathbf{F}\) 而不显式求逆.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 求解非线性方程组&lt;/p&gt;&#10;\[\mathbf{g}(x,y,z)= \begin{pmatrix} x^2+y^2+z^2-3\\ x^2+y^2-z-1\\ x+y+z-3 \end{pmatrix}\]&lt;p&gt;初始值:&lt;/p&gt;&#10;\[\mathbf{x}^{(0)}=(x^{(0)},y^{(0)},z^{(0)})^{\mathsf{T}}=(1,0,1)^{\mathsf{T}}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 取 \(\mathbf{A}_0=\mathbf{J}(\mathbf{x}^{(0)})\). Jacobian matrix 为:&lt;/p&gt;&#10;\[\mathbf{J}(x,y,z)= \begin{pmatrix} 2x&amp;2y&amp;2z\\ 2x&amp;2y&amp;-1\\ 1&amp;1&amp;1 \end{pmatrix}\]\[\begin{aligned} \mathbf{J}(\mathbf{x}^{(0)})(\mathbf{x}^{(1)}-\mathbf{x}^{(0)})&amp;=-\mathbf{g}(\mathbf{x}^{(0)}),\\ \mathbf{x}^{(1)}&amp;=\left(\frac{3}{2},\frac{1}{2},1\right)^{\mathsf{T}}. \end{aligned}\]\[\mathbf{A}_1=\mathbf{A}_0+\frac{\mathbf{y}_1-\mathbf{A}_0\mathbf{s}_1}{\lVert\mathbf{s}_1\rVert^2}\mathbf{s}_1^{\mathsf{T}} = \begin{pmatrix} \frac{5}{2}&amp;\frac{1}{2}&amp;2\\ \frac{5}{2}&amp;\frac{1}{2}&amp;-1\\ 1&amp;1&amp;1 \end{pmatrix}\]&lt;p&gt;再迭代:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}_1(\mathbf{x}^{(2)}-\mathbf{x}^{(1)})&amp;=-\mathbf{g}(\mathbf{x}^{(1)}),\\ \mathbf{x}^{(2)}&amp;=\left(\frac{5}{4},\frac{3}{4},1\right)^{\mathsf{T}}. \end{aligned}\]&lt;p&gt;这两步是迭代示范, 尚未达到最终解. 从前两式相减得 \(z^2+z-2=0\), 故 \(z=1\) 或 \(-2\); 后者使 \(x^2+y^2=-1\), 无实解. 当 \(z=1\) 时, \(x+y=2\)、\(x^2+y^2=2\), 从而&#10;&lt;/p&gt;&#10;\[\boxed{(x,y,z)=(1,1,1)}\]&lt;p&gt;&#10;是唯一实根. 该根处 Jacobian 的前两列相同, 矩阵奇异; 因而不能直接将要求根处 Jacobian 非奇异的局部超线性收敛结论套用于本例.&lt;/p&gt;&#10;&lt;h2 id="6-optimization-problems-"&gt;6 Optimization Problems *&lt;a class="heading-anchor" href="#6-optimization-problems-" aria-label="Link to 6 Optimization Problems *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;优化问题是在指定约束或定义域内寻找目标函数的极小或极大值. 本章的梯度法与 Nelder-Mead 法主要用于局部无约束极小化, 一般不保证全局最优; 线性规划在可行且有界时可求全局最优.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="61-fletcher-reeves-algorithm-"&gt;6.1 Fletcher-Reeves Algorithm *&lt;a class="heading-anchor" href="#61-fletcher-reeves-algorithm-" aria-label="Link to 6.1 Fletcher-Reeves Algorithm *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;FR(Fletcher-Reeves) 算法是非线性共轭梯度法, 常用于大规模无约束优化. 它只使用函数值及一阶梯度, 不需要显式计算或存储 Hessian matrix. 对正定二次目标配合精确线搜索时, 它与线性共轭梯度法一致, 搜索方向关于固定 Hessian 共轭; 对一般非线性函数不能直接断言各方向严格共轭.&lt;/p&gt;&#10;&lt;p&gt;对于一般可微函数 \(f(x)\), 求解其极小值.&lt;/p&gt;&#10;&lt;p&gt;初始化:&lt;/p&gt;&#10;\[p_0=-\nabla f(x_0)\]&lt;p&gt;现在要沿着 \(p_k\) 方向寻找合适的步长 \(t_k\), 使得 \(f(x)\) 下降最多. 迭代公式:&lt;/p&gt;&#10;\[x_{k+1}=x_k+t_kp_k\]&lt;p&gt;定义&lt;/p&gt;&#10;\[\beta_{k+1}^{\mathrm{FR}}=\frac{\lVert\nabla f(x_{k+1})\rVert^2}{\lVert\nabla f(x_k)\rVert^2}\]&lt;p&gt;新方向:&lt;/p&gt;&#10;\[p_{k+1}=-\nabla f(x_{k+1})+\beta_{k+1}^{\mathrm{FR}}p_k\]&lt;p&gt;\(t_k&gt;0\) 一般采用一维线搜索来确定, 不必求整条射线上的精确最小值. 为保持 FR 的下降方向, 常用强 Wolfe 条件:&#10;&lt;/p&gt;&#10;\[\begin{aligned} f(x_k+t_kp_k)&amp;\leq f(x_k)+c_1t_k\nabla f(x_k)^{\mathsf{T}}p_k,\\ |\nabla f(x_k+t_kp_k)^{\mathsf{T}}p_k|&amp;\leq c_2|\nabla f(x_k)^{\mathsf{T}}p_k|,\qquad 0\lt c_1\lt c_2\lt\tfrac12. \end{aligned}\]&lt;p&gt;若方向不再满足 \(\nabla f(x_k)^{\mathsf{T}}p_k\lt0\), 可重启为 \(p_k=-\nabla f(x_k)\). 梯度已经为零时应停止, 避免计算 \(\beta\) 的零分母.&lt;/p&gt;&#10;&lt;p&gt;继续迭代条件:&lt;/p&gt;&#10;\[\lVert\nabla f(x_k)\rVert&gt;\varepsilon\]&lt;h3 id="62-linear-conjugate-gradient-method-"&gt;6.2 Linear Conjugate Gradient Method *&lt;a class="heading-anchor" href="#62-linear-conjugate-gradient-method-" aria-label="Link to 6.2 Linear Conjugate Gradient Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;线性共轭梯度法适用于实对称正定矩阵 \(\mathbf{A}\) 所定义的二次函数:&lt;/p&gt;&#10;\[f(\mathbf{x})=\frac{1}{2}\mathbf{x}^{\mathsf{T}}\mathbf{A}\mathbf{x}-\mathbf{b}^{\mathsf{T}}\mathbf{x}+c\]&lt;p&gt;于是&lt;/p&gt;&#10;\[\nabla f=0\implies\mathbf{A}\mathbf{x}-\mathbf{b}=0\]&lt;p&gt;问题转化为求解线性方程组.&lt;/p&gt;&#10;&lt;p&gt;初始化:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{r}_0&amp;=\mathbf{A}\mathbf{x}_0-\mathbf{b},\\ \mathbf{p}_0&amp;=-\mathbf{r}_0. \end{aligned}\]&lt;p&gt;沿当前方向作精确线搜索. 由&#10;&lt;/p&gt;&#10;\[\frac{\mathrm{d}}{\mathrm{d}t}f(\mathbf{x}_k+t\mathbf{p}_k) =\langle\mathbf{r}_k,\mathbf{p}_k\rangle+t\langle\mathbf{p}_k,\mathbf{A}\mathbf{p}_k\rangle=0,\]&lt;p&gt;&#10;得到步长&#10;&lt;/p&gt;&#10;\[t_k=-\frac{\langle\mathbf{r}_k,\mathbf{p}_k\rangle}{\langle\mathbf{p}_k,\mathbf{A}\mathbf{p}_k\rangle}.\]&lt;p&gt;&#10;初始方向为 \(-\mathbf{r}_0\), 所以非零梯度下 \(t_0&gt;0\).&lt;/p&gt;&#10;&lt;p&gt;按 \(\mathbf{x}_{k+1}=\mathbf{x}_k+t_k\mathbf{p}_k\)、\(\mathbf{r}_{k+1}=\mathbf{r}_k+t_k\mathbf{A}\mathbf{p}_k\) 的顺序更新位置和梯度残差, 检查残差容限后再计算方向系数, 并令 \(\mathbf{p}_{k+1}=-\mathbf{r}_{k+1}+\beta_{k+1}\mathbf{p}_k\). 这里 \(\mathbf{r}_k=\mathbf{A}\mathbf{x}_k-\mathbf{b}\); 若改用方程残差 \(\mathbf{b}-\mathbf{A}\mathbf{x}_k\), 残差及其更新式整体反号, 但实际搜索方向不变.&lt;/p&gt;&#10;&lt;p&gt;由共轭条件 \(\langle\mathbf{p}_{k+1},\mathbf{A}\mathbf{p}_k\rangle=0\) 得到相应方向系数. 在精确算术下, 残差互相正交、方向关于 \(\mathbf{A}\) 共轭, 并有&#10;&lt;/p&gt;&#10;\[t_k=\frac{\lVert\mathbf{r}_k\rVert^2}{\langle\mathbf{p}_k,\mathbf{A}\mathbf{p}_k\rangle},\qquad \beta_{k+1}=\frac{\lVert\mathbf{r}_{k+1}\rVert^2}{\lVert\mathbf{r}_k\rVert^2}.\]&lt;p&gt;&#10;这些步长与方向系数正是 FR 法在正定二次目标和精确线搜索下的形式. \(n\) 维问题至多 \(n\) 步到达解; 浮点计算可能因失去正交性而需要更多步. 达到残差容限后停止, 不应继续计算零方向或零分母.&lt;/p&gt;&#10;&lt;h3 id="63-quasi-newton-optimization-"&gt;6.3 Quasi-Newton Optimization *&lt;a class="heading-anchor" href="#63-quasi-newton-optimization-" aria-label="Link to 6.3 Quasi-Newton Optimization *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;一维情形可对驻点方程 \(f'(x)=0\) 使用 Newton method. 这不自动判定极小值: 若极限驻点处 \(f''(x)&gt;0\) 则可判定它是严格局部极小值; 迭代还要求分母非零并需局部收敛条件. 公式为:&lt;/p&gt;&#10;\[x_{k+1}=x_k-\frac{f'(x_k)}{f''(x_k)}\]&lt;p&gt;多维情形可以使用 Newton 或 quasi-Newton method. 若 \(f\in C^2\), 在 \(\mathbf{x}_k\) 附近的 Taylor 展开为&#10;&lt;/p&gt;&#10;\[f(\mathbf{x}_k+\Delta\mathbf{x}_k) =f(\mathbf{x}_k)+\nabla f(\mathbf{x}_k)^{\mathsf{T}}\Delta\mathbf{x}_k +\frac{1}{2}\Delta\mathbf{x}_k^{\mathsf{T}}\mathbf{H}(\mathbf{x}_k)\Delta\mathbf{x}_k +o(\lVert\Delta\mathbf{x}_k\rVert^2).\]&lt;p&gt;其中 \(\mathbf{H}\) 为 Hessian matrix:&lt;/p&gt;&#10;\[\mathbf{H}(\mathbf{x})= \begin{pmatrix} \frac{\partial^2 f}{\partial x_1^2}&amp;\frac{\partial^2 f}{\partial x_1\partial x_2}&amp;\cdots&amp;\frac{\partial^2 f}{\partial x_1\partial x_n}\\ \frac{\partial^2 f}{\partial x_2\partial x_1}&amp;\frac{\partial^2 f}{\partial x_2^2}&amp;\cdots&amp;\frac{\partial^2 f}{\partial x_2\partial x_n}\\ \vdots&amp;\vdots&amp;\cdots&amp;\vdots\\ \frac{\partial^2 f}{\partial x_n\partial x_1}&amp;\frac{\partial^2 f}{\partial x_n\partial x_2}&amp;\cdots&amp;\frac{\partial^2 f}{\partial x_n^2} \end{pmatrix}\]&lt;p&gt;一般我们选用近似矩阵 \(\mathbf{B}\) 来代替 Hessian matrix.&lt;/p&gt;&#10;\[\nabla f(\mathbf{x}_k+\Delta\mathbf{x}_k)\approx\nabla f(\mathbf{x}_k)+\mathbf{B}_k\Delta\mathbf{x}_k\]&lt;p&gt;求解线性方程组 \(\mathbf{B}_k\mathbf{p}_k=-\nabla f(\mathbf{x}_k)\), 并通过线搜索选取 \(t_k&gt;0\), 令 \(\Delta\mathbf{x}_k=t_k\mathbf{p}_k\). 迭代为&#10;&lt;/p&gt;&#10;\[\mathbf{x}_{k+1}=\mathbf{x}_k+\Delta\mathbf{x}_k.\]&lt;p&gt;&#10;若 \(\mathbf{B}_k\) 对称正定且梯度非零, 则 \(\nabla f(\mathbf{x}_k)^{\mathsf{T}}\mathbf{p}_k\lt0\), 因而 \(\mathbf{p}_k\) 是下降方向. 非凸问题中的不定近似矩阵需要修正或其他步长保护.&lt;/p&gt;&#10;&lt;p&gt;但现在近似矩阵 \(\mathbf{B}\) 还是未知的, 需要其他条件去计算得到 \(\mathbf{B}\) 的迭代关系, 不同的算法给出了不同的计算过程.&lt;/p&gt;&#10;&lt;h3 id="64-broyden-algorithm-"&gt;6.4 Broyden Algorithm *&lt;a class="heading-anchor" href="#64-broyden-algorithm-" aria-label="Link to 6.4 Broyden Algorithm *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;这里将求非线性方程组的 Broyden 秩-1 更新用于 \(\nabla f=0\), 近似 Jacobian 为 \(\mathbf{B}_k\). 更新满足割线条件 \(\mathbf{B}_{k+1}\mathbf{s}_k=\mathbf{y}_k\), 但通常不保持 \(\mathbf{B}_k\) 的对称性或正定性, 因而不能仅凭它保证极小化的下降方向. 它也不等同于优化中保持对称性的 Broyden 更新族. 更新及逆更新为&#10;&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{B}_{k+1}&amp;=\mathbf{B}_k+\frac{(\mathbf{y}_k-\mathbf{B}_k\mathbf{s}_k)\mathbf{s}_k^{\mathsf{T}}}{\mathbf{s}_k^{\mathsf{T}}\mathbf{s}_k},\\ \mathbf{B}_{k+1}^{-1}&amp;=\mathbf{B}_k^{-1}+\frac{(\mathbf{s}_k-\mathbf{B}_k^{-1}\mathbf{y}_k)\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k^{-1}}{\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k^{-1}\mathbf{y}_k} \end{aligned}\]&lt;p&gt;其中&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{s}_k&amp;=\Delta(\mathbf{x}_k)=\mathbf{x}_{k+1}-\mathbf{x}_k,\\ \mathbf{y}_k&amp;=\nabla f(\mathbf{x}_{k+1})-\nabla f(\mathbf{x}_k). \end{aligned}\]&lt;p&gt;上述秩-1 更新要求 \(\mathbf{s}_k\ne0\). 逆更新还要求 \(\mathbf{B}_k\) 可逆且 \(\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k^{-1}\mathbf{y}_k\ne0\); 分母过小时不应直接使用.&lt;/p&gt;&#10;&lt;h3 id="65-bfgsbroyden-fletcher-goldfarb-shanno-algorithm-"&gt;6.5 BFGS(Broyden-Fletcher-Goldfarb-Shanno) Algorithm *&lt;a class="heading-anchor" href="#65-bfgsbroyden-fletcher-goldfarb-shanno-algorithm-" aria-label="Link to 6.5 BFGS(Broyden-Fletcher-Goldfarb-Shanno) Algorithm *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;BFGS 算法对 Hessian 近似作秩-2 更新. 以下假设 \(\mathbf{B}_k\) 对称正定且 \(\mathbf{y}_k^{\mathsf{T}}\mathbf{s}_k&gt;0\), 其中 \(\mathbf{s}_k=\mathbf{x}_{k+1}-\mathbf{x}_k\)、\(\mathbf{y}_k=\nabla f(\mathbf{x}_{k+1})-\nabla f(\mathbf{x}_k)\). 这两个条件保证下式分母非零, 并使更新后的矩阵仍对称正定:&lt;/p&gt;&#10;\[\mathbf{B}_{k+1}=\mathbf{B}_k+\alpha\mathbf{u}\mathbf{u}^{\mathsf{T}}+\beta\mathbf{v}\mathbf{v}^{\mathsf{T}}\]&lt;p&gt;选择&lt;/p&gt;&#10;\[\mathbf{u}=\mathbf{y}_k,\qquad\mathbf{v}=\mathbf{B}_k\mathbf{s}_k\]&lt;p&gt;于是割线条件可以写作&lt;/p&gt;&#10;\[\mathbf{B}_{k+1}\mathbf{s}_k=\mathbf{y}_k\]&lt;p&gt;代入 \(\mathbf{B}_{k+1}\) 得&lt;/p&gt;&#10;\[\mathbf{B}_k\mathbf{s}_k +\alpha\mathbf{y}_k(\mathbf{y}_k^{\mathsf{T}}\mathbf{s}_k) +\beta(\mathbf{B}_k\mathbf{s}_k)(\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k\mathbf{s}_k) =\mathbf{y}_k\]&lt;p&gt;可以看到&lt;/p&gt;&#10;\[\begin{aligned} \alpha&amp;=\frac{1}{\mathbf{y}_k^{\mathsf{T}}\mathbf{s}_k},\\ \beta&amp;=-\frac{1}{\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k\mathbf{s}_k}. \end{aligned}\]&lt;p&gt;得到 \(\mathbf{B}_{k}\) 的迭代公式:&lt;/p&gt;&#10;\[\mathbf{B}_{k+1} =\mathbf{B}_k +\frac{\mathbf{y}_k\mathbf{y}_k^{\mathsf{T}}}{\mathbf{y}_k^{\mathsf{T}}\mathbf{s}_k} -\frac{\mathbf{B}_k\mathbf{s}_k\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k^{\mathsf{T}}}{\mathbf{s}_k^{\mathsf{T}}\mathbf{B}_k\mathbf{s}_k}\]&lt;p&gt;逆矩阵:&lt;/p&gt;&#10;\[\mathbf{B}_{k+1}^{-1} =\mathbf{B}_k^{-1} +\frac{(\mathbf{s}_k^{\mathsf{T}}\mathbf{y}_k+\mathbf{y}_k^{\mathsf{T}}\mathbf{B}_k^{-1}\mathbf{y}_k)\mathbf{s}_k\mathbf{s}_k^{\mathsf{T}}}{(\mathbf{s}_k^{\mathsf{T}}\mathbf{y}_k)^2} -\frac{\mathbf{B}_k^{-1}\mathbf{y}_k\mathbf{s}_k^{\mathsf{T}}+\mathbf{s}_k\mathbf{y}_k^{\mathsf{T}}\mathbf{B}_k^{-1}}{\mathbf{s}_k^{\mathsf{T}}\mathbf{y}_k}\]&lt;p&gt;下降方向配合 Wolfe 线搜索可保证 \(\mathbf{y}_k^{\mathsf{T}}\mathbf{s}_k&gt;0\): 由 \(\mathbf{s}_k=t_k\mathbf{p}_k\) 和曲率条件得&#10;&lt;/p&gt;&#10;\[\mathbf{y}_k^{\mathsf{T}}\mathbf{s}_k =t_k[\nabla f(\mathbf{x}_{k+1})-\nabla f(\mathbf{x}_k)]^{\mathsf{T}}\mathbf{p}_k \geq t_k(c_2-1)\nabla f(\mathbf{x}_k)^{\mathsf{T}}\mathbf{p}_k&gt;0,\qquad0\lt c_2\lt1.\]&lt;p&gt;&#10;若数值计算未满足曲率条件, 应跳过或阻尼该次更新, 不能直接使用零分母或负曲率更新.&lt;/p&gt;&#10;&lt;h3 id="66-linear-programming-and-the-simplex-method-"&gt;6.6 Linear Programming and the Simplex Method *&lt;a class="heading-anchor" href="#66-linear-programming-and-the-simplex-method-" aria-label="Link to 6.6 Linear Programming and the Simplex Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;线性规划问题是在一组线性约束下优化线性目标函数. 标准形式可写为&lt;/p&gt;&#10;\[\max z=\mathbf{c}^{\mathsf{T}}\mathbf{x}, \qquad \mathbf{A}\mathbf{x}\leq \mathbf{b}, \qquad \mathbf{x}\geq 0.\]&lt;p&gt;可行域是凸多面体. 对上式含非负约束的形式, 若可行且目标有有限最优值, 至少有一个最优解位于顶点. 单纯形法从基本可行解出发作换基, 通常移到目标值更好的相邻顶点; 退化换基也可能保持同一顶点及目标值, 需要防循环规则.&lt;/p&gt;&#10;&lt;p&gt;下面的单纯形表采用目标行 \(z-\mathbf{c}^{\mathsf{T}}\mathbf{x}=0\) 的符号约定. 若 \(\mathbf{b}\geq0\), 松弛变量构成初始基本可行解; 否则应先用第一阶段法等方法寻找基本可行解, 无可行解时终止. 在已有基本可行解的前提下, 步骤为:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;把不等式约束加松弛变量, 化为等式约束.&lt;/li&gt;&#10;&lt;li&gt;建立初始单纯形表.&lt;/li&gt;&#10;&lt;li&gt;进入变量: 目标行中最负的系数所在列.&lt;/li&gt;&#10;&lt;li&gt;离开变量: 对进入列正系数作最小非负比值 \(b_i/a_{ij}\). 若该列没有正系数且其目标系数为负, 则目标沿该方向无界. 退化时可采用 Bland 等防循环选取规则.&lt;/li&gt;&#10;&lt;li&gt;主元行归一化, 并消去进入列其他元素.&lt;/li&gt;&#10;&lt;li&gt;若目标行所有系数非负, 当前解最优; 否则继续迭代.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 求&lt;/p&gt;&#10;\[\max f=4x_1+6x_2\]&lt;p&gt;在约束&lt;/p&gt;&#10;\[-x_1+x_2\leq 11, \qquad x_1+x_2\leq 27, \qquad 2x_1+5x_2\leq 90, \qquad x_1,x_2\geq0\]&lt;p&gt;下的最大值.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 加松弛变量:&lt;/p&gt;&#10;\[-x_1+x_2+s_1=11, \qquad x_1+x_2+s_2=27, \qquad 2x_1+5x_2+s_3=90.\]&lt;p&gt;初始单纯形表为&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_1\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_2\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(s_1\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(s_2\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(s_3\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(b\)&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(-1\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;11&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;27&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;2&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;90&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(-4\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(-6\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;进入列为 \(x_2\), 因为目标行中 \(-6\) 最负. 比值为&lt;/p&gt;&#10;\[\frac{11}{1}=11, \qquad \frac{27}{1}=27, \qquad \frac{90}{5}=18.\]&lt;p&gt;最小非负比值在第一行, 主元为 1. 对主元列作行变换后继续迭代. 最终单纯形表可化为&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_1\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(x_2\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(s_1\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(s_2\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(s_3\)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;\(b\)&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(-2/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(1/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;12&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(7/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(-2/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;14&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(5/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(-1/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;15&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(8/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;\(2/3\)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;132&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;因此最优解为&lt;/p&gt;&#10;\[(x_1,x_2)=(15,12), \qquad f_{\max}=132.\]&lt;h3 id="67-nelder-mead-downhill-simplex-method-"&gt;6.7 Nelder-Mead Downhill Simplex Method *&lt;a class="heading-anchor" href="#67-nelder-mead-downhill-simplex-method-" aria-label="Link to 6.7 Nelder-Mead Downhill Simplex Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;下山单纯形法的核心思路十分直观, 可以理解为在 \(N\) 维空间中构造了一个可以伸缩变形的探针来寻找最低点. 算法计算单纯形每个顶点的函数值, 并通过反射, 扩张, 收缩和缩小四种操作, 让单纯形在解空间中不断移动变形, 逐渐向函数值最小的区域移动.&lt;/p&gt;&#10;&lt;p&gt;设目标函数 \(f:\mathbb R^n\to\mathbb R\), 取 \(n+1\) 个仿射无关顶点 \(x_1,\cdots,x_{n+1}\) 构成初始单纯形. 本节 \(x_i\in\mathbb R^n\) 表示整个顶点向量, 而非函数的第 \(i\) 个自变量.&lt;/p&gt;&#10;&lt;p&gt;首先对顶点函数值排序:&lt;/p&gt;&#10;\[f(x_1)\leq f(x_2)\leq\cdots\leq f(x_{n+1})\]&lt;p&gt;\(f(x_{n+1})\) 是最大的, 因此是最差点. 计算除最差点以外的其余 \(n\) 个点的中心:&lt;/p&gt;&#10;\[x_0=\frac{1}{n}\sum_{i=1}^{n}x_i\]&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;反射&lt;/p&gt;&#10;\[x_r=x_0+\alpha(x_0-x_{n+1})\]&lt;p&gt;若 \(f(x_1) \leq f(x_r) \lt f(x_n)\), 用 \(x_{n+1} \rightarrow x_r\), 重复过程;&lt;/p&gt;&#10;&lt;p&gt;若 \(f(x_r) \lt f(x_1)\), 进行扩张操作; 若 \(f(x_r) \geq f(x_n)\), 进行收缩操作.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;扩张&lt;/p&gt;&#10;\[x_e=x_0+\gamma(x_r-x_0)\]&lt;p&gt;若 \(f(x_{e})\lt f(x_{r})\), 则用 \(x_{e}\) 替换 \(x_{n+1}\), 说明扩张成功; 否则扩张失败, 保留反射点, 用 \(x_{r}\) 替换 \(x_{n+1}\), 重复过程.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;收缩&lt;/p&gt;&#10;&lt;p&gt;有两种情况:&lt;/p&gt;&#10;&lt;p&gt;(a) 如果 \(f(x_{r})\lt f(x_{n+1})\), 说明反射点比最差点更好, 进行外部收缩:&lt;/p&gt;&#10;\[x_c=x_0+\rho(x_r-x_0)\]&lt;p&gt;若 \(f(x_{c}) \leq f(x_{r})\), 则用 \(x_{c}\) 替换 \(x_{n+1}\), 重复过程; 否则收缩失败, 进行缩小操作.&lt;/p&gt;&#10;&lt;p&gt;(b) 如果 \(f(x_{r}) \geq f(x_{n+1})\), 说明反射点比最差点更差, 进行内部收缩:&lt;/p&gt;&#10;\[x_c=x_0+\rho(x_{n+1}-x_0)\]&lt;p&gt;若 \(f(x_{c})\lt f(x_{n+1})\), 则用 \(x_{c}\) 替换 \(x_{n+1}\), 重复过程; 否则收缩失败, 进行缩小操作.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;缩小&lt;/p&gt;&#10;&lt;p&gt;如果收缩失败, 说明当前单纯形的形状不理想, 需要进行缩小操作:&lt;/p&gt;&#10;\[x_i=x_1+\sigma(x_i-x_1),\qquad i=2,3,\cdots,n+1\]&lt;p&gt;然后重复上述过程.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;参数的选择有一个经典值:&lt;/p&gt;&#10;\[\alpha=1,\qquad\gamma=2,\qquad\rho=0.5,\qquad\sigma=0.5\]&lt;p&gt;这些默认值在很多实际问题中表现良好, 但在特定问题中可能需要调整. 实现时同时检查单纯形直径和顶点函数值差, 并设置最大迭代或函数评估次数. 即使单纯形缩到一点, 也不能一般地据此证明已到达驻点或全局极小值; Nelder-Mead 有收敛到非极小点的反例.&lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;h2 id="references"&gt;References&lt;a class="heading-anchor" href="#references" aria-label="Link to References" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;SciPy, &lt;a class="link" href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.Akima1DInterpolator.html" target="_blank" rel="noopener"&#10; &gt;Akima1DInterpolator&lt;/a&gt;, C1 光滑性说明及 Notes 中的节点导数权重公式.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;NIST, &lt;a class="link" href="https://dlmf.nist.gov/3.4" target="_blank" rel="noopener"&#10; &gt;DLMF §3.4 Differentiation&lt;/a&gt;, 插值微分与三点公式.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;NIST, &lt;a class="link" href="https://dlmf.nist.gov/3.5" target="_blank" rel="noopener"&#10; &gt;DLMF §3.5 Quadrature&lt;/a&gt;, Simpson、Romberg 与 Gaussian 求积.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:4"&gt;&#10;&lt;p&gt;Netlib, &lt;a class="link" href="https://www.netlib.org/go/zeroin.f" target="_blank" rel="noopener"&#10; &gt;zeroin.f&lt;/a&gt;, Brent 算法的实现, 包含割线退化、逆二次插值及步长保护.&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:5"&gt;&#10;&lt;p&gt;J. C. Lagarias, J. A. Reeds, M. H. Wright and P. E. Wright, &lt;a class="link" href="https://www.math.kent.edu/~reichel/courses/optimization/reading.material.2/nelder.mead.pdf" target="_blank" rel="noopener"&#10; &gt;Convergence Properties of the Nelder-Mead Simplex Method in Low Dimensions&lt;/a&gt;, SIAM Journal on Optimization 9(1), 112–147 (1998), 引言及算法描述.&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Computational Physics - 3</title><link>https://square-yang.github.io/notes/computational-physics-3/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0800</pubDate><guid>https://square-yang.github.io/notes/computational-physics-3/</guid><description>&lt;!-- Source: Square-Yang/Note-Physics, main, 8c405b9c0d1f59ac996ffac8d2b5568173d697ae, Computational Physics/Computational Physics - 3.md; SHA256 4fe290f48e1e124b58a3fbdff9dcdd5db82830ba5e39db9002eaf2f783014831. Prepared with scripts/prepare-note.mjs. --&gt;&#10;&lt;h2 id="7-eigenvalue-problems"&gt;7 Eigenvalue Problems&lt;a class="heading-anchor" href="#7-eigenvalue-problems" aria-label="Link to 7 Eigenvalue Problems" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;在解决实际物理问题的过程中, 经常需要求解矩阵的本征值和本征向量, 例如在量子力学中, 哈密顿算符的本征值对应系统的能量, 而本征向量则对应系统的状态. 本征值问题可以写作&lt;/p&gt;&#10;\[\mathbf{A} \mathbf{x} = \lambda \mathbf{x}\]\[\begin{aligned} a_{11}x_{1}+a_{12}x_{2}+\cdots+a_{1n}x_{n} &amp;= \lambda x_{1},\\ a_{21}x_{1}+a_{22}x_{2}+\cdots+a_{2n}x_{n} &amp;= \lambda x_{2},\\ &amp;\vdots\\ a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n &amp;= \lambda x_n, \end{aligned}\]\[\Longrightarrow (\mathbf{A} - \lambda \mathbf{I}) \mathbf{x} = 0\]&lt;p&gt;即要求行列式:&lt;/p&gt;&#10;\[\det(\mathbf{A} - \lambda \mathbf{I}) = 0\]&lt;p&gt;求出方程的根, 得到本征值&lt;/p&gt;&#10;\[\lambda_1, \lambda_2, \cdots, \lambda_n\]&lt;p&gt;每个本征值对应一个或多个线性无关的本征向量.&lt;/p&gt;&#10;&lt;p&gt;本征值满足关系:&lt;/p&gt;&#10;\[\begin{aligned} \lambda_1 + \lambda_2 + \cdots + \lambda_n &amp;= \operatorname{tr}(\mathbf{A}),\\ \lambda_1 \lambda_2 \cdots \lambda_n &amp;= \det(\mathbf{A}). \end{aligned}\]&lt;p&gt;实对称矩阵正交相似于对角矩阵, 即存在一个正交矩阵 \(\mathbf{S}\) 使得&lt;/p&gt;&#10;\[\mathbf{S}^{\mathsf{T}} \mathbf{A} \mathbf{S} = \operatorname{diag}(\lambda_1, \lambda_2, \cdots, \lambda_n)\]&lt;p&gt;其中 \(\mathbf{S}\) 为正交矩阵, 它就是由 \(\mathbf{A}\) 的本征向量组成的矩阵. 对于实对称矩阵, 所有的本征值都是实数, 并且对应的本征向量可以选择为相互正交的. \(\lambda_{1}, \lambda_{2}, \cdots, \lambda_{n}\) 即为 \(\mathbf{A}\) 的本征值.&lt;/p&gt;&#10;&lt;h3 id="71-jacobi-method"&gt;7.1 Jacobi Method&lt;a class="heading-anchor" href="#71-jacobi-method" aria-label="Link to 7.1 Jacobi Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Jacobi 方法是求解实对称矩阵本征值问题的经典算法. 它通过一系列的旋转操作来逐步将矩阵对角化. 其中每一次旋转可以看作是一个二维平面内的旋转, 目的是消除矩阵中的一对非对角元素.&lt;/p&gt;&#10;&lt;p&gt;旋转矩阵:&lt;/p&gt;&#10;\[\mathbf{S}= \begin{pmatrix} 1 &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0\\ 0 &amp; 1 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \cdots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; \cos\theta &amp; \cdots &amp; \sin\theta &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \cdots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; -\sin\theta &amp; \cdots &amp; \cos\theta &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 1 \end{pmatrix}\]&lt;p&gt;可以看到&lt;/p&gt;&#10;\[\begin{aligned} s_{kk} &amp;= s_{ll} = \cos\theta,\\ s_{kl} &amp;= -s_{lk} = \sin\theta,\\ s_{ii} &amp;= 1,\quad i \neq k,l,\\ s_{ij} &amp;= 0,\quad i \neq j,\quad (i,j)\notin\{(k,l),(l,k)\}. \end{aligned}\]&lt;p&gt;其中 \(\theta\) 为旋转角度, 旋转作用于第 \(k\) 行和第 \(l\) 行. 通过选择合适的 \(\theta\), 可以将矩阵 \(\mathbf{A}\) 中的第 \(k\) 行第 \(l\) 列的元素消除为零. 下面来计算这个合适的角度 \(\theta\).&lt;/p&gt;&#10;&lt;p&gt;考虑矩阵&lt;/p&gt;&#10;\[\mathbf{B} = \mathbf{S}^{\mathsf{T}} \mathbf{A} \mathbf{S}\]&lt;p&gt;矩阵 \(\mathbf{B}\) 的第 \(i\) 行第 \(j\) 列元素为&lt;/p&gt;&#10;\[\begin{aligned} b_{ii} &amp;= a_{ii},\quad i \neq k,l,\\ b_{ik} &amp;= a_{ik}\cos\theta - a_{il}\sin\theta,\quad i \neq k,l,\\ b_{il} &amp;= a_{il}\cos\theta + a_{ik}\sin\theta,\quad i \neq k,l,\\ b_{kk} &amp;= a_{kk}\cos^2\theta + a_{ll}\sin^2\theta - 2a_{kl}\sin\theta\cos\theta,\\ b_{ll} &amp;= a_{ll}\cos^2\theta + a_{kk}\sin^2\theta + 2a_{kl}\sin\theta\cos\theta,\\ b_{kl} &amp;= (a_{kk} - a_{ll})\sin\theta\cos\theta + a_{kl}(\cos^2\theta - \sin^2\theta). \end{aligned}\]&lt;p&gt;要消除第 \(k\) 行第 \(l\) 列的元素, 即 \(b_{kl}=0\), 可以得到&lt;/p&gt;&#10;\[\tan 2\theta = \frac{2a_{kl}}{a_{ll} - a_{kk}}\]&lt;p&gt;当 \(a_{kk}=a_{ll}\) 且 \(a_{kl}\neq0\) 时, 可取 \(\theta=\pi/4\); 若 \(a_{kl}=0\), 则无需旋转. 通过不断选择当前矩阵中绝对值最大的非对角元素进行旋转, 可以逐步将矩阵对角化, 最终得到其本征值.&lt;/p&gt;&#10;&lt;h3 id="72-householder-transformation"&gt;7.2 Householder Transformation&lt;a class="heading-anchor" href="#72-householder-transformation" aria-label="Link to 7.2 Householder Transformation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;对于实对称矩阵 \(\mathbf{A}\), 存在相似变换:&lt;/p&gt;&#10;\[\mathbf{S}_1^{\mathsf{T}} \mathbf{A} \mathbf{S}_1 = \begin{pmatrix} a_{11} &amp; e_1 &amp; 0 &amp; \cdots &amp; 0\\ e_1 &amp; a'_{22} &amp; a'_{23} &amp; \cdots &amp; a'_{n2}\\ 0 &amp; a'_{32} &amp; a'_{33} &amp; \cdots &amp; a'_{n3}\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; a'_{n2} &amp; a'_{n3} &amp; \cdots &amp; a'_{nn} \end{pmatrix}\]&lt;p&gt;即将矩阵 \(\mathbf{A}\) 的第一列(除前两个元素外)消除为零. 以此类推, 最后可以得到一个三对角矩阵:&lt;/p&gt;&#10;\[\mathbf{S}^{\mathsf{T}} \mathbf{A} \mathbf{S} = \begin{pmatrix} a_{11} &amp; e_1 &amp; 0 &amp; \cdots &amp; 0\\ e_1 &amp; a'_{22} &amp; e_2 &amp; \cdots &amp; 0\\ 0 &amp; e_2 &amp; a''_{33} &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; a^{(n-1)}_{nn} \end{pmatrix}\]&lt;p&gt;下面按步骤构造 Householder 矩阵 \(\mathbf{S}\) 来实现上述相似变换.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;定义 Householder 反射矩阵&lt;/p&gt;&#10;\[\mathbf{P} = \mathbf{I} - 2\mathbf{w}\mathbf{w}^{\mathsf{T}}\]&lt;p&gt;其中 \(\mathbf{w}\) 是单位向量 \(\mathbf{w}^{\mathsf{T}}\mathbf{w} = 1\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;构造分块矩阵&lt;/p&gt;&#10;\[\mathbf{S}_1 = \begin{pmatrix} 1 &amp; \mathbf{0}^{\mathsf{T}}\\ \mathbf{0} &amp; \mathbf{P} \end{pmatrix}\]&lt;p&gt;对原矩阵 \(\mathbf{A}\) 作相似变换:&lt;/p&gt;&#10;\[\mathbf{S}_1^{\mathsf{T}}\mathbf{A}\mathbf{S}_1 = \begin{pmatrix} a_{11} &amp; \mathbf{v}^{\mathsf{T}}\mathbf{P}\\ \mathbf{P}\mathbf{v} &amp; \mathbf{A}' \end{pmatrix}\]&lt;p&gt;其中&lt;/p&gt;&#10;\[\mathbf{v} = \left(a_{21}, a_{31}, \cdots, a_{n1}\right)^{\mathsf{T}}.\]&lt;p&gt;若 \(\mathbf{v}=\mathbf{0}\), 该列无需消元, 直接取 \(\mathbf{S}_1=\mathbf{I}\), 跳过本次反射的构造. 以下推导假设 \(\mathbf{v}\neq\mathbf{0}\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;选取 \(\mathbf{w}\), 使 \(\mathbf{v}\) 的后 \(n-2\) 个元素被消去:&lt;/p&gt;&#10;\[\mathbf{P}\mathbf{v} = (\alpha, 0, 0, \cdots, 0)^{\mathsf{T}} = \alpha\mathbf{e},\]&lt;p&gt;其中 \(\mathbf{e}=(1,0,0,\cdots,0)^{\mathsf{T}}\), \(\alpha\) 为某个实数.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;利用 Householder 反射保持向量范数的性质求 \(\alpha\):&lt;/p&gt;&#10;\[(\mathbf{P}\mathbf{v})^{\mathsf{T}}\mathbf{P}\mathbf{v} = \alpha^2 = \mathbf{v}^{\mathsf{T}}\mathbf{v} = \lVert\mathbf{v}\rVert^2 \implies \alpha^2 = \sum_{i=2}^n a_{i1}^2.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;由反射公式反推 \(\mathbf{w}\):&lt;/p&gt;&#10;\[\mathbf{P}\mathbf{v} = \mathbf{v} - 2\mathbf{w}(\mathbf{w}^{\mathsf{T}}\mathbf{v}) = \alpha\mathbf{e} \implies \mathbf{v} - \alpha\mathbf{e} = 2\mathbf{w}(\mathbf{w}^{\mathsf{T}}\mathbf{v}).\]&lt;p&gt;因此&lt;/p&gt;&#10;\[\mathbf{w} = \frac{\mathbf{v} - \alpha\mathbf{e}}{2\mathbf{w}^{\mathsf{T}}\mathbf{v}}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;令 \(\beta=\mathbf{w}^{\mathsf{T}}\mathbf{v}\), 求出归一化因子:&lt;/p&gt;&#10;\[\beta = \mathbf{w}^{\mathsf{T}}\mathbf{v} = \frac{(\mathbf{v} - \alpha\mathbf{e})^{\mathsf{T}}\mathbf{v}}{2\beta} \implies 2\beta^2 = (\mathbf{v} - \alpha\mathbf{e})^{\mathsf{T}}\mathbf{v}.\]&lt;p&gt;又因为&lt;/p&gt;&#10;\[\mathbf{e}^{\mathsf{T}}\mathbf{v} = a_{21}, \qquad \mathbf{v}^{\mathsf{T}}\mathbf{v} = \alpha^2 \implies 2\beta^2 = \alpha^2 - \alpha a_{21} \implies \beta = \pm \sqrt{\frac{\alpha^2 - \alpha a_{21}}{2}}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;为避免相减消去有效数字, 当 \(a_{21}\geq0\) 时取 \(\alpha=-\|\mathbf{v}\|_2\), 否则取 \(\alpha=\|\mathbf{v}\|_2\). 这样也明确了 \(a_{21}=0\) 时的选择. 由此得到&lt;/p&gt;&#10;\[\mathbf{P} = \mathbf{I} - 2\mathbf{w}\mathbf{w}^{\mathsf{T}} \implies \mathbf{P} = \mathbf{I} - 2\frac{(\mathbf{v} - \alpha\mathbf{e})(\mathbf{v} - \alpha\mathbf{e})^{\mathsf{T}}}{(\mathbf{v} - \alpha\mathbf{e})^{\mathsf{T}}(\mathbf{v} - \alpha\mathbf{e})}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第一次 Householder 相似变换为&lt;/p&gt;&#10;\[\mathbf{A}^{(2)} = \mathbf{S}_1^{\mathsf{T}}\mathbf{A}^{(1)}\mathbf{S}_1.\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;下面按步骤写出第 \(k\) 次 Householder 迭代, 其中 \(k=1,\cdots,n-2\).&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在当前矩阵 \(\mathbf{A}^{(k)}\) 中, 计算待消去列的范数:&lt;/p&gt;&#10;\[\alpha^2 = \sum_{i=k+1}^n \left(a_{ik}^{(k)}\right)^2.\]&lt;p&gt;若该范数为零, 直接取 \(\mathbf{S}_k=\mathbf{I}\), 令 \(\mathbf{A}^{(k+1)}=\mathbf{A}^{(k)}\), 然后处理下一列; 不计算本步的归一化因子或反射向量. 否则, 当 \(a_{k+1,k}^{(k)}\geq0\) 时取 \(\alpha\) 为负的列范数, 否则取正值.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;计算归一化因子&lt;/p&gt;&#10;\[\beta = \pm \sqrt{\frac{\alpha^2 - \alpha a_{k+1,k}^{(k)}}{2}}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;构造向量 \(\mathbf{w}^{(k)}\). 为不改变前面已经消好的列, 令其前 \(k\) 个元素为零, 后续元素与第一次构造相同:&lt;/p&gt;&#10;\[\begin{aligned} w_1^{(k)} &amp;= w_2^{(k)} = \cdots = w_k^{(k)} = 0,\\ w_{k+1}^{(k)} &amp;= \frac{a_{k+1,k}^{(k)} - \alpha}{2\beta},\\ w_i^{(k)} &amp;= \frac{a_{ik}^{(k)}}{2\beta},\quad i = k+2, k+3, \cdots, n. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;定义第 \(k\) 次 Householder 反射矩阵&lt;/p&gt;&#10;\[\mathbf{P}^{(k)} = \mathbf{I} - 2\mathbf{w}^{(k)}\left(\mathbf{w}^{(k)}\right)^{\mathsf{T}}\]&lt;p&gt;由于 \(\mathbf{w}^{(k)}\) 已是前 \(k\) 个分量为零的 \(n\) 维向量, \(\mathbf{P}^{(k)}\) 已在前 \(k\) 个坐标上保持不变. 因此直接取相似变换矩阵&lt;/p&gt;&#10;\[\mathbf{S}_k = \mathbf{P}^{(k)}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;施加相似变换并累积所有 Householder 变换:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}^{(k+1)} &amp;= \mathbf{S}_k^{\mathsf{T}}\mathbf{A}^{(k)}\mathbf{S}_k\\ &amp;= \mathbf{S}_k^{\mathsf{T}}\mathbf{S}_{k-1}^{\mathsf{T}}\cdots\mathbf{S}_1^{\mathsf{T}}\mathbf{A}\mathbf{S}_1\cdots\mathbf{S}_{k-1}\mathbf{S}_k. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;实对称矩阵最终可以化为三对角矩阵;&lt;/p&gt;&#10;&lt;p&gt;非对称矩阵可以化为上 Hessenberg 矩阵, 即第一条次对角线以下的元素全为零.&lt;/p&gt;&#10;&lt;h3 id="73-qr-decomposition"&gt;7.3 QR Decomposition&lt;a class="heading-anchor" href="#73-qr-decomposition" aria-label="Link to 7.3 QR Decomposition" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;QR 迭代利用正交相似变换求解本征值问题. 对于一个实对称矩阵 \(\mathbf{A}\), 可以进行 QR 分解:&lt;/p&gt;&#10;\[\mathbf{A} = \mathbf{Q} \mathbf{R}\]&lt;p&gt;其中 \(\mathbf{Q}\) 是一个正交矩阵, \(\mathbf{R}\) 是一个上三角矩阵. 通过交换 \(\mathbf{Q}\) 和 \(\mathbf{R}\) 的位置, 可以得到一个新的矩阵. 定义&lt;/p&gt;&#10;\[\mathbf{A}^{(k+1)} = \mathbf{R}^{(k)}\mathbf{Q}^{(k)}\]&lt;p&gt;于是&lt;/p&gt;&#10;\[\mathbf{A}^{(k+1)} = \left(\mathbf{Q}^{(k)}\right)^{\mathsf{T}}\mathbf{A}^{(k)}\mathbf{Q}^{(k)}\]&lt;p&gt;&lt;strong&gt;Proposition&lt;/strong&gt; QR 迭代保持本征值不变.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Proof&lt;/strong&gt; 因为 \(\mathbf{Q}^{(k)}\) 为正交矩阵, 所以 \(\left(\mathbf{Q}^{(k)}\right)^{\mathsf{T}}=\left(\mathbf{Q}^{(k)}\right)^{-1}\). 由&lt;/p&gt;&#10;\[\mathbf{A}^{(k+1)} = \left(\mathbf{Q}^{(k)}\right)^{-1} \mathbf{A}^{(k)} \mathbf{Q}^{(k)}\]&lt;p&gt;可知, \(\mathbf{A}^{(k+1)}\) 与 \(\mathbf{A}^{(k)}\) 相似, 因此本征值不变.&lt;/p&gt;&#10;&lt;p&gt;无位移 QR 的收敛需要谱分离和初始子空间的适当条件, 不能仅由相似性保证. 对实对称矩阵, 在收敛时极限为对角矩阵; 若有正负等模本征值, 迭代可能停留在非对角块, 例如 \(\begin{pmatrix}0&amp;1\\1&amp;0\end{pmatrix}\). 一般实非对称矩阵有复共轭本征值时, 实 QR 的目标是含 \(2\times2\) 对角块的实 Schur 形式.&lt;/p&gt;&#10;&lt;p&gt;对于实对称矩阵, 通常先将其化为三对角矩阵, 然后再进行 QR 迭代, 这样可以提高效率. 这一步通常采用 Householder 相似变换; Jacobi 旋转本身则提供逐步对角化的另一种算法.&lt;/p&gt;&#10;&lt;p&gt;常见旋转/反射方法的作用如下:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Jacobi 旋转: 针对实对称矩阵的特定非对角元素, 用相似变换逐步对角化.&lt;/li&gt;&#10;&lt;li&gt;Givens 旋转: 更一般的二维旋转, 可用于任何矩阵的 QR 分解, 用来消除指定元素.&lt;/li&gt;&#10;&lt;li&gt;Householder 变换: 通过反射一次消去一列中的多个元素, 也可用于 QR 分解.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;旋转矩阵的形式与 Jacobi 旋转是一样的:&lt;/p&gt;&#10;\[\mathbf{S}= \begin{pmatrix} 1 &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0\\ 0 &amp; 1 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \cdots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; \cos\theta &amp; \cdots &amp; \sin\theta &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \cdots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; -\sin\theta &amp; \cdots &amp; \cos\theta &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \cdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 0 &amp; \cdots &amp; 1 \end{pmatrix}\]&lt;p&gt;最终使得&lt;/p&gt;&#10;\[(\mathbf{S}\mathbf{A})_{ij} = 0\]&lt;p&gt;于是问题又变为如何求解合适的旋转角度 \(\theta\), 这是相对简单的. 我们的旋转目标是:&lt;/p&gt;&#10;\[\begin{aligned} \begin{pmatrix} \cos\theta &amp; \sin\theta\\ -\sin\theta &amp; \cos\theta \end{pmatrix} \begin{pmatrix} a_{jj}\\ a_{ij} \end{pmatrix} &amp;= \begin{pmatrix} r\\ 0 \end{pmatrix},\\ r &amp;= \sqrt{a_{ij}^2 + a_{jj}^2}. \end{aligned}\]&lt;p&gt;可以得到&lt;/p&gt;&#10;\[\begin{aligned} \tan\theta &amp;= \frac{a_{ij}}{a_{jj}},\\ \sin\theta &amp;= \frac{a_{ij}}{\sqrt{a_{ij}^2+a_{jj}^2}},\\ \cos\theta &amp;= \frac{a_{jj}}{\sqrt{a_{ij}^2+a_{jj}^2}}. \end{aligned}\]&lt;p&gt;若 \(r=0\), 两个待处理分量均为零, 直接取单位旋转; 否则用上述 \(\sin\theta\) 和 \(\cos\theta\) 构造旋转, 不必先计算可能分母为零的 \(\tan\theta\).&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 考虑矩阵&lt;/p&gt;&#10;\[\begin{pmatrix} 3 &amp; 1 &amp; 0\\ 1 &amp; 3 &amp; 1\\ 0 &amp; 1 &amp; 3 \end{pmatrix}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 构造 Givens 旋转矩阵 \(\mathbf{S}_{1}\), 使得 \((\mathbf{S}_{1}\mathbf{A})_{21}=0\).&lt;/p&gt;&#10;\[\begin{aligned} \tan\theta &amp;= \frac{a_{21}}{a_{11}} = \frac{1}{3},\\ \mathbf{S}_1 &amp;= \begin{pmatrix} \frac{3}{\sqrt{10}} &amp; \frac{1}{\sqrt{10}} &amp; 0\\ -\frac{1}{\sqrt{10}} &amp; \frac{3}{\sqrt{10}} &amp; 0\\ 0 &amp; 0 &amp; 1 \end{pmatrix} \end{aligned}\]\[\begin{aligned} \mathbf{A}_2 &amp;= \mathbf{S}_1\mathbf{A}_1\\ &amp;= \begin{pmatrix} \frac{3}{\sqrt{10}} &amp; \frac{1}{\sqrt{10}} &amp; 0\\ -\frac{1}{\sqrt{10}} &amp; \frac{3}{\sqrt{10}} &amp; 0\\ 0 &amp; 0 &amp; 1 \end{pmatrix} \begin{pmatrix} 3 &amp; 1 &amp; 0\\ 1 &amp; 3 &amp; 1\\ 0 &amp; 1 &amp; 3 \end{pmatrix}\\ &amp;= \begin{pmatrix} \sqrt{10} &amp; \frac{3\sqrt{10}}{5} &amp; \frac{\sqrt{10}}{10}\\ 0 &amp; \frac{4\sqrt{10}}{5} &amp; \frac{3\sqrt{10}}{10}\\ 0 &amp; 1 &amp; 3 \end{pmatrix} \end{aligned}\]&lt;p&gt;再把 \((3,2)\) 元素变为 0, 过程同理&lt;/p&gt;&#10;\[\mathbf{A}_3 = \mathbf{S}_2\mathbf{A}_2 = \begin{pmatrix} \sqrt{10} &amp; \frac{3\sqrt{10}}{5} &amp; \frac{\sqrt{10}}{10}\\ 0 &amp; 2.7203 &amp; 1.9851\\ 0 &amp; 0 &amp; 2.4412 \end{pmatrix}\]&lt;p&gt;于是可以进行 QR 分解:&lt;/p&gt;&#10;\[\mathbf{Q} = \mathbf{S}_1^{\mathsf{T}}\mathbf{S}_2^{\mathsf{T}} = \begin{pmatrix} 0.94868 &amp; -0.29409 &amp; 0.11625\\ 0.31623 &amp; 0.88226 &amp; -0.34874\\ 0 &amp; 0.36761 &amp; 0.92998 \end{pmatrix}\]&lt;p&gt;迭代:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}^{(2)} &amp;= \mathbf{R}\mathbf{Q} = \begin{pmatrix} 3.6 &amp; 0.86023 &amp; 0\\ 0.86023 &amp; 3.12973 &amp; 0.89740\\ 0 &amp; 0.89740 &amp; 2.27027 \end{pmatrix},\\ &amp;\cdots\\ \mathbf{A}^{(13)} &amp;= \begin{pmatrix} 4.4139 &amp; 0.01941 &amp; 0\\ 0.01941 &amp; 3.0003 &amp; 0.00095\\ 0 &amp; 0.00095 &amp; 1.5858 \end{pmatrix}. \end{aligned}\]&lt;p&gt;对本例的实对称矩阵, 迭代逐渐趋于对角矩阵. 有限次迭代的对角元只是本征值的近似; 精确本征值为 \(3+\sqrt2,3,3-\sqrt2\), 与 \(\mathbf A^{(13)}\) 的对角元一致到相应精度.&lt;/p&gt;&#10;&lt;p&gt;若用 Householder 变换作 QR 分解, 唯一的区别只是左乘矩阵:&lt;/p&gt;&#10;\[\mathbf{P}_n\mathbf{P}_{n-1}\cdots\mathbf{P}_1\mathbf{A}\]&lt;p&gt;因为 QR 分解需要把 \(\mathbf{A}\) 化为上三角矩阵而不是上 Hessenberg 矩阵, 所以初始向量 \(\mathbf{v}\) 应包括第一项:&lt;/p&gt;&#10;\[\mathbf{v} = (a_{11}, a_{21}, \cdots, a_{n1})^{\mathsf{T}}\]&lt;h3 id="74-shifted-qr-decomposition-"&gt;7.4 Shifted QR Decomposition *&lt;a class="heading-anchor" href="#74-shifted-qr-decomposition-" aria-label="Link to 7.4 Shifted QR Decomposition *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;标准的 QR 迭代:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}^{(k)} &amp;= \mathbf{Q}^{(k)}\mathbf{R}^{(k)},\\ \mathbf{A}^{(k+1)} &amp;= \mathbf{R}^{(k)}\mathbf{Q}^{(k)}. \end{aligned}\]&lt;p&gt;上 Hessenberg 结构可降低每次 QR 迭代的成本, 但本身不保证次对角元全部趋于零. 在可对角化、模有严格间隔且初始子空间适当的情形, 按 \(|\lambda_1|&gt;\cdots&gt;|\lambda_n|\) 排序后, 相邻子空间的渐近收缩因子为&lt;/p&gt;&#10;\[b_j \sim \left|\frac{\lambda_{j+1}}{\lambda_j}\right|,\qquad j=1,\cdots,n-1.\]&lt;p&gt;如果两个特征值很接近, 收敛就会很慢, 需要加速. 带位移的 QR 迭代通过引入一个位移参数 \(\sigma\) 来加速收敛: 首先还是先做预处理, 得到上 Hessenberg 矩阵&lt;/p&gt;&#10;\[\mathbf{A}_0 = \mathbf{S}_{n-2}^{\mathsf{T}}\cdots\mathbf{S}_1^{\mathsf{T}} \mathbf{A} \mathbf{S}_1\cdots\mathbf{S}_{n-2}\]&lt;p&gt;再进行迭代:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}_k-\sigma_k\mathbf{I} &amp;= \mathbf{Q}_k\mathbf{R}_k,\\ \mathbf{A}_{k+1} &amp;= \mathbf{R}_k\mathbf{Q}_k+\sigma_k\mathbf{I}. \end{aligned}\]&lt;p&gt;对固定的位移 \(\sigma\), 按移后模 \(|\lambda_1-\sigma|&gt;\cdots&gt;|\lambda_n-\sigma|\) 重新排序, 在上述收敛条件下相邻子空间的渐近收缩因子变为&lt;/p&gt;&#10;\[b_j(\sigma) \sim \left|\frac{\lambda_{j+1}-\sigma}{\lambda_j-\sigma}\right|.\]&lt;p&gt;若要从右下角隔离目标本征值, 取位移接近该目标, 使它对应较小的移后模; 因而缩小的是比值的分子. 逐步更新位移时不能直接把固定比值当作统一的全局收敛速率. 对实对称三对角矩阵, 常用 Wilkinson 位移: 选取当前矩阵 \(\mathbf{A}^{(k)}\) 右下角的 \(2\times2\) 子矩阵:&lt;/p&gt;&#10;\[\mathbf{M} = \begin{pmatrix} a_{n-1,n-1}^{(k)} &amp; a_{n-1,n}^{(k)}\\ a_{n,n-1}^{(k)} &amp; a_{nn}^{(k)} \end{pmatrix}\]&lt;p&gt;计算该子矩阵的两个特征值 \(\mu_{1}, \mu_{2}\), 选择更靠近 \(a_{nn}^{(k)}\) 的特征值作为位移参数 \(\sigma_{k}\), 即&lt;/p&gt;&#10;\[\sigma_k = \begin{cases} \mu_1, &amp; |\mu_1-a_{nn}^{(k)}|\lt |\mu_2-a_{nn}^{(k)}|,\\ \mu_2, &amp; \text{otherwise}. \end{cases}\]&lt;p&gt;对于一般实非对称上 Hessenberg 矩阵, 该子矩阵可能有复共轭本征值; 若要保持实运算, 通常采用包含两个共轭位移的 Francis 双位移 QR, 并以实 Schur 形式为目标.&lt;/p&gt;&#10;&lt;h3 id="75-generalized-eigenvalue-problems-"&gt;7.5 Generalized Eigenvalue Problems *&lt;a class="heading-anchor" href="#75-generalized-eigenvalue-problems-" aria-label="Link to 7.5 Generalized Eigenvalue Problems *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;对于两个矩阵 \(\mathbf{A}\) 和 \(\mathbf{B}\), 广义特征值问题可以写作&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{x} = \lambda\mathbf{B}\mathbf{x}\]&lt;p&gt;如果 \(\mathbf{B}\) 是可逆的, 可以通过变换将其转化为标准特征值问题:&lt;/p&gt;&#10;\[\mathbf{B}^{-1}\mathbf{A}\mathbf{x} = \lambda\mathbf{x}\]&lt;p&gt;但是 \(\mathbf{B}^{-1}\mathbf{A}\) 不一定是对称矩阵, 不能直接套用对称矩阵本征算法. 数值实现通常通过求解线性方程组而避免显式形成逆矩阵. 当 \(\mathbf{A}, \mathbf{B}\) 对称且 \(\mathbf{B}\) 正定时, 可以利用 Cholesky 分解:&lt;/p&gt;&#10;\[\mathbf{B} = \mathbf{L}\mathbf{L}^{\mathsf{T}}\]&lt;p&gt;将原问题转化为&lt;/p&gt;&#10;\[\mathbf{L}^{-1}\mathbf{A}\mathbf{L}^{-\mathsf{T}}\mathbf{y} = \lambda\mathbf{y}\]&lt;p&gt;其中&lt;/p&gt;&#10;\[\mathbf{y} = \mathbf{L}^{\mathsf{T}}\mathbf{x}\]&lt;h3 id="76-svd-decomposition-"&gt;7.6 SVD Decomposition *&lt;a class="heading-anchor" href="#76-svd-decomposition-" aria-label="Link to 7.6 SVD Decomposition *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;本节取 \(\mathbf{A}\in\mathbb{R}^{m\times n}\); 非方阵没有通常意义的本征值问题, 但任意实矩阵都可以作 SVD 分解:&lt;/p&gt;&#10;\[\mathbf{A} = \mathbf{U}\mathbf{D}\mathbf{V}^{\mathsf{T}}\]&lt;p&gt;其中 \(\mathbf{U}\) 是一个 \(m \times m\) 的正交矩阵, \(\mathbf{V}\) 是一个 \(n \times n\) 的正交矩阵, \(\mathbf{D}\) 是一个 \(m \times n\) 的对角矩阵, 对角线上的元素为 \(\mathbf{A}\) 的奇异值.&lt;/p&gt;&#10;&lt;p&gt;如果 \(\mathbf{A}\) 是对称正定矩阵, 那么 \(\mathbf{U}=\mathbf{V}\), SVD 分解就退化为特征值分解, 此时 \(\mathbf{D}\) 的对角线元素即为 \(\mathbf{A}\) 的本征值.&lt;/p&gt;&#10;&lt;p&gt;SVD 分解可以按以下步骤构造:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;构造 \(n \times n\) 对称半正定矩阵 \(\mathbf{A}^{\mathsf{T}}\mathbf{A}\):&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}^{\mathsf{T}} &amp;= \mathbf{V}\mathbf{D}^{\mathsf{T}}\mathbf{U}^{\mathsf{T}},\\ \mathbf{A}^{\mathsf{T}}\mathbf{A} &amp;= \mathbf{V}\mathbf{D}^{\mathsf{T}}\mathbf{D}\mathbf{V}^{\mathsf{T}}. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对 \(\mathbf{A}^{\mathsf{T}}\mathbf{A}\) 对角化. 其特征向量就是 SVD 中的右奇异向量 \(\mathbf{V}\), 特征值满足&lt;/p&gt;&#10;\[\mathbf{D}^{\mathsf{T}}\mathbf{D} = \operatorname{diag}(\lambda_1,\lambda_2,\cdots,\lambda_n).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;取奇异值&lt;/p&gt;&#10;\[\omega_i=\sqrt{\lambda_i}.\]&lt;p&gt;设 \(r=\min(m,n)\), \(k=\operatorname{rank}(\mathbf{A})\), 则前 \(k\) 个奇异值为正, 后面的奇异值为零.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对每个非零奇异值, 构造左奇异向量&lt;/p&gt;&#10;\[\mathbf{u}_i = \frac{1}{\omega_i} \mathbf{A}\mathbf{v}_i, \qquad i=1,2,\cdots,k.\]&lt;p&gt;这些列向量正交归一:&lt;/p&gt;&#10;\[\mathbf{u}_i^{\mathsf{T}}\mathbf{u}_j = \frac{1}{\omega_i\omega_j} \mathbf{v}_i^{\mathsf{T}}\mathbf{A}^{\mathsf{T}}\mathbf{A}\mathbf{v}_j = \delta_{ij}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;补全 \(\mathbf{U}\) 为正交矩阵. 选取 \(m-k\) 个向量, 使它们与已有 \(k\) 列共同组成线性无关组, 再作 Gram-Schmidt 正交化.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;构造 \(m\times n\) 对角矩阵 \(\mathbf{D}\):&lt;/p&gt;&#10;\[D_{ij} = \begin{cases} \omega_i, &amp; i=j\leq r,\\ 0, &amp; \text{otherwise}. \end{cases}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 上述 \(\mathbf{A}^{\mathsf{T}}\mathbf{A}\) 构造用于理解 SVD; 对满列秩矩阵有 \(\kappa_2(\mathbf{A}^{\mathsf{T}}\mathbf{A})=\kappa_2(\mathbf{A})^2\), 会放大小奇异值的数值误差. 实际算法通常直接双对角化 \(\mathbf{A}\), 避免显式形成 Gram 矩阵.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 对矩阵作 SVD 分解&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} 1 &amp; 0 &amp; 1\\ 0 &amp; 1 &amp; 0\\ 0 &amp; 1 &amp; 1\\ 0 &amp; 1 &amp; 0\\ 1 &amp; 1 &amp; 0 \end{pmatrix}.\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 首先计算 \(\mathbf{A}^{\mathsf{T}}\mathbf{A}\):&lt;/p&gt;&#10;\[\mathbf{A}^{\mathsf{T}}\mathbf{A} = \begin{pmatrix} 2 &amp; 1 &amp; 1\\ 1 &amp; 4 &amp; 1\\ 1 &amp; 1 &amp; 2 \end{pmatrix}.\]&lt;p&gt;求出 \(\mathbf{A}^{\mathsf{T}} \mathbf{A}\) 的特征值和特征向量, 得到&lt;/p&gt;&#10;\[\begin{aligned} \lambda_1&amp;=5, \qquad \lambda_2=2, \qquad \lambda_3=1,\\ \mathbf{V} &amp;= \begin{pmatrix} \frac{\sqrt{6}}{6} &amp; \frac{\sqrt{3}}{3} &amp; -\frac{\sqrt{2}}{2}\\ \frac{\sqrt{6}}{3} &amp; -\frac{\sqrt{3}}{3} &amp; 0\\ \frac{\sqrt{6}}{6} &amp; \frac{\sqrt{3}}{3} &amp; \frac{\sqrt{2}}{2} \end{pmatrix}. \end{aligned}\]&lt;p&gt;于是得到奇异值:&lt;/p&gt;&#10;\[\omega_1=\sqrt{5}, \qquad \omega_2=\sqrt{2}, \qquad \omega_3=1.\]&lt;p&gt;计算前三个左奇异向量:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{u}_1 &amp;= \frac{1}{\sqrt{5}}\mathbf{A}\mathbf{v}_1 = \left(\frac{\sqrt{30}}{15},\frac{\sqrt{30}}{15},\frac{\sqrt{30}}{10},\frac{\sqrt{30}}{15},\frac{\sqrt{30}}{10}\right)^{\mathsf{T}},\\ \mathbf{u}_2 &amp;= \frac{1}{\sqrt{2}}\mathbf{A}\mathbf{v}_2 = \left(\frac{\sqrt{6}}{3},-\frac{\sqrt{6}}{6},0,-\frac{\sqrt{6}}{6},0\right)^{\mathsf{T}},\\ \mathbf{u}_3 &amp;= \mathbf{A}\mathbf{v}_3 = \left(0,0,\frac{\sqrt{2}}{2},0,-\frac{\sqrt{2}}{2}\right)^{\mathsf{T}}. \end{aligned}\]&lt;p&gt;取两个补全向量&#10;&lt;/p&gt;&#10;\[\mathbf u_4=\frac1{\sqrt2}(0,1,0,-1,0)^{\mathsf T},\qquad \mathbf u_5=\frac1{\sqrt5}(1,1,-1,1,-1)^{\mathsf T}.\]&lt;p&gt;&#10;它们属于 \(\ker\mathbf A^{\mathsf T}\), 彼此及与前三列正交归一. 因而完整分解为&#10;&lt;/p&gt;&#10;\[\mathbf U=(\mathbf u_1,\mathbf u_2,\mathbf u_3,\mathbf u_4,\mathbf u_5),\quad \mathbf D=\begin{pmatrix}\sqrt5&amp;0&amp;0\\0&amp;\sqrt2&amp;0\\0&amp;0&amp;1\\0&amp;0&amp;0\\0&amp;0&amp;0\end{pmatrix},\quad \mathbf A=\mathbf U\mathbf D\mathbf V^{\mathsf T}.\]&lt;p&gt;&#10;也可以保留前三列得到约化 SVD \(\mathbf A=\mathbf U_r\operatorname{diag}(\sqrt5,\sqrt2,1)\mathbf V^{\mathsf T}\).&lt;/p&gt;&#10;&lt;p&gt;SVD 分解可以用于图像压缩:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;一张 \(N \times N\) 的灰度图像可以看作矩阵 \(\mathbf{A}\), 矩阵元对应像素亮度.&lt;/li&gt;&#10;&lt;li&gt;只保留前 \(k\) 个奇异值及其奇异向量, 其余奇异值置零, 得到秩为 \(k\) 的近似矩阵 \(\mathbf{A}_k\).&lt;/li&gt;&#10;&lt;li&gt;调整 \(k\) 可以在图像质量和存储空间之间权衡.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="77-power-method"&gt;7.7 Power Method&lt;a class="heading-anchor" href="#77-power-method" aria-label="Link to 7.7 Power Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;幂法是一种简单而有效的迭代方法, 用于求解矩阵的主特征值(即绝对值最大的特征值)及其对应的特征向量. 假设一个 \(n \times n\) 矩阵 \(\mathbf{A}\) 有 \(n\) 个线性无关的特征向量 \(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n\), 对应的特征值为 \(\lambda_1, \lambda_2, \cdots, \lambda_n\), 其中 \(|\lambda_1| &gt; |\lambda_2| \geq \cdots \geq |\lambda_n|\).&lt;/p&gt;&#10;&lt;p&gt;取初始向量 \(\mathbf{x}\), 要求其在本征向量基中的系数 \(\beta_1\neq0\). 对一般非对称矩阵, 这不等价于 \(\mathbf{x}\) 不与右本征向量 \(\mathbf{v}_1\) 正交; 只有本征基正交时才可这样判断. 可以将初始向量表示为&lt;/p&gt;&#10;\[\mathbf{x} = \beta_1\mathbf{v}_1 + \beta_2\mathbf{v}_2 + \cdots + \beta_n\mathbf{v}_n = \sum_{i=1}^{n} \beta_i\mathbf{v}_i.\]&lt;p&gt;左乘 \(\mathbf{A}\):&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}\mathbf{x} &amp;= \sum_{i=1}^{n} \beta_i\lambda_i\mathbf{v}_i,\\ \mathbf{A}^{2}\mathbf{x} &amp;= \sum_{i=1}^{n} \beta_i\lambda_i^{2}\mathbf{v}_i,\\ &amp;\cdots\\ \mathbf{A}^{k}\mathbf{x} &amp;= \sum_{i=1}^{n} \beta_i\lambda_i^{k}\mathbf{v}_i. \end{aligned}\]&lt;p&gt;写作&lt;/p&gt;&#10;\[\mathbf{A}^{k}\mathbf{x} = \lambda_1^{k} \sum_{i=1}^{n} \beta_i \left( \frac{\lambda_i}{\lambda_1} \right)^{k} \mathbf{v}_i.\]&lt;p&gt;由于 \(|\lambda_1|&gt;|\lambda_2|\geq\cdots\geq|\lambda_n|\), 当 \(k\) 足够大时, \(\left(\frac{\lambda_i}{\lambda_1}\right)^k\to0\) (\(i=2,3,\cdots,n\)), 因此求和只有第一项有贡献:&lt;/p&gt;&#10;\[\mathbf{A}^{k}\mathbf{x} \sim \lambda_1^{k} \beta_1\mathbf{v}_1, \qquad k\to\infty.\]&lt;p&gt;幂法通常采用无穷范数归一化条件&lt;/p&gt;&#10;\[\left\| \mathbf{x}^{(k)} \right\|_{\infty} = 1\]&lt;p&gt;即每个迭代向量的最大分量绝对值为 1, 以避免数值溢出. 算法步骤如下:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;任取一个初始向量 \(\mathbf{x}^{(0)}\), 满足 \(\|\mathbf{x}^{(0)}\|_{\infty}=1\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;重复计算并归一化:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{y}^{(k)} = \mathbf{A}\mathbf{x}^{(k)}, \qquad \mathbf{x}^{(k+1)} &amp;= \frac{\mathbf{y}^{(k)}}{\|\mathbf{y}^{(k)}\|_{\infty}}. \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;选取 \(\mathbf{x}^{(k)}\) 最大分量对应的指标 \(m_k\), 估计本征值:&lt;/p&gt;&#10;\[\mu^{(k)} = \frac{(\mathbf{A}\mathbf{x}^{(k)})_{m_k}}{x_{m_k}^{(k)}}.\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;如果 \(\mathbf{x}^{(0)}\) 恰好是特征向量, 则 \(\mathbf{A}\mathbf{x}^{(0)}=\lambda\mathbf{x}^{(0)}\), 任意非零分量都满足 \((\mathbf{A}\mathbf{x}^{(0)})_m/x_m^{(0)}=\lambda\).&lt;/p&gt;&#10;&lt;p&gt;由本节前面的本征向量展开, 可以进一步写出分量比估计. 在第 \(k\) 步选取 \(\mathbf{x}^{(k)}\) 最大分量对应的指标 \(m_k\), 有&lt;/p&gt;&#10;\[\mu^{(k)} = \lambda_1 \frac{ \beta_1v_{1,m_k} + \sum_{i=2}^{n} \beta_i(\lambda_i/\lambda_1)^{k+1} v_{i,m_k} }{ \beta_1v_{1,m_k} + \sum_{i=2}^{n} \beta_i(\lambda_i/\lambda_1)^k v_{i,m_k} }.\]&lt;p&gt;可以看到, 当 \(k\to\infty\) 时, \(\mu^{(k)}\to\lambda_1\), \(\mathbf{x}^{(k)}\) 的方向趋于 \(\mathbf{v}_1\), 最终迭代得到最大特征值.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 求矩阵的最大本征值&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} -2 &amp; -3\\ 6 &amp; 7 \end{pmatrix}.\]&lt;p&gt;规定初始向量 \(\mathbf{x}_0=(1,1)^{\mathsf{T}}\). 连续迭代得到&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{x}_1 &amp;= \begin{pmatrix}-5\\13\end{pmatrix}, \qquad \mathbf{x}_2 &amp;= \begin{pmatrix}-29\\61\end{pmatrix}, \qquad \mathbf{x}_3 &amp;= \begin{pmatrix}-125\\253\end{pmatrix},\\ \mathbf{x}_4 &amp;= \begin{pmatrix}-509\\1021\end{pmatrix}, \qquad \mathbf{x}_5 &amp;= \begin{pmatrix}-2045\\4093\end{pmatrix}, \qquad \mathbf{x}_6 &amp;= \begin{pmatrix}-8189\\16381\end{pmatrix}. \end{aligned}\]&lt;p&gt;最大本征值:&lt;/p&gt;&#10;\[\lambda_1^{(1)}=\frac{61}{13}=4.6923,\quad \lambda_1^{(2)}=\frac{253}{61}=4.1475,\quad \lambda_1^{(3)}=\frac{1021}{253}=4.0356\]\[\lambda_1^{(4)}=\frac{4093}{1021}=4.0088,\qquad \lambda_1^{(5)}=\frac{16381}{4093}=4.0022.\]&lt;p&gt;本例的精确特征多项式为 \((\lambda-4)(\lambda-1)\), 故主本征值为 \(4\), 对应方向可取 \((-1,2)^{\mathsf T}\). 上述比值趋于 \(4\), 并非第五个比值已经等于精确值.&lt;/p&gt;&#10;&lt;p&gt;对于对称矩阵, 可以直接用 Rayleigh quotient 来估计特征值:&lt;/p&gt;&#10;\[\mu^{(k)} = \frac{ (\mathbf{x}^{(k)})^{\mathsf{T}} \mathbf{A} \mathbf{x}^{(k)} }{ (\mathbf{x}^{(k)})^{\mathsf{T}} \mathbf{x}^{(k)} }.\]&lt;p&gt;如果用 2-范数归一化条件, 即 \(\|\mathbf{x}^{(k)}\|_2 = 1\), 则可以写作&lt;/p&gt;&#10;\[\mu^{(k)} = (\mathbf{x}^{(k)})^{\mathsf{T}} \mathbf{A} \mathbf{x}^{(k)} = (\mathbf{x}^{(k)})^{\mathsf{T}} \mathbf{y}^{(k)}.\]&lt;p&gt;在对称矩阵中, Rayleigh 商的本征值误差对邻近本征向量的方向误差是二阶的; 但幂法的方向收敛仍受 \(|\lambda_2/\lambda_1|\) 控制, 谱间隔小时可能很慢. 负主本征值或复相位可使归一化向量逐步变号或变相位, 收敛应理解为本征方向的收敛.&lt;/p&gt;&#10;&lt;h3 id="78-inverse-power-method"&gt;7.8 Inverse Power Method&lt;a class="heading-anchor" href="#78-inverse-power-method" aria-label="Link to 7.8 Inverse Power Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;反幂法是幂法的一种变体, 用于计算离某个给定位移 \(q\) 最近的特征值及其特征向量. 反幂法不是直接对 \(\mathbf{A}\) 做幂法, 而是对 \((\mathbf{A}-q\mathbf{I})^{-1}\) 做幂法. 这里要求 \(q\) 不等于任何本征值.&lt;/p&gt;&#10;&lt;p&gt;若 \(\mathbf{A}\) 的特征值为 \(\lambda_1, \lambda_2, \cdots, \lambda_n\), 则 \((\mathbf{A}-q\mathbf{I})^{-1}\) 的特征值为&lt;/p&gt;&#10;\[\frac{1}{\lambda_1-q}, \frac{1}{\lambda_2-q}, \cdots, \frac{1}{\lambda_n-q}\]&lt;p&gt;且特征向量保持不变. 对可对角化矩阵, 若离 \(q\) 最近的本征值唯一, 且初始向量在其本征向量基中的系数非零, 才有对应的主方向收敛保证; 等距的多个本征值可能阻止单方向收敛.&lt;/p&gt;&#10;&lt;p&gt;对 \((\mathbf{A}-q\mathbf{I})^{-1}\) 做幂法, 会找到模最大的特征值, 这等价于找到离 \(q\) 最近的 \(\lambda_i\). 过程和幂法完全一样, 只不过每次迭代都要解线性方程组:&lt;/p&gt;&#10;\[(\mathbf{A}-q\mathbf{I})\mathbf{y}^{(k)} = \mathbf{x}^{(k)}\]&lt;p&gt;以避免显式求解逆矩阵.&lt;/p&gt;&#10;&lt;p&gt;本征值:&lt;/p&gt;&#10;\[\lambda = q + \frac{1}{\mu}\]&lt;h3 id="79-wielandt-deflation"&gt;7.9 Wielandt Deflation&lt;a class="heading-anchor" href="#79-wielandt-deflation" aria-label="Link to 7.9 Wielandt Deflation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 已经用幂法求出矩阵 \(\mathbf{A}\) 的最大特征值 \(\lambda_1\) 和对应特征向量 \(\mathbf{v}_1\) 后, 若继续直接用幂法, 仍会收敛到 \(\lambda_1\). Wielandt deflation 的目标是构造新矩阵, 消除 \(\lambda_1\), 让 \(\lambda_2\) 成为新矩阵中的主特征值.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; 取向量 \(\mathbf{x}\) 满足&lt;/p&gt;&#10;\[\mathbf{x}^{\mathsf{T}}\mathbf{v}_1=1\]&lt;p&gt;并构造&lt;/p&gt;&#10;\[\mathbf{B} = \mathbf{A} - \lambda_1\mathbf{v}_1\mathbf{x}^{\mathsf{T}}\]&lt;p&gt;&lt;strong&gt;Proof&lt;/strong&gt; 消去主本征值. 由 \(\mathbf{x}^{\mathsf{T}}\mathbf{v}_1=1\) 可得&lt;/p&gt;&#10;\[\mathbf{B}\mathbf{v}_1 = \mathbf{A}\mathbf{v}_1 - \lambda_1\mathbf{v}_1(\mathbf{x}^{\mathsf{T}}\mathbf{v}_1) = \lambda_1\mathbf{v}_1-\lambda_1\mathbf{v}_1 = \mathbf{0}\]&lt;p&gt;\(\mathbf{v}_1\) 是 \(\mathbf{B}\) 属于本征值 \(0\) 的本征向量.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Proof&lt;/strong&gt; 保留其他本征值. 对于 \(\lambda_i\neq0\), 构造向量&lt;/p&gt;&#10;\[\mathbf{w}_i = \mathbf{v}_i - \frac{\lambda_1\mathbf{x}^{\mathsf{T}}\mathbf{v}_i}{\lambda_i} \mathbf{v}_1\]&lt;p&gt;其中 \(\mathbf{v}_i\) 是 \(\mathbf{A}\) 的第 \(i\) 个特征值 \(\lambda_i\) 对应的特征向量. 记&lt;/p&gt;&#10;\[\mathbf{x}^{\mathsf{T}}\mathbf{w}_i = \mathbf{x}^{\mathsf{T}}\mathbf{v}_i \left(1-\frac{\lambda_1}{\lambda_i}\right).\]&lt;p&gt;代入 \(\mathbf{B}\mathbf{w}_i\) 可得&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{B}\mathbf{w}_i &amp;= \mathbf{A}\mathbf{w}_i - \lambda_1\mathbf{v}_1\mathbf{x}^{\mathsf{T}}\mathbf{w}_i\\ &amp;= \lambda_i\mathbf{v}_i - \frac{\lambda_1^2\mathbf{x}^{\mathsf{T}}\mathbf{v}_i}{\lambda_i}\mathbf{v}_1 - \lambda_1\mathbf{x}^{\mathsf{T}}\mathbf{v}_i \left(1-\frac{\lambda_1}{\lambda_i}\right)\mathbf{v}_1\\ &amp;= \lambda_i\mathbf{v}_i - \lambda_1\mathbf{x}^{\mathsf{T}}\mathbf{v}_i\mathbf{v}_1 = \lambda_i\mathbf{w}_i. \end{aligned}\]&lt;p&gt;所以 \(\lambda_{i}\) 也是 \(\mathbf{B}\) 的本征值, 对应的本征向量为 \(\mathbf{w}_{i}\).&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 降阶问题. 一种构造 \(\mathbf{x}\) 的方法是选取 \(v_{1i}\neq0\) 的分量, 令&lt;/p&gt;&#10;\[\mathbf{x} = \frac{1}{\lambda_1 v_{1i}} \begin{pmatrix} a_{i1}\\ a_{i2}\\ \vdots\\ a_{in} \end{pmatrix}\]&lt;p&gt;其中 \(a_{ij}\) 是矩阵 \(\mathbf{A}\) 的元素. 此时&lt;/p&gt;&#10;\[\mathbf{x}^{\mathsf{T}}\mathbf{v}_1 = \frac{1}{\lambda_1 v_{1i}} \sum_{j=1}^{n}a_{ij}v_{1j} = \frac{1}{\lambda_1 v_{1i}}(\mathbf{A}\mathbf{v}_1)_i = \frac{1}{\lambda_1 v_{1i}}\lambda_1 v_{1i} = 1\]&lt;p&gt;作用后 \(\mathbf{B}\) 的第 \(i\) 行元素全为 \(0\). 删除第 \(i\) 行和第 \(i\) 列, 对降阶矩阵继续用幂法, 就可以求出 \(\lambda_2\).&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} 4 &amp; -1 &amp; 1\\ -1 &amp; 3 &amp; -2\\ 1 &amp; -2 &amp; 3 \end{pmatrix}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 幂法求出 \(\lambda_1=6\), 对应的特征向量为 \(\mathbf{v}_1=(1,-1,1)^{\mathsf{T}}\). 构造向量 \(\mathbf{x}\):&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{x} &amp;= \frac{1}{6} \begin{pmatrix} 4\\ -1\\ 1 \end{pmatrix},\\ \mathbf{v}_1\mathbf{x}^{\mathsf{T}} &amp;= \begin{pmatrix} \frac{2}{3} &amp; -\frac{1}{6} &amp; \frac{1}{6}\\ -\frac{2}{3} &amp; \frac{1}{6} &amp; -\frac{1}{6}\\ \frac{2}{3} &amp; -\frac{1}{6} &amp; \frac{1}{6} \end{pmatrix},\\ \mathbf{B} &amp;= \mathbf{A} - \lambda_1\mathbf{v}_1\mathbf{x}^{\mathsf{T}} = \begin{pmatrix} 0 &amp; 0 &amp; 0\\ 3 &amp; 2 &amp; -1\\ -3 &amp; -1 &amp; 2 \end{pmatrix}. \end{aligned}\]&lt;p&gt;删除第一行和第一列:&lt;/p&gt;&#10;\[\mathbf{B}' = \begin{pmatrix} 2 &amp; -1\\ -1 &amp; 2 \end{pmatrix}\]&lt;p&gt;再次用幂法求出 \(\lambda_2=3\), 降阶矩阵的特征向量为 \(\mathbf v'_2=(1,-1)^{\mathsf T}\). 插回被删除的零分量, 得 \(\mathbf w=(0,1,-1)^{\mathsf T}\), 它是 \(\mathbf B\) 的特征向量. 原矩阵的向量须再恢复:&#10;&lt;/p&gt;&#10;\[\mathbf v_2=\mathbf w+\frac{\lambda_1}{\lambda_2-\lambda_1}(\mathbf x^{\mathsf T}\mathbf w)\mathbf v_1 =\frac13(2,1,-1)^{\mathsf T}.\]&lt;p&gt;&#10;因此可取 \(\mathbf A\) 的本征向量为 \((2,1,-1)^{\mathsf T}\), 直接检验 \(\mathbf A\mathbf v_2=3\mathbf v_2\). 降阶向量不能直接当作原矩阵的本征向量.&lt;/p&gt;&#10;&lt;h3 id="710-krylov-subspace-methods"&gt;7.10 Krylov Subspace Methods&lt;a class="heading-anchor" href="#710-krylov-subspace-methods" aria-label="Link to 7.10 Krylov Subspace Methods" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Krylov 子空间方法用于高效求解大型稀疏矩阵的特征值或线性方程组, 而不需要直接处理 \(n \times n\) 的完整矩阵.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; Krylov 矩阵. 设 \(\mathbf{A}\) 是 \(n \times n\) 大规模系数矩阵, \(\mathbf{b}\) 是 \(n\) 维列向量, 定义 \(n\) 阶 Krylov 矩阵 \(\mathbf{K}\):&lt;/p&gt;&#10;\[\mathbf{K} = \left( \mathbf{b}\quad \mathbf{A}\mathbf{b}\quad \mathbf{A}^2\mathbf{b}\quad \cdots\quad \mathbf{A}^{n-1}\mathbf{b} \right)\]&lt;p&gt;这些列张成 Krylov 子空间, 不要求它们全部线性无关:&lt;/p&gt;&#10;\[\mathcal{K}_n(\mathbf{A}, \mathbf{b}) = \operatorname{span}\{\mathbf{b}, \mathbf{A}\mathbf{b}, \mathbf{A}^{2}\mathbf{b}, \cdots, \mathbf{A}^{n-1}\mathbf{b}\}.\]&lt;p&gt;这个子空间是 \(\mathbf{A}\)-不变的:&lt;/p&gt;&#10;\[\mathbf{A}\mathcal{K}_n(\mathbf{A}, \mathbf{b}) \subseteq \mathcal{K}_n(\mathbf{A}, \mathbf{b})\]&lt;p&gt;左乘 \(\mathbf{A}\) 得到&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{K} = \left( \mathbf{A}\mathbf{b}\quad \mathbf{A}^2\mathbf{b}\quad \mathbf{A}^3\mathbf{b}\quad \cdots\quad \mathbf{A}^n\mathbf{b} \right)\]&lt;p&gt;&lt;strong&gt;Proposition&lt;/strong&gt; Hessenberg 约化. 以下假设 \(\mathbf{K}\) 的 \(n\) 列线性无关, 从而 \(\mathbf{K}\) 可逆. \(\mathbf{A}\mathbf{K}\) 的前 \(n-1\) 列正好是 \(\mathbf{K}\) 的第 2 列到第 \(n\) 列. 最后一列 \(\mathbf{A}^{n}\mathbf{b}\) 可写成 \(\mathbf{K}\) 各列的线性组合:&lt;/p&gt;&#10;\[\mathbf{A}^n\mathbf{b} = c_1\mathbf{b} + c_2\mathbf{A}\mathbf{b} + c_3\mathbf{A}^2\mathbf{b} + \cdots + c_n\mathbf{A}^{n-1}\mathbf{b} = \mathbf{K}\mathbf{c}\]&lt;p&gt;其中&lt;/p&gt;&#10;\[\mathbf{c}=(c_1,c_2,\cdots,c_n)^{\mathsf{T}}\]&lt;p&gt;因此&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{K}=\mathbf{K}\mathbf{G}\]&lt;p&gt;其中&lt;/p&gt;&#10;\[\mathbf{G} = \begin{pmatrix} 0 &amp; 0 &amp; \cdots &amp; 0 &amp; c_1\\ 1 &amp; 0 &amp; \cdots &amp; 0 &amp; c_2\\ 0 &amp; 1 &amp; \cdots &amp; 0 &amp; c_3\\ \vdots &amp; \vdots &amp; \ddots &amp; \vdots &amp; \vdots\\ 0 &amp; 0 &amp; \cdots &amp; 1 &amp; c_n \end{pmatrix}\]&lt;p&gt;\(\mathbf{G}\) 是一个上 Hessenberg 矩阵. 于是&lt;/p&gt;&#10;\[\mathbf{A}=\mathbf{K}\mathbf{G}\mathbf{K}^{-1}\]&lt;p&gt;因此 \(\mathbf{A}\) 与 \(\mathbf{G}\) 相似, 具有相同的特征值. \(\mathbf{G}\) 是稀疏矩阵, 求解其特征值比直接求解 \(\mathbf{A}\) 更容易.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 数值构造. 直接形成幂向量矩阵 \(\mathbf{K}\) 并求 \(\mathbf{G}\) 往往病态. 下面的 QR 分解说明正交基下的等价关系; 浮点实现应在每步生成新方向时立即正交化, 而不是先形成完整的 \(\mathbf{K}\) 再分解. 这种逐步构造将在 Lanczos 与 Arnoldi 迭代中实现. 理论上写作&lt;/p&gt;&#10;\[\mathbf{K}=\mathbf{Q}\mathbf{R}\]&lt;p&gt;\(\mathbf{Q}\) 为正交矩阵, \(\mathbf{R}\) 为上三角矩阵.&lt;/p&gt;&#10;\[(\mathbf{Q}\mathbf{R})^{-1}\mathbf{A}(\mathbf{Q}\mathbf{R}) = \mathbf{G}\]&lt;p&gt;两边左乘 \(\mathbf{R}\), 再右乘 \(\mathbf{R}^{-1}\), 得&lt;/p&gt;&#10;\[\mathbf{Q}^{\mathsf{T}}\mathbf{A}\mathbf{Q} = \mathbf{R}\mathbf{G}\mathbf{R}^{-1}\]&lt;p&gt;记作 \(\mathbf{T}\):&lt;/p&gt;&#10;\[\mathbf{Q}^{\mathsf{T}}\mathbf{A}\mathbf{Q} = \mathbf{R}\mathbf{G}\mathbf{R}^{-1} = \mathbf{T}\]&lt;p&gt;\(\mathbf{T}\) 是一个上 Hessenberg 矩阵, 且与 \(\mathbf{A}\) 相似, 具有相同的特征值. 对 \(\mathbf{T}\) 进行 QR 迭代, 就可以求出 \(\mathbf{A}\) 的特征值.&lt;/p&gt;&#10;&lt;h3 id="711-lanczos-iteration"&gt;7.11 Lanczos Iteration&lt;a class="heading-anchor" href="#711-lanczos-iteration" aria-label="Link to 7.11 Lanczos Iteration" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Proposition&lt;/strong&gt; 如果 \(\mathbf{A}\) 为对称矩阵, Lanczos 迭代会把 Krylov 子空间中的投影压缩成一个三对角矩阵:&lt;/p&gt;&#10;\[\mathbf{T} = \mathbf{Q}^{\mathsf{T}}\mathbf{A}\mathbf{Q} = \begin{pmatrix} \alpha_1 &amp; \beta_1 &amp; 0 &amp; \cdots &amp; 0\\ \beta_1 &amp; \alpha_2 &amp; \beta_2 &amp; \cdots &amp; 0\\ 0 &amp; \beta_2 &amp; \alpha_3 &amp; \cdots &amp; 0\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; \alpha_n \end{pmatrix}\]&lt;p&gt;这个三对角矩阵 \(\mathbf{T}\) 可以通过 Lanczos 迭代来构造. 将 Lanczos 基写作:&lt;/p&gt;&#10;\[\mathbf{Q} = \left( \mathbf{q}_1\quad \mathbf{q}_2\quad \cdots\quad \mathbf{q}_n \right)\]&lt;p&gt;在完整正交基下, \(\mathbf{A}\mathbf{Q}=\mathbf{Q}\mathbf{T}\) 可以写作:&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{q}_i = \beta_{i-1}\mathbf{q}_{i-1} + \alpha_i\mathbf{q}_i + \beta_i\mathbf{q}_{i+1}\]&lt;p&gt;其中 \(\beta_0=0\), \(\mathbf{q}_0=\mathbf{0}\).&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Proof&lt;/strong&gt; 三项递推及投影关系:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(\mathbf{Q}\) 的列向量两两正交, 满足&lt;/p&gt;&#10;\[\mathbf{q}_i^{\mathsf{T}}\mathbf{q}_j=\delta_{ij}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;三项递推左乘 \(\mathbf{q}_i^{\mathsf{T}}\) 得到对角元; 减去已知的两项后, 以残量范数归一化得到下一基向量. 具体公式和零残量处理统一列在下方迭代步骤中.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;若迭代步数 \(m=n\), 则得到精确分解:&lt;/p&gt;&#10;\[\mathbf{T}=\mathbf{V}\mathbf{E}\mathbf{V}^{\mathsf{T}}, \qquad \mathbf{A}=\mathbf{Q}\mathbf{V}\mathbf{E}\mathbf{V}^{\mathsf{T}}\mathbf{Q}^{\mathsf{T}}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;若只迭代 \(m\lt n\) 步, 令 \(\mathbf{Q}_m=(\mathbf{q}_1,\cdots,\mathbf{q}_m)\). 在精确算术和基向量正交的条件下, 有&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{Q}_m =\mathbf{Q}_m\mathbf{T}_m+\mathbf{r}_m\mathbf{e}_m^{\mathsf{T}}, \qquad \mathbf{T}_m=\mathbf{Q}_m^{\mathsf{T}}\mathbf{A}\mathbf{Q}_m.\]&lt;p&gt;其中 \(\mathbf{e}_m\in\mathbb{R}^m\) 是第 \(m\) 个标准基向量, \(\mathbf{r}_m\) 是最后一步尚未归一化的残量, 满足 \(\mathbf{Q}_m^{\mathsf{T}}\mathbf{r}_m=\mathbf{0}\) 和 \(\|\mathbf{r}_m\|_2=\beta_m\). 若 \(\beta_m&gt;0\), 则 \(\mathbf{r}_m=\beta_m\mathbf{q}_{m+1}\); 若子空间已经闭合, 则 \(\mathbf{r}_m=\mathbf{0}\), 无需构造下一基向量. 完整基下残量也为零.&lt;/p&gt;&#10;&lt;p&gt;\(\mathbf{T}_m\) 是 \(\mathbf{A}\) 在当前 Krylov 子空间上的投影矩阵, 投影关系本身是精确的. 用它的本征对近似原矩阵的本征对时, 取 \(\mathbf{T}_m\mathbf{y}=\theta\mathbf{y}\), \(\|\mathbf{y}\|_2=1\), 则 Ritz 值为 \(\theta\), 对应的 Ritz 向量为&lt;/p&gt;&#10;\[\mathbf{x}=\mathbf{Q}_m\mathbf{y}.\]&lt;p&gt;其本征方程残量为&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{x}-\theta\mathbf{x} =\mathbf{r}_m\mathbf{e}_m^{\mathsf{T}}\mathbf{y}, \qquad \|\mathbf{A}\mathbf{x}-\theta\mathbf{x}\|_2 =\beta_m\left|\mathbf{e}_m^{\mathsf{T}}\mathbf{y}\right|.\]&lt;p&gt;可用该残量是否达到所需容差判断本征对的近似精度; 浮点计算中还应注意基向量的正交性损失.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; Lanczos 迭代步骤:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;初始化. 取一个非零初始向量 \(\mathbf{q}_1\), 归一化到 \(\|\mathbf{q}_1\|_2=1\); 再令 \(\mathbf{q}_0=\mathbf{0}\), \(\beta_0=0\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;计算对角元. 在第 \(i\) 步, 先求&lt;/p&gt;&#10;\[\alpha_i=\mathbf{q}_i^{\mathsf{T}}\mathbf{A}\mathbf{q}_i.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;形成残量. 将当前向量投影到已知基上并减去:&lt;/p&gt;&#10;\[\mathbf{v} = \mathbf{A}\mathbf{q}_i - \alpha_i\mathbf{q}_i - \beta_{i-1}\mathbf{q}_{i-1}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;先计算残量范数:&lt;/p&gt;&#10;\[\beta_i=\|\mathbf{v}\|_2.\]&lt;p&gt;若 \(\beta_i=0\), 说明当前 Krylov 子空间已经闭合, 令实际步数 \(m=i\) 并终止递推, 不再除以 \(\beta_i\). 否则, 仅在需要继续迭代时计算&lt;/p&gt;&#10;\[\mathbf{q}_{i+1}=\frac{\mathbf{v}}{\beta_i}.\]&lt;p&gt;浮点实现应根据矩阵尺度和精度设定近零容差, 并在归一化前判断. 按容差终止表示数值上近似闭合, 应保留最后的残量范数用于精度检查; 必要时进行重正交化.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;组装结果. 迭代 \(m\) 步后得到三对角矩阵 \(\mathbf{T}_m\), 其对角元是 \(\alpha_1,\alpha_2,\cdots,\alpha_m\), 次对角元是 \(\beta_1,\beta_2,\cdots,\beta_{m-1}\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;提取结果. 解&lt;/p&gt;&#10;\[\mathbf{T}_m\mathbf{y}=\theta\mathbf{y}\]&lt;p&gt;得到 Ritz 值 \(\theta\) 和归一化特征向量 \(\mathbf{y}\); 对应的 \(\mathbf{A}\) 的 Ritz 向量, 即近似本征矢, 为&lt;/p&gt;&#10;\[\mathbf{x}=\mathbf{Q}_m\mathbf{y}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;判断结果. 在精确算术下, 完整基给出全部精确本征对; 若在 \(m\lt n\) 时子空间已经闭合, 则得到该不变子空间内的精确本征对, 不代表获得全部谱. 一般截断时按上述 Ritz 残量检查目标本征对的精度. 若 \(\mathbf{q}_1\) 在最大本征方向上有非零投影, 最大 Ritz 值会随子空间扩展收敛到 \(\lambda_{\max}(\mathbf{A})\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;&#10;\[\mathbf{A} = \begin{pmatrix} 3 &amp; 2 &amp; 5\\ 2 &amp; 3 &amp; 5\\ 5 &amp; 5 &amp; 0 \end{pmatrix}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 作两步 Lanczos 迭代:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;初始化:&lt;/p&gt;&#10;\[\mathbf{q}_0=\mathbf{0}, \qquad \mathbf{q}_1=(1,0,0)^{\mathsf{T}}, \qquad \beta_0=0.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第一步迭代:&lt;/p&gt;&#10;\[\alpha_1=3, \qquad \mathbf{v}_1=(0,2,5)^{\mathsf{T}} \implies \beta_1=\sqrt{29}, \qquad \mathbf{q}_2=\frac{1}{\sqrt{29}}(0,2,5)^{\mathsf{T}}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;第二步给出投影矩阵的第二个对角元:&lt;/p&gt;&#10;\[\alpha_2=\mathbf{q}_2^{\mathsf{T}}\mathbf{A}\mathbf{q}_2=\frac{112}{29}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;两步后的三对角矩阵为&lt;/p&gt;&#10;\[\mathbf{T}_2 = \begin{pmatrix} 3 &amp; \sqrt{29}\\ \sqrt{29} &amp; \frac{112}{29} \end{pmatrix}.\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;得到本征值的近似值:&lt;/p&gt;&#10;\[\lambda_1 \approx 8.83, \qquad \lambda_2 \approx -1.97\]&lt;h3 id="712-arnoldi-iteration-"&gt;7.12 Arnoldi Iteration *&lt;a class="heading-anchor" href="#712-arnoldi-iteration-" aria-label="Link to 7.12 Arnoldi Iteration *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Arnoldi 迭代将 Krylov 正交基的构造推广到实非对称矩阵, 在 \(m\) 维子空间内得到上 Hessenberg 投影矩阵 \(\mathbf{H}_m=\mathbf{Q}_m^{\mathsf{T}}\mathbf{A}\mathbf{Q}_m\). 只有构成完整 \(n\) 维正交基时, \(\mathbf{H}_n\) 才与 \(\mathbf{A}\) 相似; 一般截断投影的本征值只是 Ritz 值. 完整基下设矩阵:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{H} &amp;= \begin{pmatrix} h_{11} &amp; h_{12} &amp; h_{13} &amp; \cdots &amp; h_{1n}\\ h_{21} &amp; h_{22} &amp; h_{23} &amp; \cdots &amp; h_{2n}\\ 0 &amp; h_{32} &amp; h_{33} &amp; \cdots &amp; h_{3n}\\ \vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\ 0 &amp; 0 &amp; 0 &amp; \cdots &amp; h_{nn} \end{pmatrix},\\ \mathbf{H} &amp;=\mathbf{Q}^{\mathsf{T}}\mathbf{A}\mathbf{Q},\\ \mathbf{A}\mathbf{q}_{j} &amp;=\sum_{i=1}^{\min(j+1,n)}h_{ij}\mathbf{q}_{i},\qquad j=1,\cdots,n. \end{aligned}\]&lt;p&gt;第一列:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}\mathbf{q}_1 &amp;= h_{11}\mathbf{q}_1+h_{21}\mathbf{q}_2,\\ h_{11} &amp;= \mathbf{q}_1^{\mathsf{T}}\mathbf{A}\mathbf{q}_1,\\ \mathbf{v}_1 &amp;= \mathbf{A}\mathbf{q}_1-h_{11}\mathbf{q}_1,\\ h_{21} &amp;= \|\mathbf{v}_1\|_2,\\ \mathbf{q}_2 &amp;= \frac{\mathbf{v}_1}{h_{21}}. \end{aligned}\]&lt;p&gt;第二列:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{A}\mathbf{q}_2 &amp;= h_{12}\mathbf{q}_1+h_{22}\mathbf{q}_2+h_{32}\mathbf{q}_3,\\ h_{12} &amp;= \mathbf{q}_1^{\mathsf{T}}\mathbf{A}\mathbf{q}_2,\\ h_{22} &amp;= \mathbf{q}_2^{\mathsf{T}}\mathbf{A}\mathbf{q}_2,\\ \mathbf{v}_2 &amp;= \mathbf{A}\mathbf{q}_2-h_{12}\mathbf{q}_1-h_{22}\mathbf{q}_2,\\ h_{32} &amp;= \|\mathbf{v}_2\|_2,\\ \mathbf{q}_3 &amp;= \frac{\mathbf{v}_2}{h_{32}}. \end{aligned}\]&lt;p&gt;以上除法仅在对应残量范数非零时执行. 若 \(h_{j+1,j}=0\), 则当前子空间已经闭合, 停止递推; 浮点实现应在归一化前按尺度设置近零容差, 必要时重正交化.&lt;/p&gt;&#10;&lt;p&gt;迭代 \(m\lt n\) 步时, 保留末残量 \(\mathbf{r}_m\), 有&#10;&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{Q}_m=\mathbf{Q}_m\mathbf{H}_m+\mathbf{r}_m\mathbf{e}_m^{\mathsf{T}},\qquad \mathbf{Q}_m^{\mathsf{T}}\mathbf{r}_m=\mathbf{0},\qquad \|\mathbf{r}_m\|_2=h_{m+1,m}.\]&lt;p&gt;&#10;取 \(\mathbf{H}_m\mathbf{y}=\theta\mathbf{y}\), \(\|\mathbf{y}\|_2=1\), 对应 Ritz 向量为 \(\mathbf{x}=\mathbf{Q}_m\mathbf{y}\), 其残量满足&#10;&lt;/p&gt;&#10;\[\|\mathbf{A}\mathbf{x}-\theta\mathbf{x}\|_2=h_{m+1,m}|\mathbf{e}_m^{\mathsf{T}}\mathbf{y}|.\]&lt;p&gt;&#10;这可检查本征方程残量; 对非正规矩阵, 小残量本身不保证本征值的前向误差同样小, 还取决于谱的条件性.&lt;/p&gt;&#10;&lt;h3 id="713-dmrg-algorithm"&gt;7.13 DMRG Algorithm&lt;a class="heading-anchor" href="#713-dmrg-algorithm" aria-label="Link to 7.13 DMRG Algorithm" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;DMRG(density-matrix renormalization group) 在低纠缠的一维系统中, 通过保留最重要的子空间来求低能态. 对链的一个切分, 归一化态的 Schmidt 分解为&#10;&lt;/p&gt;&#10;\[|\psi\rangle=\sum_{\alpha=1}^{r}s_\alpha|\alpha_L\rangle|\alpha_R\rangle,\qquad s_1\geq s_2\geq\cdots\geq0,\qquad\sum_\alpha s_\alpha^2=1.\]&lt;p&gt;&#10;约化密度矩阵的本征值为 \(s_\alpha^2\). 保留最大的 \(D\) 项, 得给定态的最佳未归一化 Schmidt 秩 \(D\) 近似, 平方范数误差为丢弃权重 \(w_{\mathrm{disc}}=\sum_{\alpha&gt;D}s_\alpha^2\). 归一化后按 \(F=|\langle\psi|\psi_D\rangle|^2\) 定义的保真度为 \(1-w_{\mathrm{disc}}\), 但这个单次截断指标不等于最终能量误差.&lt;/p&gt;&#10;&lt;p&gt;现代实现将波函数写为矩阵乘积态 MPS(matrix product state)&#10;&lt;/p&gt;&#10;\[\psi_{s_1\cdots s_L}=A^{s_1}_1A^{s_2}_2\cdots A^{s_L}_L,\]&lt;p&gt;&#10;开边界的首末虚指标维数为 1, 中间键维数限制为 \(D\). Hamiltonian 可表示为矩阵乘积算符, 避免构造整个 \(d^L\) 维矩阵.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;初始化符合粒子数或自旋对称性的 MPS, 建立左右环境.&lt;/li&gt;&#10;&lt;li&gt;在其余张量固定时, 对一个或两个相邻格点求有效 Hamiltonian 的最低本征向量, 可调用 Lanczos 或 Davidson 方法.&lt;/li&gt;&#10;&lt;li&gt;双格点向量作奇异值分解, 根据最大键维数与丢弃权重阈值截断, 移动正交中心并更新环境.&lt;/li&gt;&#10;&lt;li&gt;左右往返扫描, 增加键维数, 直到能量、局域可观测量和截断指标稳定.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 规范化基下的局部问题是普通本征问题; 非正交基需处理范数矩阵. 精确局部最小化降低当前子问题能量, 但双格点截断后能量不必逐步单调. 固定键维数的优化可能困于局部极小, 应改变初态并检查 \(\langle H^2\rangle-\langle H\rangle^2\), 与小系统精确对角化比较. 临界长链、二维映射和实时演化常需更大键维数; DMRG 并不是对任意多体态的无损压缩.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;h2 id="8-monte-carlo-methods"&gt;8 Monte Carlo Methods&lt;a class="heading-anchor" href="#8-monte-carlo-methods" aria-label="Link to 8 Monte Carlo Methods" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Monte Carlo 方法用随机抽样近似积分、期望值和随机过程. 其优势是误差主要随样本数缩放, 在高维问题中常比规则网格积分更可行.&lt;/p&gt;&#10;&lt;h3 id="81-probability-and-statistics-background"&gt;8.1 Probability and Statistics Background&lt;a class="heading-anchor" href="#81-probability-and-statistics-background" aria-label="Link to 8.1 Probability and Statistics Background" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;概率密度函数 \(p(x)\)&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;描述随机连续变量 \(X\) 在 \(x\) 附近的概率密度, 满足归一化条件&lt;/p&gt;&#10;\[\int_{-\infty}^{\infty}p(x)\,\mathrm{d}x=1\]&lt;p&gt;对于独立变量, 有&lt;/p&gt;&#10;\[p(x,y)=p(x)p(y)\]&lt;p&gt;&lt;strong&gt;累积分布函数 \(P(x)\)&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;给出随机变量取值不超过 \(x\) 的概率&lt;/p&gt;&#10;\[P(x)=\int_{-\infty}^{x}p(t)\,\mathrm{d}t\]&lt;p&gt;&lt;strong&gt;期望值 \(E[f(x)]\)&lt;/strong&gt;&lt;/p&gt;&#10;\[E[f(x)]=\int_{-\infty}^{\infty}f(x)p(x)\,\mathrm{d}x\]&lt;p&gt;&lt;strong&gt;\(n\) 阶中心矩&lt;/strong&gt;&lt;/p&gt;&#10;\[\langle (x-\langle x\rangle)^n\rangle = \int_{-\infty}^{\infty}(x-\langle x\rangle)^n p(x)\,\mathrm{d}x\]&lt;p&gt;\(n=2\) 时给出方差.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;中心极限定理&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;设 \(x_{1}, x_{2}, \cdots, x_{n}\) 是独立同分布的随机变量, 具有有限期望值 \(\mu\) 和有限非零方差 \(0\lt\sigma^2\lt\infty\), 定义样本均值:&lt;/p&gt;&#10;\[z=\frac{1}{n}\sum_{i=1}^{n}x_i\]&lt;p&gt;中心极限定理是标准化变量的分布收敛:&lt;/p&gt;&#10;\[\frac{\sqrt{n}(z-\mu)}{\sigma}\xrightarrow{\mathrm{d}}\mathcal{N}(0,1).\]&lt;p&gt;因此大样本时可用 \(\mathcal{N}(\mu,\sigma^2/n)\) 近似样本均值分布; 均值本身在 \(n\to\infty\) 时集中于 \(\mu\). 若存在且适用局部密度近似, 可写&lt;/p&gt;&#10;\[p(z)\approx \frac{1}{\sqrt{2\pi}\sigma/\sqrt{n}} \exp\left[-\frac{(z-\mu)^2}{2\sigma^2/n}\right].\]&lt;p&gt;仅有中心极限定理并不保证任意离散分布拥有该概率密度, 也不保证尾部的相对误差小.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;随机数生成器&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;一个良好的随机数生成器应该满足:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;均匀性: 生成的数列在 [0,1] 上服从均匀分布;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;独立性: 连续随机数之间的相关性可以忽略不计;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;周期长: 数列重复的周期尽可能大, 避免短时间内循环;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;速度快: 算法计算效率高.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;计算机生成的随机数本质上是通过确定性的递推公式产生的, 因此是伪随机数. 只要初值 (种子) 相同, 序列就会重复, 这就引入了周期性.&lt;/p&gt;&#10;&lt;p&gt;下面给出四种常见的伪随机数生成算法:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Logistic 映射&lt;/p&gt;&#10;\[x_{i+1}=r x_i(1-x_i)\]&lt;p&gt;在一定的参数下可以产生混沌序列, 但是分布不均匀, 不常用作标准随机数生成器.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;线性同余生成器 (LCG)&lt;/p&gt;&#10;\[N_i=(aN_{i-1}+c)\bmod m\]&lt;p&gt;这是一种经典且快速的方法, 但周期受限于 \(m\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;带记忆的线性同余&lt;/p&gt;&#10;\[N_i=(aN_{i-1}+cN_{i-j})\bmod m\]&lt;p&gt;使用了更早的状态, 可以延长周期.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;减法的生成器&lt;/p&gt;&#10;\[N_i=(N_{i-3}-N_{i-1})\bmod (2^{31}-1)\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="82-hit-or-miss-sampling"&gt;8.2 Hit-or-Miss Sampling&lt;a class="heading-anchor" href="#82-hit-or-miss-sampling" aria-label="Link to 8.2 Hit-or-Miss Sampling" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;随机投点法是一种简单的 Monte Carlo 方法, 用于估计几何图形的面积或体积. 基本思想是, 在一个已知面积或体积的区域内随机投点, 统计落在目标图形内的点的比例, 从而估计目标图形的面积或体积.&lt;/p&gt;&#10;&lt;p&gt;这里假设 \(0\leq f(x)\leq1\), \(x\in[0,1]\), 从而曲线下方的目标区域完整包含在单位正方形内.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在矩形区域 \([0,1] \times [0,1]\) 内随机均匀投点 \(N\) 次, 每个点的坐标 \((x_i, y_i)\) 独立取值;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;判断每个点是否落在曲线 \(y=f(x)\) 下方的区域 \(\Omega\) 内, 即条件 \(y_{i} \leq f(x_{i})\) 是否成立.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;设 \(n\) 为满足条件的点数, 则曲线下面积的 Monte Carlo 估计值为&lt;/p&gt;&#10;\[I=\frac{n}{N}\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;img src="./assets/monte-carlo-hit-or-miss.jpg" alt="Monte Carlo hit-or-miss sampling" style="width: 261.25px; max-width: 100%; height: auto;" /&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;图中红点仅标出曲线下的命中点.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;\(n\) 是命中数, \(N\) 是单位正方形内全部均匀投点数, 包括未在图中标出的未命中点; 不能把可见红点数同时当作分子和分母.&lt;/p&gt;&#10;&lt;h3 id="83-expectation-value-estimation"&gt;8.3 Expectation-Value Estimation&lt;a class="heading-anchor" href="#83-expectation-value-estimation" aria-label="Link to 8.3 Expectation-Value Estimation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;设 \(X_i\) 是从归一化分布 \(p\) 独立抽取的样本. 期望值与样本估计量应区分:&#10;&lt;/p&gt;&#10;\[\mu_f=\mathbb{E}_p[f(X)]=\int f(x)p(x)\,\mathrm{d}x, \qquad \bar f_N=\frac{1}{N}\sum_{i=1}^N f(X_i).\]&lt;p&gt;&#10;样本已经服从 \(p\), 因而均值中不能再乘一次 \(p(X_i)\). 若总体方差有限, 则&#10;&lt;/p&gt;&#10;\[\sigma_f^2=\mathbb{E}_p[f^2]-\mu_f^2,\qquad \operatorname{Var}(\bar f_N)=\frac{\sigma_f^2}{N}.\]&lt;p&gt;&#10;用样本估计方差与标准误差时, 可取&#10;&lt;/p&gt;&#10;\[s_f^2=\frac{1}{N-1}\sum_{i=1}^N(f(X_i)-\bar f_N)^2, \qquad \widehat{\mathrm{SE}}(\bar f_N)=\frac{s_f}{\sqrt N}.\]&lt;p&gt;&#10;这是独立样本的误差公式. 对平稳 MCMC 样本, 若自相关可求和且相应中心极限定理成立, 用 \(N_{\mathrm{eff}}\simeq N/[1+2\sum_{k\ge1}\rho_f(k)]\) 替代 \(N\), 其中 \(\rho_f(k)\) 是观测量 \(f\) 的滞后自相关. 尚未热化或未遍历不同模态造成的偏差不会被这个标准误差自动包含.&lt;/p&gt;&#10;&lt;p&gt;现在我们想计算积分:&lt;/p&gt;&#10;\[I=\int_a^b f(x)\,\mathrm{d}x\]&lt;p&gt;如果是均匀采样, 则&lt;/p&gt;&#10;\[\begin{aligned} p(x) &amp;= \frac{1}{b-a},\\ I &amp;\approx \frac{b-a}{N}\sum_{i=1}^{N}f(x_i) \end{aligned}\]&lt;p&gt;多维积分:&lt;/p&gt;&#10;\[I\approx \frac{V}{N}\sum_{i=1}^{N}f(x_i)\]&lt;p&gt;误差估计:&lt;/p&gt;&#10;\[\widehat{\mathrm{SE}}(\hat I)=\frac{V s_f}{\sqrt{N}}\]&lt;p&gt;这里 \(V\) 是积分区域体积, 一维时为 \(b-a\). 独立样本的 \(N^{-1/2}\) 速率不显含维度, 但方差、有效采样效率和计算成本都可能随维度恶化.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Importance Sampling&lt;/strong&gt; 如果函数 \(f(x)\) 只在很小的区域内显著非零, 均匀采样的效率很低, 此时可以引入采样分布 \(p(x)\).&lt;/p&gt;&#10;&lt;p&gt;使用采样分布时须满足:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;在被积函数非零的区域有 \(p(x)&gt;0\);&lt;/li&gt;&#10;&lt;li&gt;\(f(X)/p(X)\) 有有限方差才能使用上述标准误差.&lt;/li&gt;&#10;&lt;li&gt;从 \(p(x)\) 中抽取独立样本 \(x_1, x_2, \cdots, x_N\), 且 \(\int p(x)\,\mathrm{d}x = 1\).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;可以用样本均值来估计期望值:&lt;/p&gt;&#10;\[\begin{aligned} I &amp;= \int_a^b f(x)\,\mathrm{d}x\\ &amp;= \int_a^b \frac{f(x)}{p(x)}p(x)\,\mathrm{d}x\\ &amp;\approx \frac{1}{N}\sum_{i=1}^{N}\frac{f(x_i)}{p(x_i)}. \end{aligned}\]&lt;p&gt;&lt;strong&gt;Inverse Transform&lt;/strong&gt; 直接生成服从 \(p(x)\) 的随机数有时候并不方便, 可以通过变量替换将积分变为均匀分布的形式. 定义累积分布函数:&lt;/p&gt;&#10;\[\begin{aligned} y(x) &amp;= \int_a^x p(t)\,\mathrm{d}t,\\ \mathrm{d}y &amp;= p(x)\,\mathrm{d}x,\\ I &amp;= \int_a^b p(x)\frac{f(x)}{p(x)}\,\mathrm{d}x\\ &amp;= \int_0^1 \frac{f(x(y))}{p(x(y))}\,\mathrm{d}y\\ &amp;\approx \frac{1}{N}\sum_{i=1}^{N} \frac{f(x(y_i))}{p(x(y_i))}. \end{aligned}\]&lt;p&gt;当 \(x\) 从 \(a\) 到 \(b\) 时, \(y\) 从 0 到 1.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 如果取&lt;/p&gt;&#10;\[\begin{aligned} p(x) &amp;= \mathrm{e}^{-x},\\ \mathrm{d}y(x) &amp;= p(x)\,\mathrm{d}x = \mathrm{e}^{-x}\,\mathrm{d}x,\\ y(x) &amp;= \int_0^x \mathrm{e}^{-t}\,\mathrm{d}t = 1-\mathrm{e}^{-x},\\ x(y) &amp;= -\ln(1-y). \end{aligned}\]&lt;p&gt;求积分:&lt;/p&gt;&#10;\[\begin{aligned} I &amp;= \int_0^\infty \mathrm{e}^{-x}G(x)\,\mathrm{d}x\\ &amp;= \int_0^1 G(-\ln(1-y))\,\mathrm{d}y\\ &amp;\approx \frac{1}{N}\sum_{i=1}^{N}G(x(y_i)). \end{aligned}\]&lt;h3 id="84-one-dimensional-random-walk"&gt;8.4 One-Dimensional Random Walk&lt;a class="heading-anchor" href="#84-one-dimensional-random-walk" aria-label="Link to 8.4 One-Dimensional Random Walk" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;建立一维随机行走模型: 在一维直线上, 质点每一步可以向左或向右移动, 步长为 \(l\). 向右的概率为 \(R\), 向左的概率为 \(L\), 满足 \(R + L = 1\). 假设各步独立, 每一步的位移 \(\Delta x_i=\pm l\), 如下图所示.&lt;/p&gt;&#10;&lt;img src="./assets/random-walk-lattice-label-corrected.png" alt="One-dimensional random walk lattice" width="900" height="61" style="display: block; width: 100%; max-width: 495px; height: auto;" /&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;一维随机游走格点. 来源: 课程讲义.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;a class="link" href="./assets/random-walk-lattice.jpg" &gt;原图&lt;/a&gt; 左侧第二个负坐标的标记省略了步长因子, 应读作 \(-2l\); 上方修正版已补上该因子.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;首先考虑对称的情形, 即 \(R=L=\frac{1}{2}\).&lt;/p&gt;&#10;&lt;p&gt;经过 \(n\) 步之后的总位移:&lt;/p&gt;&#10;\[\begin{aligned} x(n) &amp;= \sum_{i=1}^{n}\Delta x_i,\\ \langle x(n)\rangle &amp;= \sum_{i=1}^{n}\langle \Delta x_i\rangle\\ &amp;= \sum_{i=1}^{n} \left(\frac{1}{2}l-\frac{1}{2}l\right) = 0,\\ \sigma_n^2 &amp;= \langle x(n)^2\rangle\\ &amp;= \left\langle \sum_{i=1}^{n}\Delta x_i \sum_{j=1}^{n}\Delta x_j \right\rangle\\ &amp;= \sum_{i=1}^{n}\langle \Delta x_i^2\rangle + \sum_{i\neq j}\langle \Delta x_i\Delta x_j\rangle = nl^2. \end{aligned}\]&lt;p&gt;如果是非对称情形:&lt;/p&gt;&#10;\[\begin{aligned} \langle x(n)\rangle &amp;= n(R-L)l,\\ \sigma_n^2 &amp;= n[l^2-(R-L)^2l^2]\\ &amp;= 4nRLl^2. \end{aligned}\]&lt;h3 id="85-markov-processes"&gt;8.5 Markov Processes&lt;a class="heading-anchor" href="#85-markov-processes" aria-label="Link to 8.5 Markov Processes" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Markov 过程是一种随机过程, 满足无记忆性, 即未来状态仅依赖于当前状态, 而与过去的状态无关.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Transition Matrix&lt;/strong&gt; 定义转移概率矩阵 \(\mathbf{W}_{ij}(\varepsilon)\) 为在时间 \(\varepsilon\) 内从格点 \(j\) 转移到格点 \(i\) 的概率. 对于一维对称随机行走:&lt;/p&gt;&#10;\[W_{ij}(\varepsilon) = \begin{cases} \frac{1}{2}, &amp; |i-j|=1,\\ 0, &amp; \text{otherwise}. \end{cases}\]&lt;h4 id="851-time-evolution"&gt;8.5.1 Time Evolution&lt;a class="heading-anchor" href="#851-time-evolution" aria-label="Link to 8.5.1 Time Evolution" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;经过一个时间步长 \(\varepsilon\) 后, 粒子到达格点 \(i\) 的概率 \(w_i(t+\varepsilon)\) 等于: 从上一位置 \(j\) 转移到 \(i\) 的概率, 乘以粒子在 \(t\) 时刻位于 \(j\) 的概率, 再对所有 \(j\) 求和:&lt;/p&gt;&#10;\[w_i(t+\varepsilon) = \sum_j W_{ij}(\varepsilon)w_j(t)\]&lt;p&gt;多步演化:&lt;/p&gt;&#10;\[\begin{aligned} w_i(2\varepsilon) &amp;= \sum_j W_{ij}w_j(\varepsilon) = \sum_j W_{ij}\sum_k W_{jk}w_k(0)\\ &amp;= \sum_k\sum_j W_{ij}W_{jk}w_k(0) = \sum_k (\mathbf{W}^2)_{ik}w_k(0). \end{aligned}\]&lt;p&gt;以此类推:&lt;/p&gt;&#10;\[w_i(n\varepsilon) = \sum_k(\mathbf{W}^n)_{ik}w_k(0)\]&lt;p&gt;&lt;strong&gt;n-Step Transition&lt;/strong&gt; 先考虑只保留格点 \(1,2,3,4\) 的有限系统. 下列矩阵把出界粒子从这四个格点中移除, 相当于吸收至未显式列出的边界外状态. 右移矩阵 \(\mathbf{R}\) 与左移矩阵 \(\mathbf{L}\) 分别为&lt;/p&gt;&#10;\[\mathbf{R} = \begin{pmatrix} 0 &amp; 0 &amp; 0 &amp; 0\\ 1 &amp; 0 &amp; 0 &amp; 0\\ 0 &amp; 1 &amp; 0 &amp; 0\\ 0 &amp; 0 &amp; 1 &amp; 0 \end{pmatrix} \qquad \mathbf{L} = \begin{pmatrix} 0 &amp; 1 &amp; 0 &amp; 0\\ 0 &amp; 0 &amp; 1 &amp; 0\\ 0 &amp; 0 &amp; 0 &amp; 1\\ 0 &amp; 0 &amp; 0 &amp; 0 \end{pmatrix}\]&lt;p&gt;转移矩阵为&lt;/p&gt;&#10;\[\mathbf{W} = \frac{1}{2}(\mathbf{R}+\mathbf{L})\]&lt;p&gt;2 步转移矩阵对应四种走法: 向左移 2 步, 向右移 2 步, 以及左右各一步的两种顺序.&lt;/p&gt;&#10;\[\mathbf{W}^2 = \frac{1}{4} (\mathbf{R}^2+\mathbf{L}^2+\mathbf{R}\mathbf{L}+\mathbf{L}\mathbf{R}).\]&lt;p&gt;在这个有限系统中,&#10;&lt;/p&gt;&#10;\[\mathbf{R}\mathbf{L}=\operatorname{diag}(0,1,1,1),\qquad \mathbf{L}\mathbf{R}=\operatorname{diag}(1,1,1,0),\]&lt;p&gt;&#10;因此两矩阵不交换, 不能合并交叉项或直接使用二项式展开; \(\mathbf{W}\) 的端点列和为 \(1/2\), 内部列和为 \(1\), 四个格点中的总概率会随出界而减少.&lt;/p&gt;&#10;&lt;p&gt;以下另取无限晶格 \(i,j\in\mathbb{Z}\), 左右移算符互逆且交换, 满足 \(\mathbf{R}\mathbf{L}=\mathbf{L}\mathbf{R}=\mathbf{I}\). 此时才可用二项式定理&lt;/p&gt;&#10;\[(a+b)^n = \sum_{k=0}^{n}\binom{n}{k}a^{n-k}b^k\]&lt;p&gt;可将 \(n\) 步转移矩阵写作&lt;/p&gt;&#10;\[\mathbf{W}^n = \frac{1}{2^n} \sum_{k=0}^{n}\binom{n}{k}\mathbf{R}^{n-k}\mathbf{L}^k\]&lt;p&gt;也可等价写为&lt;/p&gt;&#10;\[\mathbf{W}^n = \frac{1}{2^n}\sum_{k=0}^{n}\binom{n}{k}\mathbf{L}^{n-2k} = \frac{1}{2^n}\sum_{k=0}^{n}C_n^k\mathbf{R}^{2k-n}\]&lt;p&gt;由于&lt;/p&gt;&#10;\[\begin{aligned} (\mathbf{R}^m)_{ij} &amp;= \delta_{i,j+m},\\ (\mathbf{L}^m)_{ij} &amp;= \delta_{i+m,j}. \end{aligned}\]&lt;p&gt;从起点 \(j\) 出发, 经过 \(n\) 步后到达位置 \(i\) 的概率为&lt;/p&gt;&#10;\[W_{ij}^{n} = \frac{1}{2^n} \binom{n}{\frac{n+i-j}{2}}\]&lt;p&gt;其中 \(\frac{n+i-j}{2}\) 必须是整数, 且满足 \(0 \leq \frac{n+i-j}{2} \leq n\).&lt;/p&gt;&#10;&lt;h4 id="852-diffusion-equation"&gt;8.5.2 Diffusion Equation&lt;a class="heading-anchor" href="#852-diffusion-equation" aria-label="Link to 8.5.2 Diffusion Equation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;假设粒子从 \(x=0\) 出发, 初始分布为&lt;/p&gt;&#10;\[w_j(0)=\delta_{j0}\]&lt;p&gt;经过 \(n\) 步, 到达格点 \(i\) 的概率为&lt;/p&gt;&#10;\[w_i(n\varepsilon) = \frac{1}{2^n} \binom{n}{\frac{n+i}{2}}\]&lt;p&gt;&lt;strong&gt;Continuum Limit&lt;/strong&gt; 组合数递推给出&lt;/p&gt;&#10;\[\begin{aligned} \binom{n+1}{k} &amp;= \binom{n}{k}+\binom{n}{k-1},\\ \binom{n+1}{\frac{n+1+i}{2}} &amp;= \binom{n}{\frac{n+i+1}{2}} + \binom{n}{\frac{n+i-1}{2}},\\ \frac{1}{2^{n+1}}\binom{n+1}{\frac{n+1+i}{2}} &amp;= \frac{1}{2^{n+1}}\binom{n}{\frac{n+i+1}{2}} + \frac{1}{2^{n+1}}\binom{n}{\frac{n+i-1}{2}}. \end{aligned}\]&lt;p&gt;注意到&lt;/p&gt;&#10;\[\begin{aligned} \frac{1}{2^{n+1}}\binom{n+1}{\frac{n+1+i}{2}} &amp;= w_i[(n+1)\varepsilon],\\ \frac{1}{2^{n+1}}\binom{n}{\frac{n+i+1}{2}} &amp;= \frac{1}{2}w_{i+1}(n\varepsilon),\\ \frac{1}{2^{n+1}}\binom{n}{\frac{n+i-1}{2}} &amp;= \frac{1}{2}w_{i-1}(n\varepsilon). \end{aligned}\]&lt;p&gt;因此&lt;/p&gt;&#10;\[w_i[(n+1)\varepsilon] = \frac{1}{2}w_{i+1}(n\varepsilon) + \frac{1}{2}w_{i-1}(n\varepsilon)\]&lt;p&gt;令&lt;/p&gt;&#10;\[\begin{aligned} x&amp;=il,\qquad t=n\varepsilon,\\ p_l(x,t)&amp;=\frac{w_i(n\varepsilon)}{l},\\ p_l(x,t+\varepsilon) &amp;= \frac{1}{2}p_l(x+l,t)+\frac{1}{2}p_l(x-l,t). \end{aligned}\]&lt;p&gt;这是无限晶格上的离散扩散关系. 若将 \(p_l\) 在各宽度为 \(l\) 的格点单元内作常值延拓, 则 \(\int p_l(x,t)\,\mathrm{d}x=\sum_iw_i(t)=1\). 移项得到&lt;/p&gt;&#10;\[\frac{p_l(x,t+\varepsilon)-p_l(x,t)}{\varepsilon} = \frac{l^2}{2\varepsilon} \frac{p_l(x+l,t)-2p_l(x,t)+p_l(x-l,t)}{l^2}.\]&lt;p&gt;每步必移动的晶格游走保留奇偶性, 因而这个离散密度不在所有格点上逐点趋于光滑函数. 连续极限应理解为概率分布的弱收敛, 或先在相邻格点上作粗粒化后得到光滑密度 \(w(x,t)\). 对光滑尺度的差分作 Taylor 展开, 再取扩散尺度极限&lt;/p&gt;&#10;&lt;p&gt;当&lt;/p&gt;&#10;\[\varepsilon\to 0, \qquad l\to 0, \qquad \frac{l^2}{2\varepsilon}\to D\]&lt;p&gt;可以写作:&lt;/p&gt;&#10;\[\frac{\partial w}{\partial t} = D\frac{\partial^2 w}{\partial x^2}\]&lt;p&gt;这就是一维扩散方程, 其中 \(D\) 为扩散系数.&lt;/p&gt;&#10;&lt;p&gt;方差:&lt;/p&gt;&#10;\[\langle x^2\rangle-\langle x\rangle^2=2Dt\]&lt;p&gt;在无限长线上, 初始密度为 \(w(x,0)=\delta(x)\), 对 \(t&gt;0\) 有归一化的 Gaussian 解:&lt;/p&gt;&#10;\[w(x,t) = \frac{1}{\sqrt{4\pi Dt}} \exp\left(-\frac{x^2}{4Dt}\right)\]&lt;h4 id="853-finite-state-equilibrium"&gt;8.5.3 Finite-State Equilibrium&lt;a class="heading-anchor" href="#853-finite-state-equilibrium" aria-label="Link to 8.5.3 Finite-State Equilibrium" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 转移矩阵&lt;/p&gt;&#10;\[\mathbf{W} = \begin{pmatrix} \frac{1}{4} &amp; \frac{1}{8} &amp; \frac{2}{3}\\ \frac{3}{4} &amp; \frac{5}{8} &amp; 0\\ 0 &amp; \frac{1}{4} &amp; \frac{1}{3} \end{pmatrix}\]\[\mathbf{w}(0)=(1,0,0)^{\mathsf{T}}\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 时间演化:&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{w}(\varepsilon) &amp;= \mathbf{W}\mathbf{w}(0) = \left(\frac{1}{4},\frac{3}{4},0\right)^{\mathsf{T}},\\ \mathbf{w}(2\varepsilon) &amp;= \mathbf{W}\mathbf{w}(\varepsilon) = \left(\frac{5}{32},\frac{21}{32},\frac{3}{16}\right)^{\mathsf{T}}. \end{aligned}\]&lt;p&gt;平衡态满足&lt;/p&gt;&#10;\[\mathbf{w}(\infty)=\mathbf{W}\mathbf{w}(\infty)\]&lt;p&gt;即&lt;/p&gt;&#10;\[\begin{aligned} W_{11}w_1(\infty)+W_{12}w_2(\infty)+W_{13}w_3(\infty) &amp;= w_1(\infty),\\ W_{21}w_1(\infty)+W_{22}w_2(\infty)+W_{23}w_3(\infty) &amp;= w_2(\infty),\\ W_{31}w_1(\infty)+W_{32}w_2(\infty)+W_{33}w_3(\infty) &amp;= w_3(\infty). \end{aligned}\]&lt;p&gt;再加归一化条件&lt;/p&gt;&#10;\[\sum_i w_i(\infty)=1\]&lt;p&gt;解得&lt;/p&gt;&#10;\[\mathbf{w}(\infty) = \left(\frac{4}{15},\frac{8}{15},\frac{1}{5}\right)^{\mathsf{T}}\]&lt;p&gt;这个有限状态例子的转移矩阵不可约且有自环, 因而非周期, 从任意初态收敛到唯一平稳分布. 一般 Markov 链不能无条件断言收敛. 对本例可对角化的 \(\mathbf{W}\), 将初始分布按本征向量展开:&lt;/p&gt;&#10;\[\mathbf{w}(0)=\sum_i \alpha_i\mathbf{v}_i\]&lt;p&gt;经过 \(t\) 步后:&lt;/p&gt;&#10;\[\mathbf{w}(t) = \mathbf{W}^t\mathbf{w}(0) = \sum_i\lambda_i^t\alpha_i\mathbf{v}_i\]&lt;p&gt;有限状态随机矩阵总有本征值 \(1\), 且所有本征值满足 \(|\lambda_i|\leq1\). 若链不可约且非周期, 则 \(1\) 是单本征值, 其余本征值才满足 \(|\lambda_i|\lt1\). 可约链可能有多个平稳分布, 周期链可能有其他单位模本征值, 例如两状态交替链有 \(\lambda=-1\). 对本例, 当 \(t\to\infty\) 时, 只有 \(\lambda_i=1\) 的项保留:&lt;/p&gt;&#10;\[\mathbf{w}(\infty) \propto \text{eigenvector corresponding to eigenvalue }1\]&lt;p&gt;对于刚才的例子, 对角化得到特征值&lt;/p&gt;&#10;\[\mathbf{D} = \begin{pmatrix} 1 &amp; 0 &amp; 0\\ 0 &amp; \frac{1}{48}(5-\mathrm{i}\sqrt{311}) &amp; 0\\ 0 &amp; 0 &amp; \frac{1}{48}(5+\mathrm{i}\sqrt{311}) \end{pmatrix}\]&lt;p&gt;特征矢量为&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{v}_1 &amp;= \begin{pmatrix} \frac{4}{3}\\ \frac{8}{3}\\ 1 \end{pmatrix},\\ \mathbf{v}_2 &amp;= \begin{pmatrix} -\frac{1}{12}+\mathrm{i}\frac{\sqrt{311}}{12}\\ -\frac{11}{12}-\mathrm{i}\frac{\sqrt{311}}{12}\\ 1 \end{pmatrix},\\ \mathbf{v}_3 &amp;= \begin{pmatrix} -\frac{1}{12}-\mathrm{i}\frac{\sqrt{311}}{12}\\ -\frac{11}{12}+\mathrm{i}\frac{\sqrt{311}}{12}\\ 1 \end{pmatrix}. \end{aligned}\]&lt;p&gt;将第一个特征矢量归一化, 得到&lt;/p&gt;&#10;\[\mathbf{w}(\infty) = \left(\frac{4}{15},\frac{8}{15},\frac{1}{5}\right)^{\mathsf{T}}\]&lt;h4 id="854-continuous-time-rates"&gt;8.5.4 Continuous-Time Rates&lt;a class="heading-anchor" href="#854-continuous-time-rates" aria-label="Link to 8.5.4 Continuous-Time Rates" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;先区分连续时间转移速率与离散时间转移概率. 若 \(\Gamma(j\to i)\) 表示连续时间速率, 则主方程为&lt;/p&gt;&#10;\[\frac{\mathrm{d}w_i}{\mathrm{d}t} = \sum_{j\neq i}\left[\Gamma(j\to i)w_j-\Gamma(i\to j)w_i\right].\]&lt;p&gt;平稳条件只要求总流入与总流出相等:&lt;/p&gt;&#10;\[\sum_{j\neq i}\Gamma(j\to i)w_j=\sum_{j\neq i}\Gamma(i\to j)w_i.\]&lt;p&gt;若进一步要求 \(\Gamma(j\to i)w_j=\Gamma(i\to j)w_i\) 对每一对状态成立, 才得到细致平衡. 以下 Metropolis 更新使用离散时间提议和转移概率.&lt;/p&gt;&#10;&lt;h3 id="86-metropolis-algorithm"&gt;8.6 Metropolis Algorithm&lt;a class="heading-anchor" href="#86-metropolis-algorithm" aria-label="Link to 8.6 Metropolis Algorithm" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;逐对相等是细致平衡, 它是目标分布保持不变的充分而非必要条件. 从任意初态收敛还需要遍历性: 有限状态链通常要求不可约和非周期; 满足细致平衡却困在某个子集的链并不能正确采样整个目标分布.&lt;/p&gt;&#10;&lt;p&gt;当直接知道 \(W\) 很困难时(分布复杂、维度高、归一化常数未知等), Metropolis 算法通过对称提议分布与接受概率构造满足细致平衡条件的转移矩阵, 从而使采样分布收敛到目标分布.&lt;/p&gt;&#10;&lt;p&gt;将转移矩阵分解:&lt;/p&gt;&#10;\[W(j\to i)=q(j\to i)A(j\to i),\qquad i\neq j.\]&lt;p&gt;这里提议概率满足 \(\sum_iq(j\to i)=1\). 转移矩阵的对角元还要包含所有拒绝后留在原态的概率:&#10;&lt;/p&gt;&#10;\[W(j\to j)=q(j\to j)A(j\to j)+\sum_iq(j\to i)[1-A(j\to i)].\]&lt;p&gt;其中 \(q(j\to i)\) 是提议分布(如对称随机行走), \(A(j\to i)\) 是接受概率.&lt;/p&gt;&#10;&lt;p&gt;考虑所有可能转移后, 状态 \(i\) 的分布更新为:&lt;/p&gt;&#10;\[w_i(t+1) = \sum_j\left[ w_j(t)q(j\to i)A(j\to i) + w_i(t)q(i\to j)(1-A(i\to j)) \right]\]&lt;p&gt;第一项为接受后到达 \(i\) 的概率, 第二项为从 \(i\) 提议转移但被拒绝而留在原态的概率. 离散时间演化的差分为&lt;/p&gt;&#10;\[w_i(t+1)-w_i(t) = \sum_j\left[ w_j(t)q(j\to i)A(j\to i) - w_i(t)q(i\to j)A(i\to j) \right]\]&lt;p&gt;平衡时, 满足:&lt;/p&gt;&#10;\[w_i(t+1)=w_i(t)\]&lt;p&gt;即&lt;/p&gt;&#10;\[\sum_j w_jq(j\to i)A(j\to i) = \sum_j w_iq(i\to j)A(i\to j)\]&lt;p&gt;细致平衡条件是更强的条件, 每一项分别相等:&lt;/p&gt;&#10;\[w_jq(j\to i)A(j\to i) = w_iq(i\to j)A(i\to j)\]&lt;p&gt;等价于:&lt;/p&gt;&#10;\[\begin{aligned} \frac{W(j\to i)}{W(i\to j)} &amp;= \frac{w_i}{w_j},\\ \frac{q(j\to i)A(j\to i)}{q(i\to j)A(i\to j)} &amp;= \frac{w_i}{w_j}. \end{aligned}\]&lt;p&gt;Metropolis 算法通常取对称提议:&lt;/p&gt;&#10;\[q(j\to i)=q(i\to j)\]&lt;p&gt;并设:&lt;/p&gt;&#10;\[A(j\to i) = \min\left(1,\frac{w_i}{w_j}\right)\]&lt;p&gt;对于非对称提议分布 \(q(j\to i)\neq q(i\to j)\), 接受概率应取更一般的 Metropolis-Hastings 形式:&lt;/p&gt;&#10;\[A(j\to i) = \min\left( 1, \frac{w_iq(i\to j)}{w_jq(j\to i)} \right).\]&lt;p&gt;完整算法流程为:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;选取初始状态 \(i\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;由当前状态 \(i\) 按提议分布抽取候选状态 \(j\sim q(i\to j)\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;计算接受概率&lt;/p&gt;&#10;\[A(i\to j) = \min\left( 1, \frac{w_jq(j\to i)}{w_iq(i\to j)} \right).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;抽取 \(u\sim U(0,1)\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;若 \(u\leq A(i\to j)\), 则接受候选状态 \(j\); 否则停留在 \(i\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;丢弃前面若干步 burn-in, 对后续样本做统计平均.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;当提议分布对称时, 上式退化为普通 Metropolis 接受率 \(\min(1,w_j/w_i)\).&lt;/p&gt;&#10;&lt;h4 id="861-equilibrium-statistical-physics-application"&gt;8.6.1 Equilibrium Statistical Physics Application&lt;a class="heading-anchor" href="#861-equilibrium-statistical-physics-application" aria-label="Link to 8.6.1 Equilibrium Statistical Physics Application" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;在温度 \(T\) 下, 系统处于微观态 \(i\) 的概率满足 Boltzmann 分布:&lt;/p&gt;&#10;\[w_i=\frac{\mathrm{e}^{-\beta E_i}}{Z}, \qquad \beta=\frac{1}{k_{\mathrm{B}}T}\]&lt;p&gt;期望值:&lt;/p&gt;&#10;\[\langle O\rangle = \sum_i O_iw_i = \frac{\sum_i O_i\mathrm{e}^{-\beta E_i}}{Z}\]&lt;p&gt;直接计算期望值需要遍历所有状态, 这通常是难以实现的. Metropolis 算法只需要考虑能量差:&lt;/p&gt;&#10;\[\frac{w_i}{w_j} = \mathrm{e}^{-\beta(E_i-E_j)}\]&lt;p&gt;接收概率:&lt;/p&gt;&#10;\[A(j\to i) = \min\left(1,\mathrm{e}^{-\beta(E_i-E_j)}\right) = \begin{cases} 1, &amp; E_i\leq E_j,\\ \mathrm{e}^{-\beta(E_i-E_j)}, &amp; E_i&gt;E_j. \end{cases}\]&lt;p&gt;新状态能量更低或相等, 总是接受; 若能量更高, 则以概率 \(\mathrm{e}^{-\beta(E_{i}-E_{j})}\) 接受.&lt;/p&gt;&#10;&lt;h3 id="87-mcmc-integration-"&gt;8.7 MCMC Integration *&lt;a class="heading-anchor" href="#87-mcmc-integration-" aria-label="Link to 8.7 MCMC Integration *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;可以用 MCMC(Markov chain Monte Carlo) 方法来计算高维积分. 在 Bayesian 统计中, 后验分布是在给定观测数据后, 某个参数或一组参数的概率分布. Bayes 定理给出:&lt;/p&gt;&#10;\[P(\theta|D) = \frac{P(D|\theta)P(\theta)}{P(D)}\]&lt;p&gt;其中 \(P(\theta|D)\) 为后验分布, \(P(D|\theta)\) 为似然函数, \(P(\theta)\) 为先验分布, \(P(D)\) 为边际似然或证据.&lt;/p&gt;&#10;&lt;p&gt;以掷硬币为例. 设硬币正面的概率为 \(p\), 先验分布取为 \([0,1]\) 上的均匀分布:&lt;/p&gt;&#10;\[P(p) = \begin{cases} 1, &amp; 0\leq p\leq 1,\\ 0, &amp; \text{otherwise}. \end{cases}\]&lt;p&gt;如果抛 10 次硬币得到 7 次正面、3 次反面, 似然函数为&lt;/p&gt;&#10;\[P(D|p) = \binom{10}{7}p^7(1-p)^3\]&lt;p&gt;因此后验分布满足&lt;/p&gt;&#10;\[P(p|D)\propto p^7(1-p)^3\]&lt;p&gt;这是一个 Beta 分布. 后验分布的期望值为&lt;/p&gt;&#10;\[E(p|D) = \int_0^1 pP(p|D)\,\mathrm{d}p = \frac{2}{3}\]&lt;p&gt;实际的后验分布期望值在高维参数空间中通常难以解析求解, 此时可以使用 MCMC 近似计算. MCMC 积分通过构造一条平稳分布等于后验分布 \(p(\theta|D)\) 的 Markov 链, 再从链上抽取大量样本:&lt;/p&gt;&#10;\[\int g(\theta)p(\theta|D)\,\mathrm{d}\theta \approx \frac{1}{N}\sum_{i=1}^{N}g(\theta_i)\]&lt;p&gt;独立直接采样没有序列自相关, 但复杂目标分布往往难以直接抽取. Markov 链样本通常相关, 正相关会降低有效样本量, 负相关也可能提高它. 使用 MCMC 积分还要求目标分布确为平稳分布, 链满足相应遍历条件, 且观测量可积; 误差估计另需中心极限定理及自相关求和等条件, 不能只凭任意更新规则保证正确性.&lt;/p&gt;&#10;&lt;h3 id="88-hamiltonian-monte-carlo-"&gt;8.8 Hamiltonian Monte Carlo *&lt;a class="heading-anchor" href="#88-hamiltonian-monte-carlo-" aria-label="Link to 8.8 Hamiltonian Monte Carlo *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;HMC(Hamiltonian Monte Carlo) 是对 Metropolis 算法的一种改进, 通过引入动量变量和 Hamilton 动力学更高效地探索状态空间. 将目标分布 \(\pi(q)\) 视作势能分布:&lt;/p&gt;&#10;\[\pi(q)\propto \mathrm{e}^{-U(q)}\]&lt;p&gt;引入辅助动量变量 \(p\), 通常取独立正态分布:&lt;/p&gt;&#10;\[\pi(p)\propto \mathrm{e}^{-K(p)}, \qquad K(p)=\frac{p^2}{2m}\]&lt;p&gt;联合分布为&lt;/p&gt;&#10;\[\pi(q,p) = \pi(q)\pi(p) \propto \mathrm{e}^{-H(q,p)}, \qquad H(q,p)=U(q)+K(p)\]&lt;p&gt;Hamilton 方程为&lt;/p&gt;&#10;\[\begin{aligned} \frac{\mathrm{d}q}{\mathrm{d}t} &amp;= \frac{\partial H}{\partial p} = \frac{p}{m},\\ \frac{\mathrm{d}p}{\mathrm{d}t} &amp;= -\frac{\partial H}{\partial q} = -\frac{\partial U}{\partial q}. \end{aligned}\]&lt;p&gt;这里为简明取一维变量和 \(m&gt;0\). 每次 HMC 更新先独立刷新 \(p\sim\mathcal{N}(0,m)\), 再用可逆且保持相空间体积的积分器生成轨迹. 常用蛙跳(leapfrog) 方法, 步长 \(h\) 的一步为&#10;&lt;/p&gt;&#10;\[\begin{aligned} p_{1/2}&amp;=p-\frac{h}{2}U'(q),\\ q_1&amp;=q+\frac{h}{m}p_{1/2},\\ p_1&amp;=p_{1/2}-\frac{h}{2}U'(q_1). \end{aligned}\]&lt;p&gt;&#10;重复固定步数后翻转末动量, 得到可逆的确定性提议 \((q',p')\); 然后按能量差接受或拒绝. 若拒绝, 保留原位置; 最后只记录位置作为目标分布的样本. 接受概率为&lt;/p&gt;&#10;\[A = \min\left(1,\mathrm{e}^{-H(q',p')+H(q,p)}\right)\]&lt;p&gt;精确 Hamilton 流守恒能量, 此时接受率为 \(1\); 数值轨迹一般不精确守恒能量, 上述 Metropolis 步用于修正积分误差. 仅有能量差接受率不能修正任意不保持体积或不可逆的离散映射, 仍需满足提议的条件和链的遍历性.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;h3 id="89-quantum-monte-carlo-"&gt;8.9 Quantum Monte Carlo *&lt;a class="heading-anchor" href="#89-quantum-monte-carlo-" aria-label="Link to 8.9 Quantum Monte Carlo *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;QMC (Quantum Monte Carlo) 用 Monte Carlo 方法估计多体系统的基态能量.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Proposition&lt;/strong&gt; 变分上界. 根据变分原理, 对任意依赖参数 \(\boldsymbol{\alpha}\) 的试探波函数 \(\phi(\mathbf{R},\boldsymbol{\alpha})\), 能量期望值满足&lt;/p&gt;&#10;\[E_0 \leq \frac{\int \phi^*(\mathbf{R})\hat{H}\phi(\mathbf{R})\,\mathrm{d}\mathbf{R}} {\int|\phi(\mathbf{R})|^2\,\mathrm{d}\mathbf{R}}\]&lt;p&gt;其中 \(\mathbf{R}\) 是所有 \(N\) 个粒子的坐标. 通过优化参数 \(\boldsymbol{\alpha}\) 使能量期望值最小化, 可以得到接近基态的波函数.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt; 局部能量. 一般多体问题的 Hamiltonian 可写作&lt;/p&gt;&#10;\[\hat{H} = -\frac{\hbar^2}{2m}\sum_{i=1}^{N}\nabla_i^2 + \sum_i V_{\mathrm{onebody}}(\mathbf{r}_i) + \sum_{i\lt j}V_{\mathrm{int}}(|\mathbf{r}_i-\mathbf{r}_j|)\]&lt;p&gt;定义局部能量&lt;/p&gt;&#10;\[E_L(\mathbf{R}) = \frac{\hat{H}\phi(\mathbf{R})}{\phi(\mathbf{R})}\]&lt;p&gt;代入 Hamiltonian 得&lt;/p&gt;&#10;\[E_L(\mathbf{R}) = \frac{ -\frac{\hbar^2}{2m}\sum_i\nabla_i^2\phi(\mathbf{R}) }{\phi(\mathbf{R})} + \sum_iV_{\mathrm{onebody}}(\mathbf{r}_i) + \sum_{i\lt j}V_{\mathrm{int}}(|\mathbf{r}_i-\mathbf{r}_j|)\]&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 变分 Monte Carlo 的迭代流程:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;选定含参数的 \(\boldsymbol{\alpha}\) 和 \(\phi\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;用 Monte Carlo 方法从概率密度&lt;/p&gt;&#10;\[P(\mathbf{R}) = \frac{|\phi(\mathbf{R})|^2}{\int|\phi(\mathbf{R})|^2\,\mathrm{d}\mathbf{R}}\]&lt;p&gt;中抽取样本, 并估计&lt;/p&gt;&#10;\[\langle \hat{H}\rangle = \int P(\mathbf{R})\frac{\hat{H}\phi(\mathbf{R})}{\phi(\mathbf{R})}\,\mathrm{d}\mathbf{R}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;调整参数 \(\boldsymbol{\alpha}\), 使 \(\langle \hat{H}\rangle\) 最小化.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;采样后即可直接计算积分:&lt;/p&gt;&#10;\[\langle \hat{H}\rangle = \int P(\mathbf{R})E_L(\mathbf{R})\,\mathrm{d}\mathbf{R} \approx \frac{1}{N_{\mathrm{s}}}\sum_{k=1}^{N_{\mathrm{s}}}E_L(\mathbf{R}_k)\]&lt;p&gt;这里 \(N_{\mathrm{s}}\) 是样本数, 与粒子数 \(N\) 不同; Markov 采样的标准误差应按局部能量的自相关作修正.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; Metropolis 采样. 下面考虑如何从 \(P(\mathbf{R})\propto|\phi(\mathbf{R})|^2\) 中取样. 使用 Metropolis 算法时, 取对称的位移提议分布; 如果当前构型为 \(\mathbf{R}\), 提议新构型 \(\mathbf{R}_p=\mathbf{R}+\Delta\mathbf{R}\), 计算比值:&lt;/p&gt;&#10;\[w = \frac{P(\mathbf{R}_p)}{P(\mathbf{R})} = \frac{|\phi(\mathbf{R}_p)|^2}{|\phi(\mathbf{R})|^2}\]&lt;p&gt;若 \(w\geq 1\), 总是接受; 若 \(w\lt 1\), 以概率 \(w\) 接受, 否则拒绝.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 一维谐振子. 以下取无量纲单位, 原势能参数固定为 \(k=2\):&lt;/p&gt;&#10;\[\hat{H}=-\frac{\mathrm{d}^2}{\mathrm{d}x^2}+x^2\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 严格求解波函数为&lt;/p&gt;&#10;\[\phi_0(x) = \frac{1}{\pi^{1/4}}\mathrm{e}^{-x^2/2}\]&lt;p&gt;试探波函数取 \(\alpha&gt;0\):&lt;/p&gt;&#10;\[\phi(x) = \frac{\sqrt{\alpha}}{\pi^{1/4}}\mathrm{e}^{-x^2\alpha^2/2}\]&lt;p&gt;局部能量为&lt;/p&gt;&#10;\[E_L(x)=\alpha^2+x^2(1-\alpha^4)\]&lt;p&gt;于是&lt;/p&gt;&#10;\[\langle \hat{H}\rangle = \int |\phi(x)|^2E_L(x)\,\mathrm{d}x = \frac{\alpha^2}{2}+\frac{1}{2\alpha^2}\]&lt;p&gt;\(\alpha=1\) 时达到最小值, 得到基态能量 \(E_0=1\). 解析积分时必须将波函数归一化; 如果用 Monte Carlo 算法, 则无需显式处理归一化常数.&lt;/p&gt;&#10;&lt;h3 id="810-diffusion-monte-carlo"&gt;8.10 Diffusion Monte Carlo&lt;a class="heading-anchor" href="#810-diffusion-monte-carlo" aria-label="Link to 8.10 Diffusion Monte Carlo" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;DMC(diffusion Monte Carlo) 的核心思想是虚时投影加扩散分支. 令 \(\tau\) 具有能量倒数的量纲, 对 \(H=-D\nabla_R^2+V\), \(D=\hbar^2/(2m)\), 有&#10;&lt;/p&gt;&#10;\[\partial_\tau\Phi=-(H-E_T)\Phi=D\nabla_R^2\Phi-(V-E_T)\Phi.\]&lt;p&gt;&#10;本征态展开给出 \(\Phi(\tau)=\sum_n c_n\exp[-(E_n-E_T)\tau]\phi_n\). 若初态与目标基态重叠非零, 长虚时抑制高能分量. \(E_T\) 调节整体归一化, 不改变理想投影的本征态.&lt;/p&gt;&#10;&lt;p&gt;短时间动能传播是方差 \(2D\Delta\tau\) 的 Gaussian 随机位移; 势能传播用分支或权重 \(\exp[-(V-E_T)\Delta\tau]\) 实现. 对正的引导函数 \(\Psi_T\), 令 \(f=\Psi_T\Phi\), 改写为&#10;&lt;/p&gt;&#10;\[\partial_\tau f=D\nabla_R^2f-\nabla_R\cdot(\vec v_Df)-(E_L-E_T)f,\qquad \vec v_D=2D\nabla_R\ln\Psi_T,\qquad E_L=\frac{H\Psi_T}{\Psi_T}.\]&lt;p&gt;&#10;因此每一步包括漂移、扩散和依据局域能量的权重更新. 引导函数接近本征态时 \(E_L\) 涨落较小, 分支噪声减弱. 长时间采样的是混合分布 \(\Psi_T\Phi_0\), 而不是自动得到 \(|\Phi_0|^2\); 能量混合估计有特殊性质, 一般不对易可观测量仍有试探态偏差.&lt;/p&gt;&#10;&lt;p&gt;费米波函数变号使正权重抽样困难. 固定节点近似把试探节点作为零边界, 在各节点区域内投影. 对实局域 Hamiltonian, 理想固定节点能量是相应费米基态能量的上界; 节点错误不会随时间步减小而消失. 数值验收应分别检查时间步外推、群体大小、热化与自相关、节点依赖, 并用可解的小系统作基准.&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;h2 id="references"&gt;References&lt;a class="heading-anchor" href="#references" aria-label="Link to References" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;Ulrich Schollwöck, &lt;a class="link" href="https://arxiv.org/abs/1008.3477" target="_blank" rel="noopener"&#10; &gt;The density-matrix renormalization group in the age of matrix product states&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;Radford M. Neal, &lt;a class="link" href="https://arxiv.org/abs/1206.1901" target="_blank" rel="noopener"&#10; &gt;MCMC using Hamiltonian dynamics&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;Julien Toulouse, Roland Assaraf and C. J. Umrigar, &lt;a class="link" href="https://arxiv.org/abs/1508.02989" target="_blank" rel="noopener"&#10; &gt;Introduction to the variational and diffusion Monte Carlo methods&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Computational Physics - 4</title><link>https://square-yang.github.io/notes/computational-physics-4/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0800</pubDate><guid>https://square-yang.github.io/notes/computational-physics-4/</guid><description>&lt;!-- Source: Square-Yang/Note-Physics, main, 8c405b9c0d1f59ac996ffac8d2b5568173d697ae, Computational Physics/Computational Physics - 4.md; SHA256 469d46fef3c90723da2dffe4ec4e06dbd15bbad229b3ac21737a4eb48db7fff4. Prepared with scripts/prepare-note.mjs. --&gt;&#10;&lt;h2 id="9-ordinary-differential-equations"&gt;9 Ordinary Differential Equations&lt;a class="heading-anchor" href="#9-ordinary-differential-equations" aria-label="Link to 9 Ordinary Differential Equations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;初值问题: 在某个时间点给定系统的状态, 求解系统在未来时间的演化&lt;/li&gt;&#10;&lt;li&gt;边值问题: 在空间或时间的边界上给定系统的状态, 求解系统在整个区域内的行为&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="91-euler-method"&gt;9.1 Euler Method&lt;a class="heading-anchor" href="#91-euler-method" aria-label="Link to 9.1 Euler Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑一阶常微分方程的初值问题&#10;&lt;/p&gt;&#10;\[\frac{\mathrm{d} y}{\mathrm{d} t}=f(t,y),\qquad a\leq t\leq b,\qquad y(a)=\alpha .\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在等间距网格&#10;&lt;/p&gt;&#10;\[t_i=a+i h,\qquad i=0,1,\cdots,N,\qquad h=\frac{b-a}{N}\]&lt;p&gt;&#10;上, 数值解记为 \(w_i\approx y(t_i)\). 在 \((t_i,t_{i+1})\) 上, 对精确解作 Taylor 展开:&#10;&lt;/p&gt;&#10;\[\begin{aligned} y(t_{i+1}) &amp;= y(t_i)+h y'(t_i)+\frac{h^2}{2}y''(\xi_i)\\ &amp;= y(t_i)+h f(t_i,y(t_i))+\frac{h^2}{2}y''(\xi_i) \qquad \xi_i\in(t_i,t_{i+1}) \end{aligned}\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Euler 法忽略余项, 并把精确值 \(y(t_i)\) 替换为数值近似 \(w_i\), 得到直接递归迭代&#10;&lt;/p&gt;&#10;\[w_0=\alpha,\qquad w_{i+1}=w_i+h f(t_i,w_i),\qquad i=0,1,\cdots,N-1.\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="92-higher-order-taylor-expansion"&gt;9.2 Higher-Order Taylor Expansion&lt;a class="heading-anchor" href="#92-higher-order-taylor-expansion" aria-label="Link to 9.2 Higher-Order Taylor Expansion" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Euler 法是 Taylor 法的一阶截断. 若保留更高阶导数, 有&lt;/p&gt;&#10;\[\begin{aligned} y(t_{i+1}) &amp;=y(t_i)+h y'(t_i)+\frac{h^2}{2!}y''(t_i)+\cdots+\frac{h^n}{n!}y^{(n)}(t_i) +\frac{h^{n+1}}{(n+1)!}y^{(n+1)}(\xi_i)\\ &amp;=y(t_i)+h T^{(n)}(t_i,y(t_i)) +\frac{h^{n+1}}{(n+1)!}f^{(n)}(\xi_i,y(\xi_i)) \end{aligned}\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;数值格点中&#10;&lt;/p&gt;&#10;\[T^{(n)}(t_i,w_i) =f(t_i,w_i)+\frac{h}{2}f'(t_i,w_i)+\cdots+\frac{h^{n-1}}{n!}f^{(n-1)}(t_i,w_i)\]&lt;p&gt;&#10;\(f',f'',\cdots\) 表示沿解轨道的全导数. 于是 \(n\) 阶 Taylor 迭代为&lt;/p&gt;&#10;\[w_0=\alpha,\qquad w_{i+1}=w_i+hT^{(n)}(t_i,w_i),\qquad i=0,1,\cdots,N-1\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;局部截断误差&#10;&lt;/p&gt;&#10;\[\tau_{i+1}(h)=\frac{y(t_{i+1})-y(t_i)-hT^{(n)}(t_i,y(t_i))}{h}=\frac{h^n}{(n+1)!}f^{(n)}(\xi_i,y(\xi_i))\]&lt;p&gt;&#10;按这里除以 \(h\) 的定义, 量级为 \(O(h^n)\); 未除以 \(h\) 的单步缺陷为 \(O(h^{n+1})\). 若导数充分光滑且 \(f\) 对 \(y\) 满足 Lipschitz 条件, 固定积分区间上的全局误差为 \(O(h^n)\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 考虑初值问题&#10;&lt;/p&gt;&#10;\[y'=y-t^2+1,\qquad 0\leq t\leq 2,\qquad y(0)=0.5.\]&#10; &lt;blockquote&gt;&#10; &lt;p&gt;精确解为 \(y(t)=(t+1)^2-\frac{1}{2}\mathrm{e}^{t}\).&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 取二阶 Taylor 法时(注意全导数)&#10;&lt;/p&gt;&#10;\[T^{(2)}(t_i,w_i) =w_i-t_i^2+1+\frac{h}{2}(w_i-t_i^2+1-2t_i)\]&lt;p&gt;取步长 \(h=0.2\), \(t_i=0.2i\), 则&lt;/p&gt;&#10;\[\begin{aligned} w_{i+1} &amp;=w_i+0.2\left[\left(1+\frac{0.2}{2}\right)(w_i-0.04i^2+1)-0.04i\right]\\ &amp;=1.22w_i-0.0088i^2-0.008i+0.22. \end{aligned}\]&#10; &lt;blockquote&gt;&#10; &lt;p&gt;高阶 Taylor 法可以显著减小截断误差, 但代价是需要计算 \(f\) 沿解轨道的高阶全导数. 因此实际上常不如 Runge-Kutta 类方法方便.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="93-runge-kutta-methods"&gt;9.3 Runge-Kutta Methods&lt;a class="heading-anchor" href="#93-runge-kutta-methods" aria-label="Link to 9.3 Runge-Kutta Methods" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Runge-Kutta 方法的思想是用若干次函数值计算来代替 Taylor 法中的显式高阶导数.&lt;/p&gt;&#10;&lt;h4 id="931-midpoint-method"&gt;9.3.1 Midpoint Method&lt;a class="heading-anchor" href="#931-midpoint-method" aria-label="Link to 9.3.1 Midpoint Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;从二阶 Taylor 展开出发&#10;&lt;/p&gt;&#10;\[T^{(2)}(t,y)=f(t,y)+\frac{h}{2}f'(t,y),\]&lt;p&gt;&#10;其中沿解曲线的全导数为&#10;&lt;/p&gt;&#10;\[f'(t,y)=\frac{\mathrm{d}f}{\mathrm{d}t}(t,y) =\frac{\partial f}{\partial t}(t,y)+\frac{\partial f}{\partial y}(t,y)y'(t) =\frac{\partial f}{\partial t}(t,y)+\frac{\partial f}{\partial y}(t,y)f(t,y).\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;若用一个移位函数值 \(a_1 f(t+\alpha_1,y+\beta_1)\) 近似 \(T^{(2)}\), 由一阶展开&#10;&lt;/p&gt;&#10;\[a_1 f(t+\alpha_1,y+\beta_1) \approx a_1 f(t,y)+a_1\alpha_1\frac{\partial f}{\partial t}(t,y) +a_1\beta_1\frac{\partial f}{\partial y}(t,y)\]&lt;p&gt;&#10;与 \(T^{(2)}\) 的系数比较可取&#10;&lt;/p&gt;&#10;\[a_1=1,\qquad \alpha_1=\frac{h}{2},\qquad \beta_1=\frac{h}{2}f(t,y).\]&lt;p&gt;&#10;以对其到 1 阶全导数.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;忽略余项时得到二阶中点法&#10;&lt;/p&gt;&#10;\[w_{i+1}=w_i+h f\left(t_i+\frac{h}{2},w_i+\frac{h}{2}f(t_i,w_i)\right).\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="932-improved-euler-method"&gt;9.3.2 Improved Euler Method&lt;a class="heading-anchor" href="#932-improved-euler-method" aria-label="Link to 9.3.2 Improved Euler Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;另一个二阶形式是改进 Euler 法. 由&lt;/p&gt;&#10;\[y''(t)=\frac{\mathrm{d}}{\mathrm{d}t}f(t,y) =f_t(t,y)+f_y(t,y)y' =f_t+f_y f\]&lt;p&gt;&#10;可得&#10;&lt;/p&gt;&#10;\[y(t+h)=y(t)+h f+\frac{h^2}{2}(f_t+f_y f)+O(h^3).\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;尝试取两个函数值的线性组合作为增率函数:&#10;&lt;/p&gt;&#10;\[\begin{aligned} \Phi &amp;\equiv a_1 f(t,y)+a_2 f(t+\alpha h,y+\beta h f)\\ &amp;=(a_1+a_2)f+a_2\alpha hf_t+a_2\beta hf_yf+\mathcal{O}(h^2) \end{aligned}\]&lt;p&gt;&#10;比较系数, 取 \(a_1=a_2=1/2,\alpha=\beta=1\). 于是&#10;&lt;/p&gt;&#10;\[\Phi=\frac{1}{2}f(t,y)+\frac{1}{2}f(t+h,y+h f).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;结果上, 改进 Euler 法使用初始斜率和 Euler 预测端点斜率的平均:&#10;&lt;/p&gt;&#10;\[w_{i+1}=w_i+\frac{h}{2}\left[f(t_i,w_i)+f(t_{i+1},w_i+h f(t_i,w_i))\right].\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="933-third-order-runge-kutta-method"&gt;9.3.3 Third-Order Runge-Kutta Method&lt;a class="heading-anchor" href="#933-third-order-runge-kutta-method" aria-label="Link to 9.3.3 Third-Order Runge-Kutta Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;更高阶 Runge-Kutta 法继续把 Taylor 目标中的导数信息换成多次函数值. 例如三阶目标为&lt;/p&gt;&#10;\[T^{(3)}(t,y)=f(t,y)+\frac{h}{2}f'(t,y)+\frac{h^2}{6}f''(t,y).\]&lt;p&gt;经过推导可得到三阶公式&lt;/p&gt;&#10;\[\begin{aligned} w_0&amp;=\alpha,\\ k_1&amp;=h f(t_i,w_i),\\ k_2&amp;=h f\left(t_i+\frac{h}{3},w_i+\frac{k_1}{3}\right),\\ k_3&amp;=h f\left(t_i+\frac{2h}{3},w_i+\frac{2k_2}{3}\right),\\ w_{i+1}&amp;=w_i+\frac{1}{4}(k_1+3k_3), \end{aligned}\]&lt;p&gt;其中 \(i=0,1,\cdots,N-1\).&lt;/p&gt;&#10;&lt;p&gt;&lt;a id="cp-rk4"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h4 id="934-fourth-order-runge-kutta-method"&gt;9.3.4 Fourth-Order Runge-Kutta Method&lt;a class="heading-anchor" href="#934-fourth-order-runge-kutta-method" aria-label="Link to 9.3.4 Fourth-Order Runge-Kutta Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;经典四阶 Runge-Kutta 方法, 也就是 RK4, 为&lt;/p&gt;&#10;\[\begin{aligned} w_0&amp;=\alpha,\\ k_1&amp;=h f(t_i,w_i),\\ k_2&amp;=h f\left(t_i+\frac{h}{2},w_i+\frac{k_1}{2}\right),\\ k_3&amp;=h f\left(t_i+\frac{h}{2},w_i+\frac{k_2}{2}\right),\\ k_4&amp;=h f(t_{i+1},w_i+k_3),\\ w_{i+1}&amp;=w_i+\frac{1}{6}(k_1+2k_2+2k_3+k_4). \end{aligned}\]&lt;p&gt;RK4 在一般初值问题中使用广泛, 因为它不需要显式求高阶导数, 同时具有四阶精度. 对向量初值问题, 将 \(w_j,f,k_s\) 换成向量即可使用相同权重; 每个 stage 必须使用同一中间状态计算全部分量, 不能逐分量更新后混用新旧状态.&lt;/p&gt;&#10;&lt;h3 id="94-predictor-corrector-adams-methods-"&gt;9.4 Predictor-Corrector Adams Methods *&lt;a class="heading-anchor" href="#94-predictor-corrector-adams-methods-" aria-label="Link to 9.4 Predictor-Corrector Adams Methods *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;多步法利用多个历史点来外推或插值 \(f(t,y)\), 再对一步区间上的积分进行近似. 与单步 RK(Runge-Kutta) 法相比, 它在每一步可以复用过去已经计算过的斜率, 但需要若干初始点启动.&lt;/p&gt;&#10;&lt;h4 id="941-adams-moulton-fourth-order-implicit-method"&gt;9.4.1 Adams-Moulton Fourth-Order Implicit Method&lt;a class="heading-anchor" href="#941-adams-moulton-fourth-order-implicit-method" aria-label="Link to 9.4.1 Adams-Moulton Fourth-Order Implicit Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;三步四阶隐式 Adams-Moulton 格式为&lt;/p&gt;&#10;\[\begin{aligned} w_0&amp;=\alpha,\qquad w_1=\alpha_1,\qquad w_2=\alpha_2,\\ F_i&amp;=f(t_i,w_i),\\ w_{i+1}&amp;=w_i+\frac{h}{24}(9F_{i+1}+19F_i-5F_{i-1}+F_{i-2}). \end{aligned}\]&lt;p&gt;这里 \(w_{i+1}\) 同时出现在左边和右边, 因而是 implicit method.&lt;/p&gt;&#10;&lt;h4 id="942-adams-bashforth-third-order-explicit-method"&gt;9.4.2 Adams-Bashforth Third-Order Explicit Method&lt;a class="heading-anchor" href="#942-adams-bashforth-third-order-explicit-method" aria-label="Link to 9.4.2 Adams-Bashforth Third-Order Explicit Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;相应的三步显式 Adams-Bashforth 格式为&lt;/p&gt;&#10;\[\begin{aligned} w_0&amp;=\alpha,\qquad w_1=\alpha_1,\qquad w_2=\alpha_2,\\ F_i&amp;=f(t_i,w_i),\\ w_{i+1} &amp;=w_i+\frac{h}{12}(23F_i-16F_{i-1}+5F_{i-2}). \end{aligned}\]&lt;h4 id="943-adams-bashforth-fourth-order-explicit-method"&gt;9.4.3 Adams-Bashforth Fourth-Order Explicit Method&lt;a class="heading-anchor" href="#943-adams-bashforth-fourth-order-explicit-method" aria-label="Link to 9.4.3 Adams-Bashforth Fourth-Order Explicit Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;四步显式 Adams-Bashforth 格式为&lt;/p&gt;&#10;\[\begin{aligned} w_0&amp;=\alpha,\qquad w_1=\alpha_1,\qquad w_2=\alpha_2,\qquad w_3=\alpha_3,\\ F_i&amp;=f(t_i,w_i),\\ w_{i+1} &amp;=w_i+\frac{h}{24}(55F_i-59F_{i-1}+37F_{i-2}-9F_{i-3}). \end{aligned}\]&lt;p&gt;实际计算时, 可以先用四阶 Runge-Kutta 方法计算 \(w_0,w_1,w_2,w_3\). 之后用四步 Adams-Bashforth 作 predictor:&lt;/p&gt;&#10;\[w_{4p}=w_3+\frac{h}{24}(55F_3-59F_2+37F_1-9F_0).\]&lt;p&gt;再用三步隐式 Adams-Moulton 作 corrector, 把未知的 \(w_4\) 先由 predictor \(w_{4p}\) 代入右端:&lt;/p&gt;&#10;\[F_{4p}=f(t_4,w_{4p}),\qquad w_4=w_3+\frac{h}{24}(9F_{4p}+19F_3-5F_2+F_1).\]&lt;p&gt;下一步使用修正值重新计算 \(F_4=f(t_4,w_4)\), 再继续推进. 这里只作一次校正, 因而整个 predictor-corrector 递推是显式的, 并没有严格求解隐式 Adams-Moulton 方程. 在 \(f\) 光滑、启动值具有四阶精度的条件下, 它仍保持四阶精度, 但稳定域与完全求解的隐式格式不同.&lt;/p&gt;&#10;&lt;p&gt;&lt;a id="cp-vector-rk4"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="95-extended-fourth-order-runge-kutta-method-"&gt;9.5 Extended Fourth-Order Runge-Kutta Method *&lt;a class="heading-anchor" href="#95-extended-fourth-order-runge-kutta-method-" aria-label="Link to 9.5 Extended Fourth-Order Runge-Kutta Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;常微分方程组的初值问题写成&lt;/p&gt;&#10;\[\frac{\mathrm{d}\mathbf{u}}{\mathrm{d}t} =\mathbf{f}(t,\mathbf{u}), \qquad \mathbf{u}(a)=\boldsymbol{\alpha}, \qquad \mathbf{u}=(u_1,\cdots,u_m)^{\mathsf{T}}, \qquad a\leq t\leq b.\]&lt;p&gt;单变量 RK4 的四个 stage 和权重可直接推广到向量. 设&lt;/p&gt;&#10;\[\mathbf{w}_j=(w_{1,j},\cdots,w_{m,j})^{\mathsf{T}} \approx \mathbf{u}(t_j), \qquad \mathbf{w}_0=\boldsymbol{\alpha}.\]&lt;p&gt;按 stage 定义&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{k}_1&amp;=h\mathbf{f}(t_j,\mathbf{w}_j),\\ \mathbf{k}_2&amp;=h\mathbf{f}\left(t_j+\frac{h}{2},\mathbf{w}_j+\frac{\mathbf{k}_1}{2}\right),\\ \mathbf{k}_3&amp;=h\mathbf{f}\left(t_j+\frac{h}{2},\mathbf{w}_j+\frac{\mathbf{k}_2}{2}\right),\\ \mathbf{k}_4&amp;=h\mathbf{f}(t_j+h,\mathbf{w}_j+\mathbf{k}_3). \end{aligned}\]&lt;p&gt;递推公式为&lt;/p&gt;&#10;\[\mathbf{w}_{j+1} =\mathbf{w}_j+\frac{1}{6}(\mathbf{k}_1+2\mathbf{k}_2+2\mathbf{k}_3+\mathbf{k}_4).\]&lt;p&gt;第 \(\ell\) 个分量就是原来的 \(k_{s,\ell}\) 公式. 由于 \(\mathbf{k}_2\), \(\mathbf{k}_3\), \(\mathbf{k}_4\) 都依赖前一 stage 中所有变量的增量, 方程组必须按 stage 整体推进.&lt;/p&gt;&#10;&lt;h3 id="96-higher-order-ordinary-differential-equations"&gt;9.6 Higher-Order Ordinary Differential Equations&lt;a class="heading-anchor" href="#96-higher-order-ordinary-differential-equations" aria-label="Link to 9.6 Higher-Order Ordinary Differential Equations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;高阶方程&lt;/p&gt;&#10;\[y^{(m)}(t)=f(t,y,y',\cdots,y^{(m-1)}),\qquad a\leq t\leq b,\]&lt;p&gt;初值&lt;/p&gt;&#10;\[y(a)=\alpha_1,\qquad y'(a)=\alpha_2,\qquad \cdots\qquad y^{(m-1)}(a)=\alpha_m\]&lt;p&gt;也可化为一阶.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;令&#10;&#10;\[u_1(t)=y(t),\qquad u_2(t)=y'(t),\qquad \cdots,\qquad u_m(t)=y^{(m-1)}(t),\]&#10;则&#10;&#10;\[\begin{cases} u_1'=u_2,\\ u_2'=u_3,\\ \cdots\\ u_{m-1}'=u_m,\\ u_m'=f(t,u_1,u_2,\cdots,u_m). \end{cases}\]&#10;相应初值为&#10;&#10;\[u_1(a)=\alpha_1,\qquad u_2(a)=\alpha_2,\qquad \cdots,\qquad u_m(a)=\alpha_m.\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 将二阶方程化为一阶系统&#10;&lt;/p&gt;&#10;\[y''-2y'+2y=\mathrm{e}^{2t}\sin t,\qquad 0\leq t\leq 1,\qquad y(0)=-0.4,\qquad y'(0)=-0.6\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 取&#10;&lt;/p&gt;&#10;\[u_1(t)=y(t),\qquad u_2(t)=y'(t),\]&lt;p&gt;得到&lt;/p&gt;&#10;\[\begin{aligned} u_1'(t)&amp;=u_2(t),\\ u_2'(t)&amp;=\mathrm{e}^{2t}\sin t-2u_1(t)+2u_2(t), \end{aligned} \qquad u_1(0)=-0.4,\quad u_2(0)=-0.6.\]&lt;p&gt;试用 \(h=0.1\) 的四阶 Runge-Kutta 求第一步, 初始值为 \(w_{1,0}=-0.4\), \(w_{2,0}=-0.6\), \(t_0=0\). stage 增量为&lt;/p&gt;&#10;\[\mathbf{F}(t,\mathbf{u}) = \begin{pmatrix} u_2\\ \mathrm{e}^{2t}\sin t-2u_1+2u_2 \end{pmatrix}.\]&lt;p&gt;代入 RK4 stage 后得到&lt;/p&gt;&#10;\[\begin{aligned} \mathbf{k}_1&amp;=(-0.06,\,-0.04)^{\mathsf{T}},\\ \mathbf{k}_2&amp;=(-0.062,\,-0.03247644756)^{\mathsf{T}},\\ \mathbf{k}_3&amp;=(-0.06162382238,\,-0.03152409232)^{\mathsf{T}},\\ \mathbf{k}_4&amp;=(-0.06315240923,\,-0.02178637294)^{\mathsf{T}}. \end{aligned}\]&lt;p&gt;因此&lt;/p&gt;&#10;\[\mathbf{w}_1 =\mathbf{w}_0+\frac{1}{6}(\mathbf{k}_1+2\mathbf{k}_2+2\mathbf{k}_3+\mathbf{k}_4) =(-0.4617333423,\,-0.6316312421)^{\mathsf{T}}.\]&lt;h3 id="97-stiff-differential-equations"&gt;9.7 Stiff Differential Equations&lt;a class="heading-anchor" href="#97-stiff-differential-equations" aria-label="Link to 9.7 Stiff Differential Equations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;stiff equations 包含衰减尺度相差很大的模式, 因而真实解中快速衰减的分量可能很小, 但显式格式仍会被这些快模态的稳定性限制住. 此时显式方法需要极小步长, 否则很容易发散不收敛. 隐式方法的稳定性更适合处理此类问题.&lt;/p&gt;&#10;&lt;p&gt;对测试方程 \(y'=\lambda y\), 令 \(z=h\lambda\), 显式 Euler 的放大因子为 \(R(z)=1+z\), 稳定条件为 \(|1+z|\le1\); 隐式 Euler 为 \(R(z)=(1-z)^{-1}\), 在整个左半平面稳定且 \(z\to-\infty\) 时趋于零. 因而负实快模态会严格限制显式 Euler 的步长, 而隐式 Euler 可以将其强烈衰减.&lt;/p&gt;&#10;&lt;h4 id="971-implicit-trapezoidal-method"&gt;9.7.1 Implicit Trapezoidal Method&lt;a class="heading-anchor" href="#971-implicit-trapezoidal-method" aria-label="Link to 9.7.1 Implicit Trapezoidal Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;隐式梯形法使用梯形公式近似:&lt;/p&gt;&#10;\[w_0=\alpha,\qquad w_{j+1}=w_j+\frac{h}{2}\left[f(t_{j+1},w_{j+1})+f(t_j,w_j)\right].\]&lt;p&gt;因为 \(w_{j+1}\) 出现在右端, 每一步需要求解&lt;/p&gt;&#10;\[F(w)=w-w_j-\frac{h}{2}\left[f(t_{j+1},w)+f(t_j,w_j)\right]=0.\]&lt;p&gt;Newton method 的迭代写为&lt;/p&gt;&#10;\[w_{j+1}^{(k)} =w_{j+1}^{(k-1)}-\frac{F(w_{j+1}^{(k-1)})}{F'(w_{j+1}^{(k-1)})}, \qquad F'(w)=1-\frac{h}{2}f_y(t_{j+1},w).\]&lt;p&gt;对测试方程 \(y'=\lambda y\), 梯形法的放大因子为 \(R(z)=(1+z/2)/(1-z/2)\), 其中 \(z=h\lambda\). 当 \(\operatorname{Re}z\le0\) 时有 \(|R(z)|\le1\), 即 A 稳定; 但 \(z\to-\infty\) 时 \(R(z)\to-1\), 对极快衰减模式可能产生数值振荡, 不具备 L 稳定性.&lt;/p&gt;&#10;&lt;h4 id="972-gear-method-"&gt;9.7.2 Gear Method *&lt;a class="heading-anchor" href="#972-gear-method-" aria-label="Link to 9.7.2 Gear Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;Gear 方法使用后向差分公式 BDF(backward differentiation formula). 以下取固定步长 \(h\), 并把当前值的系数归一为 1. 一般写成&lt;/p&gt;&#10;\[\mathbf{y}_{n+k}-h\beta_k\mathbf{f}(x_{n+k},\mathbf{y}_{n+k})=\mathbf{g}_{n+k}, \qquad \mathbf{g}_{n+k}=-\sum_{j=0}^{k-1}\alpha_j\mathbf{y}_{n+j}.\]&lt;p&gt;固定步长 BDF 在 1–6 阶满足零稳定性; 其中一阶和二阶为 A 稳定, 三至六阶为 \(A(\alpha)\) 稳定, 稳定域包含负实轴周围的扇形区域, 但不包含整个左半平面, 不能对所有左半平面特征值任意取步长. 更高阶 BDF 不满足零稳定性.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;二阶和三阶例子为&lt;/p&gt;&#10;\[\begin{aligned} y_{n+2}&amp;=\frac{4y_{n+1}-y_n+2hf_{n+2}}{3},\\ y_{n+3}&amp;=\frac{18y_{n+2}-9y_{n+1}+2y_n+6hf_{n+3}}{11}. \end{aligned}\]&lt;p&gt;对向量问题, 当前步未知量可用 Newton method 求解:&lt;/p&gt;&#10;\[\mathbf{y}_{n+k}^{[s+1]} =\mathbf{y}_{n+k}^{[s]} -\left[\mathbf{I}-h\beta_k\frac{\partial \mathbf{f}}{\partial \mathbf{y}}(x_{n+k},\mathbf{y}_{n+k}^{[s]})\right]^{-1} \left[\mathbf{y}_{n+k}^{[s]}-h\beta_k\mathbf{f}(x_{n+k},\mathbf{y}_{n+k}^{[s]})-\mathbf{g}_{n+k}\right].\]&lt;p&gt;&lt;a id="cp-euler-stability"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="98-stability-of-explicit-and-implicit-euler-methods"&gt;9.8 Stability of Explicit and Implicit Euler Methods&lt;a class="heading-anchor" href="#98-stability-of-explicit-and-implicit-euler-methods" aria-label="Link to 9.8 Stability of Explicit and Implicit Euler Methods" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 测试方程&#10;&lt;/p&gt;&#10;\[y'=-cy,\qquad c&gt;0 \implies y(t)=y_0\mathrm{e}^{-ct}.\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 显式差分给出&#10;&lt;/p&gt;&#10;\[y_{n+1}=y_n+h y_n'=(1-ch)y_n \implies y_n=(1-ch)^n y_0.\]&lt;p&gt;&#10;若要求固定步长下数值解随 \(n\to\infty\) 衰减, 必须有 \(0\lt ch\lt 2\). 这是绝对稳定条件; 对固定时间区间逼近精确解的收敛则指 \(h\to0\). \(c\) 很大时, 显式 Euler 法要求步长 \(h\) 很小, 否则会不稳定.&lt;/p&gt;&#10;&lt;p&gt;而隐式差分给出&#10;&lt;/p&gt;&#10;\[y_{n+1}=y_n+h y_{n+1}'=y_n-chy_{n+1} \implies y_{n+1}=\frac{y_n}{1+ch},\qquad y_n=\frac{y_0}{(1+ch)^n}.\]&lt;p&gt;&#10;因此隐式 Euler 法对该测试方程无条件稳定, 更适合刚性方程.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 上例推广到线性系统 \(\mathbf{y}'=-\mathbf{C}\mathbf{y}\).&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 先求严格解: 若 \(\mathbf{T}^{-1}\mathbf{C}\mathbf{T}=\operatorname{diag}(\lambda_0,\cdots,\lambda_{N-1})\), 令&#10;&lt;/p&gt;&#10;\[\mathbf{z}=\mathbf{T}^{-1}\mathbf{y} \implies \mathbf{z}'=-\operatorname{diag}(\lambda_0,\cdots,\lambda_{N-1})\mathbf{z}\]&lt;p&gt;&#10;解为&#10;&lt;/p&gt;&#10;\[\mathbf{y}(x)=\mathbf{T}\operatorname{diag}\left(\mathrm{e}^{-\lambda_0 x},\cdots,\mathrm{e}^{-\lambda_{N-1}x}\right)\mathbf{T}^{-1}\mathbf{y}_0.\]&lt;p&gt;&#10;当所有 \(\lambda_i\) 的实部为正时, 连续系统稳定. 刚性系统的特征值实部相差很大, 因而显式方法的步长会被最大特征值限制.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;显式差分满足&#10;&lt;/p&gt;&#10;\[\mathbf{y}_{n+1}=(\mathbf{I}-h\mathbf{C})\mathbf{y}_n,\qquad \mathbf{y}_n=(\mathbf{I}-h\mathbf{C})^n\mathbf{y}_0.\]&lt;p&gt;&#10;若沿特征向量展开&#10;&lt;/p&gt;&#10;\[\mathbf{y}_0=\sum_{i=0}^{N-1}\alpha_i\boldsymbol{\xi}_i \implies \mathbf{y}_n=\sum_{i=0}^{N-1}\alpha_i(1-h\lambda_i)^n\boldsymbol{\xi}_i.\]&lt;p&gt;&#10;稳定条件为 \(|1-h\lambda_i|\lt 1\); 若特征值均为正实数, 则化为&#10;&lt;/p&gt;&#10;\[|1-h\lambda_i|\lt 1 \implies h\lt \frac{2}{\lambda_{\max}}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;隐式差分则给出&#10;&lt;/p&gt;&#10;\[\mathbf{y}_{n+1}=(\mathbf{I}+h\mathbf{C})^{-1}\mathbf{y}_n, \qquad |1+h\lambda_i|^{-1}\lt 1,\qquad i=0,\cdots,N-1.\]&lt;p&gt;&#10;没有最大特征值步长限制.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="99-linear-shooting-method"&gt;9.9 Linear Shooting Method&lt;a class="heading-anchor" href="#99-linear-shooting-method" aria-label="Link to 9.9 Linear Shooting Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑二阶线性边值问题&lt;/p&gt;&#10;\[y''=p(x)y'+q(x)y+r(x),\qquad a\leq x\leq b, \qquad y(a)=\alpha,\qquad y(b)=\beta.\]&lt;p&gt;打靶法把未知初始斜率 \(y'(a)\) 视为待定参数 \(t\), 通过调整 \(t\) 使解命中右端边界, 从而把边值问题转化为初值问题.&lt;/p&gt;&#10;&lt;p&gt;在线性情形, 可用叠加原理将原解拆成两部分:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;非齐次特解 \(y_1\): 满足原方程, 取零初始斜率&#10;&lt;/p&gt;&#10;\[y_1''=p(x)y_1'+q(x)y_1+r(x),\qquad y_1(a)=\alpha,\quad y_1'(a)=0.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;齐次补解 \(y_2\): 满足齐次方程, 取单位初始斜率&#10;&lt;/p&gt;&#10;\[y_2''=p(x)y_2'+q(x)y_2,\qquad y_2(a)=0,\quad y_2'(a)=1.\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;则任意组合&lt;/p&gt;&#10;\[y(x)=y_1(x)+t\cdot y_2(x)\]&lt;p&gt;都满足原方程和左边界 \(y(a)=\alpha\) (因为 \(y_2(a)=0\)), 且初始斜率恰好是 \(y'(a)=t\). 代入右边界:&lt;/p&gt;&#10;\[y(b)=y_1(b)+t\,y_2(b)=\beta \;\Longrightarrow\; t=\frac{\beta-y_1(b)}{y_2(b)}.\]&lt;p&gt;若 \(y_2(b)\ne0\), 原问题的唯一解为&lt;/p&gt;&#10;\[y(x)=y_1(x)+\frac{\beta-y_1(b)}{y_2(b)}\,y_2(x).\]&lt;p&gt;若 \(y_2(b)=0\), 则 \(\beta\ne y_1(b)\) 时无解, \(\beta=y_1(b)\) 时初始斜率不能由右边界唯一确定, 存在一族解. 这些结论假设两个初值问题在整个区间上存在唯一解.&lt;/p&gt;&#10;&lt;p&gt;实际计算时分别算出 \(y_1(x)\) 和 \(y_2(x)\), 再按上式混合. 这就是线性打靶法.&lt;/p&gt;&#10;&lt;h3 id="910-nonlinear-shooting-method-"&gt;9.10 Nonlinear Shooting Method *&lt;a class="heading-anchor" href="#910-nonlinear-shooting-method-" aria-label="Link to 9.10 Nonlinear Shooting Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑二阶非线性边值问题&lt;/p&gt;&#10;\[y''=f(x,y,y'),\qquad a\leq x\leq b, \qquad y(a)=\alpha,\qquad y(b)=\beta.\]&lt;p&gt;由于 \(x=a\) 处的导数未知, 设初始斜率 \(y'(a)=t\) 为待定参数, 转化为初值问题&lt;/p&gt;&#10;\[y''=f(x,y,y'),\qquad y(a)=\alpha,\qquad y'(a)=t.\]&lt;p&gt;目标是调节 \(t\), 使数值解出的 \(y(b,t)\) 满足&lt;/p&gt;&#10;\[F(t)=y(b,t)-\beta=0.\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;割线法:&#10;&lt;/p&gt;&#10;\[t_k=t_{k-1} -\frac{F(t_{k-1})(t_{k-1}-t_{k-2})} {F(t_{k-1})-F(t_{k-2})}, \qquad k=2,3,\cdots.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Newton method&#10;&lt;/p&gt;&#10;\[t_k=t_{k-1}-\frac{F(t_{k-1})}{F'(t_{k-1})}\]&lt;p&gt;&#10;但需要知道解对初始斜率的灵敏度. 对 \(y''(x,t)=f(x,y(x,t),y'(x,t))\) 关于参数 \(t\) 求导, 得&#10;&lt;/p&gt;&#10;\[\frac{\partial y''}{\partial t} =\frac{\partial f}{\partial y}\frac{\partial y}{\partial t} +\frac{\partial f}{\partial y'}\frac{\partial y'}{\partial t}.\]&lt;p&gt;&#10;令&#10;&lt;/p&gt;&#10;\[z(x,t)=\frac{\partial y}{\partial t}(x,t), \qquad F'(t)=z(b,t),\]&lt;p&gt;&#10;则灵敏度方程为&#10;&lt;/p&gt;&#10;\[z''(x,t)=f_y(x,y,y')z(x,t)+f_{y'}(x,y,y')z'(x,t), \qquad a\leq x\leq b.\]&lt;p&gt;&#10;由于 \(y(a,t)=\alpha\) 不依赖 \(t\), 而 \(y'(a,t)=t\), 初值为&#10;&lt;/p&gt;&#10;\[z(a,t)=0,\qquad z'(a,t)=1.\]&lt;p&gt;&#10;于是 Newton 递推可写为&#10;&lt;/p&gt;&#10;\[t_k=t_{k-1}-\frac{F(t_{k-1})}{z(b,t_{k-1})}.\]&lt;p&gt;&#10;在每个试探 \(t\) 下, 同时求解 \(y(b,t)\) 和 \(z(b,t)\), 再用它们修正 \(t\). 因此 shooting method 把边值问题转化为一系列初值问题.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="911-numerov-method-"&gt;9.11 Numerov Method *&lt;a class="heading-anchor" href="#911-numerov-method-" aria-label="Link to 9.11 Numerov Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Numerov 方法针对&lt;/p&gt;&#10;\[y''(x)=f(x)y(x)\]&lt;p&gt;这种不含一阶导数的二阶方程.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;从 Taylor 展开到六阶开始:&#10;&lt;/p&gt;&#10;\[y(x+h)+y(x-h)=2y(x)+h^2y''(x)+\frac{h^4}{12}y^{(4)}(x)+\frac{h^6}{360}y^{(6)}(x)+O(h^8).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;引入辅助函数&#10;&lt;/p&gt;&#10;\[w(x)=\left[1-\frac{h^2}{12}f(x)\right]y(x).\]&lt;p&gt;&#10;用中心差分近似&#10;&lt;/p&gt;&#10;\[y^{(4)}(x)\approx\frac{y''(x+h)-2y''(x)+y''(x-h)}{h^2},\]&lt;p&gt;&#10;可得 Numerov 递推&#10;&lt;/p&gt;&#10;\[w(x+h)+w(x-h)-2w(x)=h^2f(x)y(x)+O(h^6).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;起点公式为&#10;&lt;/p&gt;&#10;\[2h y'(0)=\left[1-\frac{h^2}{6}f(h)\right]y(h)-\left[1-\frac{h^2}{6}f(-h)\right]y(-h)+O(h^5).\]&lt;p&gt;&#10;递推在起点给出&#10;&lt;/p&gt;&#10;\[\left[1-\frac{h^2}{12}f(h)\right]y(h)+\left[1-\frac{h^2}{12}f(-h)\right]y(-h) =\left[2+\frac{5h^2}{6}f(0)\right]y(0)+O(h^6).\]&lt;p&gt;&#10;将该式乘以 \(1-h^2f(-h)/6\), 将起点导数式乘以 \(1-h^2f(-h)/12\), 再相加以消去 \(y(-h)\). 假设 \(f\) 在起点两侧充分光滑且下式的 \(B\ne0\), 得 \(y(h)=A/B+O(h^5)\), 其中&#10;&lt;/p&gt;&#10;\[\begin{aligned} A&amp;=\left[2+\frac{5h^2}{6}f(0)\right]\left[1-\frac{h^2}{6}f(-h)\right]y(0)+2h y'(0)\left[1-\frac{h^2}{12}f(-h)\right],\\ B&amp;=\left[1-\frac{h^2}{12}f(h)\right]\left[1-\frac{h^2}{6}f(-h)\right]+\left[1-\frac{h^2}{12}f(-h)\right]\left[1-\frac{h^2}{6}f(h)\right]. \end{aligned}\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Numerov 方法也可用于&lt;/p&gt;&#10;\[y''(x)+k(x)y(x)=F(x),\qquad a\leq x\leq b, \qquad y(a)=\alpha,\qquad y(b)=\beta.\]&lt;ul&gt;&#10;&lt;li&gt;二阶导数可写作&#10;&#10;\[y''(x)=\frac{y(x+h)+y(x-h)-2y(x)}{h^2}-\frac{h^2}{12}y^{(4)}(x)+O(h^4).\]&#10;由 \(y''(x)=-k(x)y(x)+F(x)\), 得&#10;&#10;\[y^{(4)}(x)=-\frac{\mathrm{d}^2}{\mathrm{d}x^2}\left(ky-F\right).\]&#10;中心差分近似给出&#10;&#10;\[g_i=k_i y_i-F_i,\qquad \frac{\mathrm{d}^2}{\mathrm{d}x^2}(ky-F)_i \approx\frac{g_{i+1}-2g_i+g_{i-1}}{h^2}.\]&#10;代入并整理, 得递推公式&#10;&#10;\[\left(1+\frac{h^2}{12}k_{i+1}\right)y_{i+1} -2\left(1-\frac{5h^2}{12}k_i\right)y_i +\left(1+\frac{h^2}{12}k_{i-1}\right)y_{i-1} =\frac{h^2}{12}(F_{i+1}+10F_i+F_{i-1})+O(h^6).\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="912-green-function-method-"&gt;9.12 Green Function Method *&lt;a class="heading-anchor" href="#912-green-function-method-" aria-label="Link to 9.12 Green Function Method *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Green 函数法把线性边值问题 \(L_xu(x)=f(x)\) 写成线性响应形式.&lt;/p&gt;&#10;&lt;p&gt;若 \(G(x,s)\) 满足 \(L_xG(x,s)=\delta(x-s)\) 并满足同类齐次边界条件, 则解可以写为&#10;&lt;/p&gt;&#10;\[u(x)=\int G(x,s)f(s)\,\mathrm{d}s.\]&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&#10;&lt;/p&gt;&#10;\[-u''(x)=f(x),\qquad x\in(0,1),\qquad u(0)=u(1)=0\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 作不定积分得到&#10;&lt;/p&gt;&#10;\[\begin{aligned} u(x) &amp;= c_1+c_2x-\int_0^x\left(\int_0^y f(z)\,\mathrm{d}z\right)\mathrm{d}y\\ &amp;= c_1+c_2x-\int_0^x (x-z)f(z)\,\mathrm{d}z \end{aligned}\]&lt;p&gt;由边条件得&#10;&lt;/p&gt;&#10;\[c_1=0, \qquad c_2=\int_0^1 (1-y)f(y)\,\mathrm{d}y.\]&lt;p&gt;于是&lt;/p&gt;&#10;\[\begin{aligned} u(x) &amp;= x\int_0^1(1-y)f(y)\,\mathrm{d}y-\int_0^x(x-y)f(y)\,\mathrm{d}y\\ &amp;= \int_0^1G(x,y)f(y)\,\mathrm{d}y, \qquad G(x,y)= \begin{cases} y(1-x), &amp; 0\leq y\leq x\\ x(1-y), &amp; x\leq y\leq 1 \end{cases} \end{aligned}\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\(G\) 受边条件&#10;&lt;/p&gt;&#10;\[G(0,y)=G(1,y)=G(x,0)=G(x,1)=0\]&lt;p&gt;&#10;约束, 且在 \(x=y\) 处连续. 在 \(x=y\) 处导数有跳跃&#10;&lt;/p&gt;&#10;\[\left.\frac{\mathrm{d}G}{\mathrm{d}x}\right|_{x=y+\varepsilon} -\left.\frac{\mathrm{d}G}{\mathrm{d}x}\right|_{x=y-\varepsilon} =-1\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;它可以用齐次方程 \(-u''=0\) 的两个解重新表达:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;\(u_\lt (x)=x\) 从左端出发, 满足左边界条件 \(u_\lt (0)=0\).&lt;/li&gt;&#10;&lt;li&gt;\(u_&gt;(x)=1-x\) 从右端出发, 满足右边界条件 \(u_&gt;(1)=0\).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;当 \(y\leq x\) 时, \(G=y(1-x)=u_\lt (y)\,u_&gt;(x)\); 当 \(x\leq y\) 时, \(G=x(1-y)=u_\lt (x)\,u_&gt;(y)\). 归一化因子来自 \(L_xG(x,y)=\delta(x-y)\). 由 \(a_2=-1\)&#10;&lt;/p&gt;&#10;\[G(x,y)=\frac{1}{a_2(y)W(y)}\begin{cases} u_\lt (y)\,u_&gt;(x), &amp; y\leq x\\ u_\lt (x)\,u_&gt;(y), &amp; x\leq y \end{cases}\]&lt;p&gt;&#10;其中 Wronskian 为&#10;&lt;/p&gt;&#10;\[W(y)=u_\lt (y)u_&gt;'(y)-u_\lt '(y)u_&gt;(y) =y\cdot(-1)-1\cdot(1-y)=-1.\]&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Green 函数由两个分别满足左右边界条件的齐次解拼成, 在源点 \(x=y\) 处通过 Wronskian 匹配. 并受导数跳跃条件约束.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;在数值计算中, 若齐次方程不含一阶导数项, 可用 Numerov 分别从左向右积分得到 \(u_\lt \), 从右向左积分得到 \(u_&gt;\). 若含一阶导数项, 须先通过变量变换消去该项, 或直接用适用的一阶系统积分法. 在齐次边值问题没有非零解的条件下, 计算 Wronskian 后在网格上构造 \(G(x_i,x_j)\), 最后用求积近似&lt;/p&gt;&#10;\[u(x_i)\approx \sum_j w_jG(x_i,x_j)f(x_j).\]&lt;p&gt;&lt;strong&gt;一般的二阶线性边值问题&lt;/strong&gt; 考虑&lt;/p&gt;&#10;\[\frac{\mathrm{d}^2y}{\mathrm{d}x^2} +a_1(x)\frac{\mathrm{d}y}{\mathrm{d}x} +a_0(x)y=f(x), \qquad B_a[y]=0,\qquad B_b[y]=0.\]&lt;p&gt;其中 \(B_a,B_b\) 表示左右端的线性边界条件&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Dirichlet 边界条件对应 \(B_a[y]=y(a)\), \(B_b[y]=y(b)\);&lt;/li&gt;&#10;&lt;li&gt;Robin 边界条件可写成 \(B_a[y]=\alpha_a y(a)+\beta_a y'(a)\), \(B_b[y]=\alpha_b y(b)+\beta_b y'(b)\).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;相应齐次方程&lt;/p&gt;&#10;\[\frac{\mathrm{d}^2y}{\mathrm{d}x^2} +a_1(x)\frac{\mathrm{d}y}{\mathrm{d}x} +a_0(x)y=0\]&lt;p&gt;设对应的齐次边值问题没有非零解. 取两个齐次解 \(y_1,y_2\), 使 \(y_1\) 满足 \(a\) 端边界条件, \(y_2\) 满足 \(b\) 端边界条件. 由常数变易法(variation of parameters)可写为&lt;/p&gt;&#10;\[y_p(x)=c_1(x)y_1(x)+c_2(x)y_2(x),\]&lt;p&gt;可得&lt;/p&gt;&#10;\[y(x)= \int_a^x \frac{y_1(s)y_2(x)f(s)}{W(y_1,y_2)(s)}\,\mathrm{d}s + \int_x^b \frac{y_1(x)y_2(s)f(s)}{W(y_1,y_2)(s)}\,\mathrm{d}s.\]&lt;p&gt;因此进一步给出解的叠加表示为&lt;/p&gt;&#10;\[y(x)=\int_a^b G(x,s)f(s)\,\mathrm{d}s, \qquad G(x,s)= \begin{cases} \displaystyle \frac{y_1(s)y_2(x)}{W(y_1,y_2)(s)}, &amp; a\leq s\leq x\leq b,\\[8pt] \displaystyle \frac{y_1(x)y_2(s)}{W(y_1,y_2)(s)}, &amp; a\leq x\leq s\leq b, \end{cases}\]&lt;p&gt;Green 函数 \(G\) 是线性响应函数, 与外场 \(f\) 无关; 源项只通过最后的积分进入解.&lt;/p&gt;&#10;&lt;h3 id="913-finite-difference-method-for-odes"&gt;9.13 Finite-Difference Method for ODEs&lt;a class="heading-anchor" href="#913-finite-difference-method-for-odes" aria-label="Link to 9.13 Finite-Difference Method for ODEs" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;考虑边值问题&lt;/p&gt;&#10;\[y''(x)+p(x)y'(x)+q(x)y(x)=r(x),\qquad a\leq x\leq b, \qquad y(a)=\alpha,\qquad y(b)=\beta.\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;取 \(h=\frac{b-a}{N},x_n=a+nh\), 记&#10;&lt;/p&gt;&#10;\[y_n=y(x_n),\qquad p_n=p(x_n),\qquad q_n=q(x_n),\qquad r_n=r(x_n).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;中心差分公式为&#10;&lt;/p&gt;&#10;\[y'(x_n)=\frac{y_{n+1}-y_{n-1}}{2h}+O(h^2), \qquad y''(x_n)=\frac{y_{n+1}-2y_n+y_{n-1}}{h^2}+O(h^2).\]&lt;p&gt;&#10;代入微分方程并整理为&#10;&lt;/p&gt;&#10;\[\ell_i y_{i-1}+d_i y_i+u_i y_{i+1}=r_i,\qquad i=1,\cdots,N-1.\]&lt;p&gt;&#10;其中&#10;&lt;/p&gt;&#10;\[\ell_i=\frac{1}{h^2}-\frac{p_i}{2h},\qquad d_i=-\frac{2}{h^2}+q_i,\qquad u_i=\frac{1}{h^2}+\frac{p_i}{2h}.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;边界条件给出 \(y_0=\alpha,y_N=\beta\). 剩余未知量 \(\mathbf{y}=(y_1,\cdots,y_{N-1})^{\mathsf{T}}\) 化为三对角线性方程组&#10;&lt;/p&gt;&#10;\[\begin{pmatrix} d_1&amp;u_1&amp;0&amp;\cdots&amp;0\\ \ell_2&amp;d_2&amp;u_2&amp;\cdots&amp;0\\ 0&amp;\ddots&amp;\ddots&amp;\ddots&amp;\vdots\\ \vdots&amp;\ddots&amp;\ell_{N-2}&amp;d_{N-2}&amp;u_{N-2}\\ 0&amp;\cdots&amp;0&amp;\ell_{N-1}&amp;d_{N-1} \end{pmatrix} \begin{pmatrix} y_1\\y_2\\\vdots\\y_{N-2}\\y_{N-1} \end{pmatrix} = \begin{pmatrix} r_1-\ell_1\alpha\\r_2\\\vdots\\r_{N-2}\\r_{N-1}-u_{N-1}\beta \end{pmatrix}\]&lt;p&gt;&#10;的求解问题.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="10-partial-differential-equations"&gt;10 Partial Differential Equations&lt;a class="heading-anchor" href="#10-partial-differential-equations" aria-label="Link to 10 Partial Differential Equations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="101-finite-difference-pdes"&gt;10.1 Finite-Difference PDEs&lt;a class="heading-anchor" href="#101-finite-difference-pdes" aria-label="Link to 10.1 Finite-Difference PDEs" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;偏微分方程包含多个独立变量. Poisson 方程、Schrödinger 方程等多变量问题常通过离散化转化为矩阵方程.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 二维 Poisson 方程&#10;&lt;/p&gt;&#10;\[-\Delta u=f(x,y),\qquad f_{ij}=f(x_i,y_j).\]&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 在矩形网格上取步长 \(h_x,h_y\). 对内部点 \((x_i,y_j)\), 二阶中心差分给出&#10;&lt;/p&gt;&#10;\[\left(\frac{2}{h_x^2}+\frac{2}{h_y^2}\right)U_{ij} -\frac{U_{i-1,j}+U_{i+1,j}}{h_x^2} -\frac{U_{i,j-1}+U_{i,j+1}}{h_y^2} =f_{ij}.\]&lt;p&gt;其中 \(U_{ij}\approx u(x_i,y_j)\) 替代了精确值. 已经舍去截断误差.&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;这就是五点差分格式: 每个内部点只与上下左右四个邻点耦合.&lt;/p&gt;&#10;&lt;p&gt;如果有混合导数, 将变为九点格式.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;若进一步取 \(h_x=h_y=h\), 则&#10;&lt;/p&gt;&#10;\[4U_{ij}-U_{i-1,j}-U_{i+1,j}-U_{i,j-1}-U_{i,j+1}=h^2 f_{ij}.\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;内部格点可以投影为一维未知量. 对 \((m-1)\times(n-1)\) 个内部点取&#10;&lt;/p&gt;&#10;\[k=i+(m-1)(j-1)\]&lt;p&gt;&#10;若把 \(h^2\) 乘到右端, 所有内部未知量组成向量 \(\mathbf{U}\), 离散方程写为&#10;&lt;/p&gt;&#10;\[\mathbf{A}\mathbf{U}=\mathbf{F}.\]&lt;p&gt;五点差分格式给出分块三对角系数.&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;例如对 \(4\times 4\) 二维网格的 \(3\times3\) 个内部点按行投影时,&#10;&lt;/p&gt;&#10;\[\begin{aligned} x_1&amp;=U_{11},&amp; x_2&amp;=U_{21},&amp; x_3&amp;=U_{31},\\ x_4&amp;=U_{12},&amp; x_5&amp;=U_{22},&amp; x_6&amp;=U_{32},\\ x_7&amp;=U_{13},&amp; x_8&amp;=U_{23},&amp; x_9&amp;=U_{33}. \end{aligned}\]&lt;p&gt;&#10;对这个例子&#10;&lt;/p&gt;&#10;\[\mathbf{A}= \begin{bmatrix} \mathbf{B}&amp;-\mathbf{I}&amp;0\\ -\mathbf{I}&amp;\mathbf{B}&amp;-\mathbf{I}\\ 0&amp;-\mathbf{I}&amp;\mathbf{B}\end{bmatrix}, \qquad \mathbf{B} = \begin{bmatrix} 4&amp;-1&amp;0\\ -1&amp;4&amp;-1\\ 0&amp;-1&amp;4 \end{bmatrix}\]&#10; &lt;/blockquote&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;边界条件进入矩阵或右端项.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Dirichlet 条件直接给出边界值;&lt;/li&gt;&#10;&lt;li&gt;Neumann 条件可用虚拟点或单边差分转化为内部点关系;&lt;/li&gt;&#10;&lt;li&gt;mixed 条件则把函数值和法向导数一起纳入离散方程.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 左边界 \(x=x_0\) 的 Neumann 条件.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 这里定义 \(u_x(x_0,y)=g(x_0,y)\), 因而可用外部虚拟点表示为&#10;&lt;/p&gt;&#10;\[\frac{U_{1,j}-U_{-1,j}}{2h}=g(x_0,y_j) \quad\Longrightarrow\quad U_{-1,j}=U_{1,j}-2h\,g(x_0,y_j).\]&lt;p&gt;&#10;边界点的五点方程&#10;&lt;/p&gt;&#10;\[4U_{0,j}-U_{-1,j}-U_{1,j}-U_{0,j+1}-U_{0,j-1} =h^2 f(x_0,y_j)\]&lt;p&gt;&#10;消去虚拟点后得到&#10;&lt;/p&gt;&#10;\[4U_{0,j}-2U_{1,j}-U_{0,j+1}-U_{0,j-1} =h^2 f(x_0,y_j)-2h\,g(x_0,y_j).\]&lt;p&gt;&#10;若给定的是外法向导数 \(\partial_nu=g_n\), 左边界上 \(g=-g_n\), 因而右端改为 \(h^2f+2hg_n\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 求解&#10;&lt;/p&gt;&#10;\[-\Delta u=f(x,y) =-2\cos \pi y+\pi^2(1+x)^2\cos \pi y,\qquad 0\lt x,y\lt 1,\]&lt;p&gt;边界为&lt;/p&gt;&#10;\[\begin{aligned} u(x,0)&amp;=(1+x)^2,&amp; u(x,1)&amp;=-(1+x)^2,\\ u(0,y)&amp;=\cos\pi y,&amp; u(1,y)&amp;=4\cos\pi y, \end{aligned} \qquad h=\frac14.\]&#10; &lt;blockquote&gt;&#10; &lt;p&gt;精确解是 \(u(x,y)=(1+x)^2\cos\pi y\).&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; 内部节点五点方程同前. 对于 Dirichlet 边界点&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在 \((x_1,y_1)=(1/4,1/4)\)&#10;&lt;/p&gt;&#10;\[4U_{1,1}-U_{0,1}-U_{2,1}-U_{1,0}-U_{1,2} =h^2 f\left(\frac14,\frac14\right),\]&lt;p&gt;&#10;代入 \(U_{0,1}=\cos(\pi/4)\), \(U_{1,0}=(1+1/4)^2\) 得&#10;&lt;/p&gt;&#10;\[4U_{1,1}-U_{2,1}-U_{1,2} =h^2 f\left(\frac14,\frac14\right) +\cos\frac{\pi}{4}+\left(1+\frac14\right)^2.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\((x_2,y_1)=(1/2,1/4)\)&#10;&lt;/p&gt;&#10;\[-U_{1,1}+4U_{2,1}-U_{3,1}-U_{2,2} =h^2 f\left(\frac12,\frac14\right)+\left(1+\frac12\right)^2.\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;\((x_3,y_1)=(3/4,1/4)\)&#10;&lt;/p&gt;&#10;\[-U_{2,1}+4U_{3,1}-U_{3,2} =h^2 f\left(\frac34,\frac14\right) +4\cos\frac{\pi}{4}+\left(1+\frac34\right)^2.\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;其余六个节点也按相同五点格式列式, 代入已知边界值, 得到九元线性方程组. 因外力及边界关于 \(y=1/2\) 反对称, 离散解满足 \(U_{i,2}=0\)、\(U_{i,3}=-U_{i,1}\). 上面的前三式因此闭合为&#10;&lt;/p&gt;&#10;\[\begin{pmatrix}4&amp;-1&amp;0\\-1&amp;4&amp;-1\\0&amp;-1&amp;4\end{pmatrix} \begin{pmatrix}U_{1,1}\\U_{2,1}\\U_{3,1}\end{pmatrix} =\begin{pmatrix}b_1\\b_2\\b_3\end{pmatrix},\]&lt;p&gt;&#10;其中 \(b_1,b_2,b_3\) 分别为前三式已给出的右端. 求解得全部内部值 (行对应 \(y_j\), 列对应 \(x_i\)):&#10;&lt;/p&gt;&#10;\[(U_{i,j})_{j,i=1}^{3}\approx \begin{pmatrix} 1.1187788720&amp;1.6123673475&amp;2.1876760876\\ 0&amp;0&amp;0\\ -1.1187788720&amp;-1.6123673475&amp;-2.1876760876 \end{pmatrix}.\]&lt;p&gt;&#10;这是五点格式的离散解. 与精确连续解在九个内部节点处比较, 最大绝对误差约为 \(0.02216157\); 两者不应混为同一个解.&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;二维、三维问题的网格点数随维度快速增长, 很难单靠缩小格点间距提高精度.&lt;/p&gt;&#10;&lt;p&gt;实际计算要同时利用边界条件、对称性和物理量子数改进微分算符.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="102-fourier-derivative-operators-and-fftfast-fourier-transform"&gt;10.2 Fourier Derivative Operators and FFT(Fast Fourier Transform)&lt;a class="heading-anchor" href="#102-fourier-derivative-operators-and-fftfast-fourier-transform" aria-label="Link to 10.2 Fourier Derivative Operators and FFT(Fast Fourier Transform)" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Fourier 变换可以用来数值求解导数. 在周期性边界条件下, 可把导数计算从实空间转换到 Fourier 空间.&lt;/p&gt;&#10;&lt;p&gt;考虑一维等间距格点, 均匀分布在 \([-L/2,L/2)\) 上&lt;/p&gt;&#10;\[x_i=-\frac{L}{2}+i\Delta x =\left(i-\frac{N}{2}\right)\Delta x,\qquad i=0,1,\cdots,N-1,\]&lt;p&gt;其中 \(L=N\Delta x\), 以下取偶数 \(N\). 周期边界条件为 \(f(x+L)=f(x)\).&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;FFT 中的未折叠频率索引为&#10;&lt;/p&gt;&#10;\[k_n=\frac{2\pi n}{L},\qquad n=0,1,\cdots,N-1.\]&lt;p&gt;&#10;标准 FFT 排列把 \(n\ge N/2\) 解释为负频率:&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&#10;&lt;/p&gt;&#10;\[k_n= \begin{cases} \dfrac{2\pi n}{L}, &amp; n=0,1,\cdots,N/2-1,\\[4pt] \dfrac{2\pi(n-N)}{L}, &amp; n=N/2,\cdots,N-1, \end{cases} \qquad \Delta k=\frac{2\pi}{L}.\]&lt;p&gt;&#10;其中 Nyquist 模 \(n=N/2\) 的正负频率在网格上不可区分. 实数三角插值采用对称的余弦 Nyquist 模: 奇数阶求导时该模的乘子取 0, 偶数阶时保留 \((\mathrm{i}k_{N/2})^m\).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;DFT(discrete Fourier transform) 为&#10;&lt;/p&gt;&#10;\[\hat f(k_n)=\sum_{i=0}^{N-1} \exp(-\mathrm{i}k_nx_i)f(x_i) \Longleftrightarrow f(x_i)=\frac{1}{N}\sum_{n=0}^{N-1} \exp(\mathrm{i}k_nx_i)\hat f(k_n).\]&lt;p&gt;&#10;连续 Fourier 变换中的求导对应乘以 \((\mathrm{i}k)^m\). 对有限格点, 以下等式给出由样本构造的三角插值函数 \(f_N\) 的导数, 并按上述规则处理 Nyquist 模; 只有当原函数属于该插值空间时, 它才等于原函数的精确导数. 一般光滑周期函数须以增加 \(N\) 检查谱近似的收敛. 因此&#10;&lt;/p&gt;&#10;\[f_N^{(m)}(x_i) =\frac{1}{N}\sum_{n=0}^{N-1} \exp(\mathrm{i}k_nx_i)\mu_n^{(m)} \sum_{j=0}^{N-1}\exp(-\mathrm{i}k_nx_j)f(x_j) =\sum_{j=0}^{N-1}D_{ij}^{(m)}f(x_j)\]&lt;p&gt;&#10;其中&#10;&lt;/p&gt;&#10;\[\mu_n^{(m)}=\begin{cases} 0, &amp; n=N/2,\quad m\text{ 为奇数},\\ (\mathrm{i}k_n)^m, &amp; \text{其余情形}, \end{cases}\]&lt;p&gt;&#10;&lt;/p&gt;&#10;\[D_{ij}^{(m)} =\frac{1}{N}\sum_{n=0}^{N-1} \exp[\mathrm{i}k_n(x_i-x_j)]\mu_n^{(m)}.\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;一阶微分矩阵元为&#10;&lt;/p&gt;&#10;\[D_{ij}^{(1)} =\frac{1}{N}\sum_{n=0}^{N-1} \exp[\mathrm{i}k_n(x_i-x_j)]\mu_n^{(1)}.\]&lt;p&gt;&#10;对上述实数三角插值, 将 Nyquist 乘子设为 0 后, 一阶微分矩阵为&#10;&lt;/p&gt;&#10;\[D_{ij}^{(1)} =-\frac{2\Delta k}{N} \sum_{n=1}^{N/2-1}n\sin[k_n\Delta x(i-j)].\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;同理二阶微分矩阵元为&#10;&lt;/p&gt;&#10;\[D_{ij}^{(2)} =-\frac{2(\Delta k)^2}{N} \sum_{n=1}^{N/2-1}n^2\cos[k_n\Delta x(i-j)] -\frac{(\Delta k)^2}{N} \left(\frac{N}{2}\right)^2 \cos\!\left[\frac{N\Delta k\,\Delta x}{2}(i-j)\right].\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 对于 Nyquist 样本 \(f_i=(-1)^i\), 有 \(D^{(1)}\mathbf{f}=0\), 而 \(D^{(2)}\mathbf{f}=-(\pi/\Delta x)^2\mathbf{f}\). 因而此约定下 \(D^{(2)}\ne(D^{(1)})^2\), 二阶导数应直接乘以 \(-k^2\) 计算.&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; 利用 FFT 求解波动型方程&#10;&lt;/p&gt;&#10;\[\partial_t^2 u = C(x,t)\,\partial_x^2 u\]&lt;p&gt;&#10;&lt;strong&gt;Solution&lt;/strong&gt; 时间上差分推进, 空间上用 FFT 做谱微分.&lt;/p&gt;&#10;&lt;p&gt;记 \(u_j^n \approx u(x_j,t_n)\), 每个时刻的流程为:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;对 \(u^n(x)\) 作 FFT, 得到 \(\widehat u_k^n\);&lt;/li&gt;&#10;&lt;li&gt;在 Fourier 空间中乘以 \(-k^2\):&#10;&#10;\[\widehat{u_{xx}}(k,t_n) = -k^2\,\hat u_k^n;\]&lt;/li&gt;&#10;&lt;li&gt;逆 FFT 回到实空间, 得到 \(u_{xx}(x_j,t_n)\);&lt;/li&gt;&#10;&lt;li&gt;在实空间乘变系数:&#10;&#10;\[F_j^n = C(x_j,t_n)\,u_{xx}(x_j,t_n).\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;时间推进分两步:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;构造第一层 \(u_j^1\): 由 Taylor 展开&#10;&lt;/p&gt;&#10;\[u_j^1 = u_j^0 + \Delta t\,v(x_j) + \frac{\Delta t^2}{2}F_j^0, \qquad v(x)=u_t(x,0);\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;对 \(n\ge 1\) 用中心差分&#10;&lt;/p&gt;&#10;\[u_j^{n+1} = 2u_j^n - u_j^{n-1} + \Delta t^2 F_j^n.\]&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Proposition&lt;/strong&gt; 对于常系数 \(C=c^2&gt;0\), 每个 Fourier 模是频率 \(c|k|\) 的振子; 非零模保持有界的稳健步长条件为&#10;&lt;/p&gt;&#10;\[c\Delta t\max_n|k_n|\lt2.\]&lt;p&gt;&#10;偶数网格下 \(\max|k_n|=\pi/\Delta x\), 因而&#10;&lt;/p&gt;&#10;\[c\Delta t/\Delta x\lt2/\pi.\]&lt;p&gt;等号处最高频模的特征方程为 \((G+1)^2=0\); 除非该模的起步满足 \(u^1=-u^0\), 否则会出现 \((-1)^n(A+Bn)\) 的线性增长, 实际步长须留裕量.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Remark&lt;/strong&gt; 变系数时须检查离散空间算符的谱, 不能直接把有限差分波动方程的 \(c\Delta t/\Delta x\le1\) 套到谱微分上.&lt;/p&gt;&#10;&lt;p&gt;因为 \(C(x,t)\) 依赖空间位置, 方程在 Fourier 空间中不能完全逐模对角化, 因此采用&amp;quot;频域求导, 实空间乘系数&amp;quot;的混合实现. FFT 最适合周期边界条件; 非周期问题须选择匹配边界条件的基, 例如齐次 Dirichlet/Neumann 条件可分别用正弦/余弦展开.&lt;/p&gt;&#10;&lt;h3 id="103-basis-expansion-methods-"&gt;10.3 Basis Expansion Methods *&lt;a class="heading-anchor" href="#103-basis-expansion-methods-" aria-label="Link to 10.3 Basis Expansion Methods *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;基矢展开法的计算目标是把微分方程或本征值问题转化为有限维矩阵问题.&lt;/p&gt;&#10;&lt;p&gt;以 Schrödinger 方程 \(\hat H|\psi\rangle=E|\psi\rangle\) 为例. 选一组正交归一基 \(\{|\phi_j\rangle\}\), 展开&#10;&lt;/p&gt;&#10;\[|\psi\rangle=\sum_j c_j|\phi_j\rangle.\]&lt;p&gt;代入本征值方程并左乘 \(\langle\phi_i|\), 得&lt;/p&gt;&#10;\[\sum_j H_{ij}c_j=Ec_i, \qquad H_{ij}=\langle\phi_i|\hat H|\phi_j\rangle.\]&lt;p&gt;若基不正交归一, 则须保留重叠矩阵 \(S_{ij}=\langle\phi_i|\phi_j\rangle\), 求解 \(\sum_jH_{ij}c_j=E\sum_jS_{ij}c_j\), 并按 \(\mathbf{c}^\dagger\mathbf{S}\mathbf{c}=1\) 归一化.&lt;/p&gt;&#10;&lt;p&gt;计算流程:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;选择基函数 \(\{|\phi_j\rangle\}\), 例如谐振子基、平面波基、DVR(discrete variable representation) 基等.&lt;/li&gt;&#10;&lt;li&gt;计算矩阵元 \(H_{ij}\).&lt;/li&gt;&#10;&lt;li&gt;截断到有限维矩阵.&lt;/li&gt;&#10;&lt;li&gt;对角化矩阵, 得到近似本征值和展开系数.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="104-dvrdiscrete-variable-representation-"&gt;10.4 DVR(Discrete Variable Representation) *&lt;a class="heading-anchor" href="#104-dvrdiscrete-variable-representation-" aria-label="Link to 10.4 DVR(Discrete Variable Representation) *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;DVR(discrete variable representation) 构造一组特殊正交基, 使波函数展开系数正比于格点值, 并把内积写成加权求和. 设投影算符为 \(P\), 网格点为 \(x_\alpha\), 定义未归一化 DVR 态&lt;/p&gt;&#10;\[|\Delta_\alpha\rangle=P|x_\alpha\rangle.\]&lt;p&gt;若&lt;/p&gt;&#10;\[\langle\Delta_\alpha|\Delta_\beta\rangle=N_\alpha\delta_{\alpha\beta},\]&lt;p&gt;则归一化 DVR 基为&lt;/p&gt;&#10;\[|F_\alpha\rangle=\frac{1}{\sqrt{N_\alpha}}|\Delta_\alpha\rangle.\]&lt;p&gt;核心性质:&lt;/p&gt;&#10;\[\langle F_\alpha|F_\beta\rangle=\delta_{\alpha\beta}, \qquad F_\beta(x_\alpha)=\sqrt{N_\alpha}\delta_{\alpha\beta}.\]&lt;p&gt;以下假设 \(P\) 是正交投影, \(\{|F_\alpha\rangle\}\) 张成其像空间, 且 \(P|\psi\rangle=|\psi\rangle\) (内积中的 \(\phi\) 也属于该子空间). 因此&lt;/p&gt;&#10;\[\langle F_\alpha|\psi\rangle=\frac{\psi(x_\alpha)}{\sqrt{N_\alpha}}, \qquad |\psi\rangle=\sum_\alpha\frac{\psi(x_\alpha)}{\sqrt{N_\alpha}}|F_\alpha\rangle.\]&lt;p&gt;内积可写为&lt;/p&gt;&#10;\[\langle\phi|\psi\rangle =\sum_\alpha\frac{1}{N_\alpha}\phi^*(x_\alpha)\psi(x_\alpha) =\sum_\alpha\omega_\alpha\phi^*(x_\alpha)\psi(x_\alpha), \qquad \omega_\alpha=N_\alpha^{-1}.\]&lt;p&gt;从正交基构造 DVR: 若&lt;/p&gt;&#10;\[P=\sum_n|\phi_n\rangle\langle\phi_n|, \qquad |\Delta_\alpha\rangle=P|x_\alpha\rangle =\sum_n|\phi_n\rangle\phi_n^*(x_\alpha),\]&lt;p&gt;则&lt;/p&gt;&#10;\[\Delta_\alpha(x)=\sum_n\phi_n(x)\phi_n^*(x_\alpha), \qquad \langle\Delta_\alpha|\Delta_\beta\rangle =\sum_n\phi_n(x_\alpha)\phi_n^*(x_\beta).\]&lt;p&gt;若取 \(\phi_n(x)=\sqrt{W(x)}P_n(x)\), 其中 \(P_n\) 在权重 \(W\) 下正交归一, 保留 \(n=0,\cdots,M-1\), 且 \(x_\alpha\) 取 \(P_M\) 的 \(M\) 个零点. 记对应的 Gauss 权为 \(\lambda_\alpha\), 即&lt;/p&gt;&#10;\[\int W(x)Q(x)\,\mathrm{d}x=\sum_\alpha\lambda_\alpha Q(x_\alpha),\qquad \deg Q\le2M-1.\]&lt;p&gt;由于 \(\sum_\alpha\lambda_\alpha P_n(x_\alpha)P_m(x_\alpha)=\delta_{nm}\), 方阵的正交性给出 \(\sum_{n=0}^{M-1}P_n(x_\alpha)P_n(x_\beta)=\delta_{\alpha\beta}/\lambda_\alpha\). 因而 \(N_\alpha=W(x_\alpha)/\lambda_\alpha\), 位置内积的求积权为 \(w_\alpha=\omega_\alpha=\lambda_\alpha/W(x_\alpha)\), 并有&lt;/p&gt;&#10;\[\sum_n\phi_n(x_\alpha)\phi_n^*(x_\beta)=N_\alpha\delta_{\alpha\beta}.\]&lt;p&gt;归一化 DVR 基可写为&lt;/p&gt;&#10;\[F_\alpha(x)=\sqrt{w_\alpha}\sum_n\sqrt{W(x)W(x_\alpha)}P_n(x)P_n(x_\alpha).\]&lt;p&gt;在 DVR 基下, 势能矩阵近似对角:&lt;/p&gt;&#10;\[\langle F_\alpha|V|F_\beta\rangle \approx\sum_kw_kF_\alpha^*(x_k)V(x_k)F_\beta(x_k) =\delta_{\alpha\beta}V(x_\alpha).\]&lt;p&gt;平面波 DVR 例子: 取动量截断 \(p\in[-p_0,p_0]\),&lt;/p&gt;&#10;\[P=\int_{-p_0}^{p_0}|p\rangle\langle p|\,\mathrm{d}p, \qquad x_\alpha=\frac{\pi\hbar}{p_0}\alpha,\qquad \alpha\in\mathbb{Z}.\]&lt;p&gt;未归一化基为&lt;/p&gt;&#10;\[|\Delta_\alpha\rangle =\int_{-p_0}^{p_0}\mathrm{d}p\,|p\rangle \frac{\exp(-\mathrm{i}px_\alpha/\hbar)}{\sqrt{2\pi\hbar}}.\]&lt;p&gt;内积为&lt;/p&gt;&#10;\[\langle\Delta_\alpha|\Delta_\beta\rangle =\int_{-p_0}^{p_0}\mathrm{d}p\, \frac{\exp[\mathrm{i}p(x_\alpha-x_\beta)/\hbar]}{2\pi\hbar} =\frac{p_0}{\pi\hbar} \frac{\sin[p_0(x_\alpha-x_\beta)/\hbar]}{p_0(x_\alpha-x_\beta)/\hbar} =\frac{p_0}{\pi\hbar}\delta_{\alpha\beta}.\]&lt;p&gt;归一化基为&lt;/p&gt;&#10;\[|F_\alpha\rangle=\sqrt{\frac{\pi\hbar}{p_0}}|\Delta_\alpha\rangle.\]&lt;p&gt;位置表象:&lt;/p&gt;&#10;\[F_\alpha(x)=\frac{1}{\sqrt{\pi\hbar p_0}} \frac{\sin[p_0(x-x_\alpha)/\hbar]}{(x-x_\alpha)/\hbar} =\sqrt{\frac{p_0}{\pi\hbar}}\, \mathrm{sinc}\left(\frac{p_0(x-x_\alpha)}{\hbar}\right).\]&lt;p&gt;这里 \(\mathrm{sinc}(z)\equiv\sin z/z\), 并以连续极限定义 \(\mathrm{sinc}(0)=1\). 以下展开针对动量支撑在 \([-p_0,p_0]\) 内的带限波函数; 无限网格的正交与完备性不等于有限截断后可精确表示任意波函数.&lt;/p&gt;&#10;&lt;p&gt;动量表象与波函数展开:&lt;/p&gt;&#10;\[\langle p|F_\alpha\rangle=\frac{1}{\sqrt{2p_0}}\exp(-\mathrm{i}px_\alpha/\hbar), \qquad |\psi\rangle=\sum_\alpha |F_\alpha\rangle\sqrt{\frac{\pi\hbar}{p_0}}\psi(x_\alpha).\]&lt;h3 id="105-femfinite-element-method-"&gt;10.5 FEM(Finite-Element Method) *&lt;a class="heading-anchor" href="#105-femfinite-element-method-" aria-label="Link to 10.5 FEM(Finite-Element Method) *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;有限元法适合复杂几何边界. 基本流程:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;将区域剖分为互不重叠的小单元.&lt;/li&gt;&#10;&lt;li&gt;在每个单元上用低阶多项式近似待求场量.&lt;/li&gt;&#10;&lt;li&gt;用变分原理或加权残量法把微分方程离散为代数方程组.&lt;/li&gt;&#10;&lt;li&gt;组装全局矩阵并求解.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Delaunay 三角剖分常用于生成三角网格: 最大化最小角、避免瘦长三角形、三角形并集为点集凸包.&lt;/p&gt;&#10;&lt;h4 id="1051-variational-formulation"&gt;10.5.1 Variational Formulation&lt;a class="heading-anchor" href="#1051-variational-formulation" aria-label="Link to 10.5.1 Variational Formulation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;考虑二维 Poisson 方程&lt;/p&gt;&#10;\[\nabla^2\phi(\mathbf{r})=f(\mathbf{r}), \qquad \mathbf{r}\in\Omega.\]&lt;p&gt;本节沿用 \(\nabla^2\phi=f\) 的符号约定. 以下先取给定 Dirichlet 边界, 使允许变分在边界上为零. 对应变分泛函可写为&lt;/p&gt;&#10;\[J[\phi]=\int_\Omega\left[\frac12(\nabla\phi)^2+f\phi\right]\,\mathrm{d}^2r, \qquad \delta J=0.\]&lt;p&gt;在三角单元上, 线性插值为&lt;/p&gt;&#10;\[\phi(x,y)=a_i+b_ix+c_iy,\]&lt;p&gt;二次插值可写为&lt;/p&gt;&#10;\[\phi(x,y)=a_i+b_ix+c_iy+d_ixy+e_ix^2+f_iy^2.\]&lt;h4 id="1052-area-coordinates"&gt;10.5.2 Area Coordinates&lt;a class="heading-anchor" href="#1052-area-coordinates" aria-label="Link to 10.5.2 Area Coordinates" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;以下将顶点 \(a,b,c\) 按逆时针顺序编号, 并令 \(A&gt;0\) 为三角形面积, 从而后面的行列式为 \(2A\). 自然坐标 \(\xi_a,\xi_b,\xi_c\) 定义为面积比:&lt;/p&gt;&#10;\[\xi_a=\frac{A_a}{A}, \qquad \xi_b=\frac{A_b}{A}, \qquad \xi_c=\frac{A_c}{A}, \qquad \xi_a+\xi_b+\xi_c=1.\]&lt;p&gt;顶点处满足 \(\xi_a=1,\xi_b=\xi_c=0\) 及循环关系.&lt;/p&gt;&#10;&lt;img src="./assets/finite-element-natural-coordinates.png" alt="Finite-element natural coordinates in a triangular element" style="width: 473px; max-width: 100%; height: auto;" /&gt;&#10;&lt;p&gt;坐标变换:&lt;/p&gt;&#10;\[\begin{pmatrix}1\\x\\y\end{pmatrix} = \begin{pmatrix}1&amp;1&amp;1\\x_a&amp;x_b&amp;x_c\\y_a&amp;y_b&amp;y_c\end{pmatrix} \begin{pmatrix}\xi_a\\\xi_b\\\xi_c\end{pmatrix}.\]&lt;p&gt;逆变换:&lt;/p&gt;&#10;\[\begin{pmatrix}\xi_a\\\xi_b\\\xi_c\end{pmatrix} =\frac{1}{2A} \begin{pmatrix} x_by_c-x_cy_b&amp;y_b-y_c&amp;x_c-x_b\\ x_cy_a-x_ay_c&amp;y_c-y_a&amp;x_a-x_c\\ x_ay_b-x_by_a&amp;y_a-y_b&amp;x_b-x_a \end{pmatrix} \begin{pmatrix}1\\x\\y\end{pmatrix},\]&lt;p&gt;其中&lt;/p&gt;&#10;\[2A= \begin{vmatrix}1&amp;1&amp;1\\x_a&amp;x_b&amp;x_c\\y_a&amp;y_b&amp;y_c\end{vmatrix}.\]&lt;p&gt;单元内函数值:&lt;/p&gt;&#10;\[\phi(x,y)=\xi_a\phi_a+\xi_b\phi_b+\xi_c\phi_c.\]&lt;p&gt;面积坐标积分公式:&lt;/p&gt;&#10;\[\int_A\xi_a^k\xi_b^l\xi_c^m\,\mathrm{d}\Omega =2A\frac{k!l!m!}{(k+l+m+2)!}.\]&lt;h4 id="1053-element-matrices-and-assembly"&gt;10.5.3 Element Matrices and Assembly&lt;a class="heading-anchor" href="#1053-element-matrices-and-assembly" aria-label="Link to 10.5.3 Element Matrices and Assembly" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;代入线性插值得&lt;/p&gt;&#10;\[\nabla\phi=\nabla\xi_a\phi_a+\nabla\xi_b\phi_b+\nabla\xi_c\phi_c.\]&lt;p&gt;于是单元泛函化为&lt;/p&gt;&#10;\[J[\phi] =\frac12\boldsymbol{\phi}^{\mathsf{T}}\mathbf{K}\boldsymbol{\phi} +\mathbf{r}^{\mathsf{T}}\boldsymbol{\phi},\]&lt;p&gt;其中&lt;/p&gt;&#10;\[\boldsymbol{\phi}=(\phi_a,\phi_b,\phi_c)^{\mathsf{T}}, \qquad K_{ij}=\int_A\nabla\xi_i\cdot\nabla\xi_j\,\mathrm{d}\Omega, \qquad r_i=\int_A f\xi_i\,\mathrm{d}\Omega.\]&lt;p&gt;变分后得到线性方程组&lt;/p&gt;&#10;\[\mathbf{K}\boldsymbol{\phi}=-\mathbf{r}.\]&lt;p&gt;因为本节采用 \(\nabla^2\phi=f\), 泛函中源项的符号为 \(+f\phi\), 驻值条件给出 \(\mathbf{K}\boldsymbol{\phi}+\mathbf{r}=0\). 若改写为 \(-\nabla^2\phi=f\), 则泛函应改用 \(-f\phi\), 才得到 \(\mathbf{K}\boldsymbol{\phi}=\mathbf{r}\). 全局组装后还须施加边界条件; 单个三角元的刚度矩阵有常数零模, 不能单独求逆.&lt;/p&gt;&#10;&lt;p&gt;自然坐标梯度:&lt;/p&gt;&#10;\[\nabla\xi_a=\frac{1}{2A}(y_b-y_c,x_c-x_b),\]\[\nabla\xi_b=\frac{1}{2A}(y_c-y_a,x_a-x_c), \qquad \nabla\xi_c=\frac{1}{2A}(y_a-y_b,x_b-x_a).\]&lt;p&gt;令&lt;/p&gt;&#10;\[\mathbf{b}=(y_b-y_c,y_c-y_a,y_a-y_b)^{\mathsf{T}}, \qquad \mathbf{c}=(x_c-x_b,x_a-x_c,x_b-x_a)^{\mathsf{T}}.\]&lt;p&gt;单元刚度矩阵为&lt;/p&gt;&#10;\[\mathbf{K}=\frac{1}{4A}(\mathbf{b}\mathbf{b}^{\mathsf{T}}+\mathbf{c}\mathbf{c}^{\mathsf{T}}).\]&lt;p&gt;等价地, 记 \(y_{ab}=y_a-y_b\), \(y_{bc}=y_b-y_c\), \(y_{ca}=y_c-y_a\), 以及 \(x_{ab}=x_a-x_b\), \(x_{bc}=x_b-x_c\), \(x_{ca}=x_c-x_a\), 则&lt;/p&gt;&#10;\[\mathbf{K}=\frac{1}{4A} \begin{pmatrix} y_{bc}^2+x_{bc}^2&amp;y_{bc}y_{ca}+x_{bc}x_{ca}&amp;y_{bc}y_{ab}+x_{bc}x_{ab}\\ y_{ca}y_{bc}+x_{ca}x_{bc}&amp;y_{ca}^2+x_{ca}^2&amp;y_{ca}y_{ab}+x_{ca}x_{ab}\\ y_{ab}y_{bc}+x_{ab}x_{bc}&amp;y_{ab}y_{ca}+x_{ab}x_{ca}&amp;y_{ab}^2+x_{ab}^2 \end{pmatrix}.\]&lt;p&gt;若源项也用线性插值&lt;/p&gt;&#10;\[f(\mathbf{r})=\xi_af_a+\xi_bf_b+\xi_cf_c,\]&lt;p&gt;则载荷向量为&lt;/p&gt;&#10;\[r_a=2A\left(\frac{f_a}{12}+\frac{f_b}{24}+\frac{f_c}{24}\right),\]\[r_b=2A\left(\frac{f_b}{12}+\frac{f_c}{24}+\frac{f_a}{24}\right), \qquad r_c=2A\left(\frac{f_c}{12}+\frac{f_a}{24}+\frac{f_b}{24}\right).\]&lt;p&gt;对每个三角元计算 \(\mathbf{K}\) 和 \(\mathbf{r}\), 再组装成全局刚度矩阵和载荷向量, 最后求解全局线性方程组.&lt;/p&gt;&#10;&lt;h2 id="11-dynamical-equations"&gt;11 Dynamical Equations&lt;a class="heading-anchor" href="#11-dynamical-equations" aria-label="Link to 11 Dynamical Equations" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="111-one-dimensional-diffusion-equation"&gt;11.1 One-Dimensional Diffusion Equation&lt;a class="heading-anchor" href="#111-one-dimensional-diffusion-equation" aria-label="Link to 11.1 One-Dimensional Diffusion Equation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;一维扩散方程为&lt;/p&gt;&#10;\[\frac{\partial u}{\partial t} =\frac{\partial^2u}{\partial x^2}, \qquad 0\lt x\lt L.\]&lt;p&gt;初始条件为 \(u(x,0)=g(x)\). 有限区间还须给定边界条件; 以下差分矩阵取齐次 Dirichlet 边界 \(u(0,t)=u(L,t)=0\). 为说明扩散核, 先单独考虑全空间 \(x\in\mathbb{R}\): 单位点源 \(\delta\) 函数的基本解为&#10;&lt;/p&gt;&#10;\[w(x,t)=\frac{1}{\sqrt{4\pi t}}\exp\left(-\frac{x^2}{4t}\right).\]&lt;p&gt;&#10;在全空间且初值满足积分收敛条件时, 解为基本解与初始条件的卷积&#10;&lt;/p&gt;&#10;\[u(x,t)=\int_{-\infty}^{\infty}w(x-x',t)g(x')\,\mathrm{d}x'.\]&lt;p&gt;有限区间的齐次 Dirichlet 问题则用满足边界条件的正弦展开:&#10;&lt;/p&gt;&#10;\[u(x,t)=\sum_{n=1}^{\infty}b_n\sin\frac{n\pi x}{L}\,\mathrm{e}^{-(n\pi/L)^2t},\qquad b_n=\frac{2}{L}\int_0^L g(x)\sin\frac{n\pi x}{L}\,\mathrm{d}x.\]&lt;p&gt;&#10;例如 \(g\in L^2(0,L)\) 时, 正弦基的完备性保证初值在 \(L^2\) 意义恢复, 而 \(t&gt;0\) 的指数衰减保证解平滑. 下文回到该有限区间问题.&lt;/p&gt;&#10;&lt;h4 id="1111-finite-difference-method"&gt;11.1.1 Finite-Difference Method&lt;a class="heading-anchor" href="#1111-finite-difference-method" aria-label="Link to 11.1.1 Finite-Difference Method" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;记 \(u_{i,j}=u(x_i,t_j)\), 时间差分和空间差分分别为&lt;/p&gt;&#10;\[\frac{\partial u}{\partial t} \approx\frac{u_{i,j+1}-u_{i,j}}{\Delta t}, \qquad \frac{\partial^2u}{\partial x^2} \approx\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{\Delta x^2}.\]&lt;p&gt;定义 \(\alpha=\frac{\Delta t}{\Delta x^2}\), 得到递推公式&lt;/p&gt;&#10;\[u_{i,j+1}=\alpha u_{i-1,j}+(1-2\alpha)u_{i,j}+\alpha u_{i+1,j}.\]&lt;ul&gt;&#10;&lt;li&gt;对 Fourier 模 \(u_{i,j}=G^j\mathrm{e}^{\mathrm{i}i\vartheta}\), 放大因子为 \(G=1-4\alpha\sin^2(\vartheta/2)\). 要求所有模式满足 \(|G|\le1\), 即 \(0\le\alpha\le1/2\). 若扩散系数为 \(D\), 应改用 \(\alpha=D\Delta t/\Delta x^2\).&lt;/li&gt;&#10;&lt;li&gt;第一步为 \(u_{i,1}=\alpha g(x_{i-1})+(1-2\alpha)g(x_i)+\alpha g(x_{i+1})\).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="1112-crank-nicolson-scheme"&gt;11.1.2 Crank-Nicolson Scheme&lt;a class="heading-anchor" href="#1112-crank-nicolson-scheme" aria-label="Link to 11.1.2 Crank-Nicolson Scheme" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;Crank-Nicolson 格式中, 时间导数采用向后差分, 空间二阶导数取两个时间层的加权平均:&lt;/p&gt;&#10;\[\frac{\partial u}{\partial t} \approx\frac{u_{i,j}-u_{i,j-1}}{\Delta t}, \qquad \frac{\partial^2u}{\partial x^2} \approx \theta\left.\frac{\partial^2u}{\partial x^2}\right|_{t=t_j} +(1-\theta)\left.\frac{\partial^2u}{\partial x^2}\right|_{t=t_{j-1}}.\]&lt;p&gt;离散后得到&lt;/p&gt;&#10;\[\theta\frac{u_{i-1,j}-2u_{i,j}+u_{i+1,j}}{\Delta x^2} +(1-\theta)\frac{u_{i-1,j-1}-2u_{i,j-1}+u_{i+1,j-1}}{\Delta x^2} =\frac{u_{i,j}-u_{i,j-1}}{\Delta t}.\]&lt;p&gt;\(\theta=0\) 时为显式格式; \(\theta=1\) 时为全隐式格式; \(\theta=1/2\) 时为 Crank-Nicolson 格式.&lt;/p&gt;&#10;&lt;p&gt;取 \(\theta=1/2\), 并令 \(\alpha=\Delta t/\Delta x^2\), 整理得&lt;/p&gt;&#10;\[-\alpha u_{i-1,j}+2(1+\alpha)u_{i,j}-\alpha u_{i+1,j} =\alpha u_{i-1,j-1}+2(1-\alpha)u_{i,j-1}+\alpha u_{i+1,j-1}.\]&lt;p&gt;可以记为&#10;&lt;/p&gt;&#10;\[(2\mathbf{I}+\alpha\mathbf{B})\mathbf{u}_j =(2\mathbf{I}-\alpha\mathbf{B})\mathbf{u}_{j-1}, \qquad \mathbf{B}= \begin{pmatrix} 2&amp;-1&amp;0&amp;\cdots&amp;0\\ -1&amp;2&amp;-1&amp;\cdots&amp;0\\ 0&amp;\ddots&amp;\ddots&amp;\ddots&amp;\vdots\\ \vdots&amp;\ddots&amp;-1&amp;2&amp;-1\\ 0&amp;\cdots&amp;0&amp;-1&amp;2 \end{pmatrix},\]&lt;p&gt;&#10;则递推关系&#10;&lt;/p&gt;&#10;\[\mathbf{u}_j =(2\mathbf{I}+\alpha\mathbf{B})^{-1}(2\mathbf{I}-\alpha\mathbf{B})\mathbf{u}_{j-1}.\]&lt;p&gt;实现时求解三对角方程组, 不显式构造逆矩阵. 对 Fourier 模, Crank-Nicolson 放大因子为 \(G=[1-2\alpha\sin^2(\vartheta/2)]/[1+2\alpha\sin^2(\vartheta/2)]\), 任意 \(\alpha\ge0\) 均满足 \(|G|\le1\). 无条件稳定不等于任意步长都准确: 大步长使高频模式趋近 \(G=-1\), 可能出现缓慢衰减的数值振荡. 光滑解的全局误差为 \(O(\Delta t^2+\Delta x^2)\).&lt;/p&gt;&#10;&lt;h3 id="112-wave-equation"&gt;11.2 Wave Equation&lt;a class="heading-anchor" href="#112-wave-equation" aria-label="Link to 11.2 Wave Equation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;h4 id="1121-one-dimensional-wave-equation"&gt;11.2.1 One-Dimensional Wave Equation&lt;a class="heading-anchor" href="#1121-one-dimensional-wave-equation" aria-label="Link to 11.2.1 One-Dimensional Wave Equation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;一维波动方程为&lt;/p&gt;&#10;\[\frac{\partial^2u}{\partial x^2} =\frac{\partial^2u}{\partial t^2}.\]&lt;p&gt;定解条件为&lt;/p&gt;&#10;\[u(x,0)=g(x), \qquad \left.\frac{\partial u}{\partial t}\right|_{t=0}=0, \qquad u(0,t)=u(1,t)=0.\]&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;中心差分为&#10;&lt;/p&gt;&#10;\[\frac{\partial^2u}{\partial x^2} \approx\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{\Delta x^2}, \qquad \frac{\partial^2u}{\partial t^2} \approx\frac{u_{i,j+1}-2u_{i,j}+u_{i,j-1}}{\Delta t^2}.\]&lt;p&gt;&#10;得到递推公式&#10;&lt;/p&gt;&#10;\[u_{i,j+1}=2u_{i,j}-u_{i,j-1} +\frac{\Delta t^2}{\Delta x^2}(u_{i+1,j}-2u_{i,j}+u_{i-1,j}).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;初速度条件给出自然边界条件&#10;&lt;/p&gt;&#10;\[\frac{u_{i,1}-u_{i,-1}}{2\Delta t}=0, \qquad u_{i,1}=u_{i,-1}.\]&lt;p&gt;&#10;代入递推公式可得&#10;&lt;/p&gt;&#10;\[u_{i,1}=g(x_i) +\frac{\Delta t^2}{2\Delta x^2} \left[g(x_{i+1})-2g(x_i)+g(x_{i-1})\right].\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;一维格式的 Fourier 放大因子满足 \(G^2-2[1-2r^2\sin^2(\vartheta/2)]G+1=0\), 其中 \(r=c\Delta t/\Delta x\). 常系数问题的稳定步长要求 \(r\le1\), 本文取 \(c=1\). 该约束是所有网格模式的要求, 不能仅靠某个平滑初值下的短时间测试判断稳定性.&lt;/p&gt;&#10;&lt;h4 id="1122-two-dimensional-wave-equation"&gt;11.2.2 Two-Dimensional Wave Equation&lt;a class="heading-anchor" href="#1122-two-dimensional-wave-equation" aria-label="Link to 11.2.2 Two-Dimensional Wave Equation" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;p&gt;二维波动方程为&lt;/p&gt;&#10;\[\frac{\partial^2u}{\partial x^2} +\frac{\partial^2u}{\partial y^2} =\frac{\partial^2u}{\partial t^2}, \qquad (x,y)\in(0,1)\times(0,1).\]&lt;p&gt;定解条件为初值 \(u(x,y,0)=g(x,y)\), 初速度 \(u_t(x,y,0)=0\), 边界取零值.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;离散化取&#10;&lt;/p&gt;&#10;\[t_l=l\Delta t, \qquad x_i=i\Delta x, \qquad y_j=j\Delta y, \qquad \Delta x=\Delta y=h.\]&lt;p&gt;&#10;中心差分为&#10;&lt;/p&gt;&#10;\[u_{xx}\approx\frac{u_{i+1,j}^{l}-2u_{i,j}^{l}+u_{i-1,j}^{l}}{h^2}, \quad u_{yy}\approx\frac{u_{i,j+1}^{l}-2u_{i,j}^{l}+u_{i,j-1}^{l}}{h^2}, \quad u_{tt}\approx \frac{u_{i,j}^{l+1}-2u_{i,j}^{l}+u_{i,j}^{l-1}}{\Delta t^2}.\]&lt;p&gt;&#10;代入得到递推公式&#10;&lt;/p&gt;&#10;\[u_{i,j}^{l+1}=2u_{i,j}^{l}-u_{i,j}^{l-1} +\frac{\Delta t^2}{h^2} \left(u_{i+1,j}^{l}+u_{i-1,j}^{l}+u_{i,j+1}^{l}+u_{i,j-1}^{l}-4u_{i,j}^{l}\right).\]&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;零初速给出 \(u_{i,j}^{-1}=u_{i,j}^{1}\), 因而&#10;&lt;/p&gt;&#10;\[u_{i,j}^{1}=g(x_i,y_j) +\frac{\Delta t^2}{2h^2} \left[g(x_{i+1},y_j)+g(x_{i-1},y_j)+g(x_i,y_{j+1})+g(x_i,y_{j-1})-4g(x_i,y_j)\right].\]&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;二维格式同理要求 \(c^2\Delta t^2(\Delta x^{-2}+\Delta y^{-2})\le1\). 本节 \(c=1\), 等间距网格下即 \(\Delta t/h\le1/\sqrt2\).&lt;/p&gt;&#10;&lt;h3 id="113-time-evolution-in-quantum-mechanics-"&gt;11.3 Time Evolution in Quantum Mechanics *&lt;a class="heading-anchor" href="#113-time-evolution-in-quantum-mechanics-" aria-label="Link to 11.3 Time Evolution in Quantum Mechanics *" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;取 \(\hbar=m=1\) 的单位, 考虑 Schrödinger 方程&lt;/p&gt;&#10;\[\mathrm{i}\frac{\partial}{\partial t}\psi(x,t) =\left[-\frac{1}{2}\frac{\partial^2}{\partial x^2}+V(x)+\epsilon(t)x\right]\psi(x,t).\]&lt;p&gt;空间二阶导数用中心差分:&lt;/p&gt;&#10;\[\frac{\partial^2\psi_j}{\partial x^2} \approx \frac{\psi_{j+1}-2\psi_j+\psi_{j-1}}{\Delta x^2}.\]&lt;p&gt;于是离散 Hamiltonian 为三对角矩阵:&lt;/p&gt;&#10;\[(\mathbf{H}\boldsymbol{\psi})_j =-\frac{1}{2\Delta x^2} (\psi_{j+1}-2\psi_j+\psi_{j-1}) +\left[V(x_j)+\epsilon(t)x_j\right]\psi_j.\]&lt;p&gt;即&lt;/p&gt;&#10;\[H_{jj}=\frac{1}{\Delta x^2}+V(x_j)+\epsilon(t)x_j, \qquad H_{j,j\pm1}=-\frac{1}{2\Delta x^2}.\]&lt;p&gt;时间推进可用 Crank-Nicolson 形式:&lt;/p&gt;&#10;\[\left(\mathbf{I}+\frac{\mathrm{i}\Delta t}{2}\mathbf{H}^{n+1/2}\right) \boldsymbol{\psi}^{n+1} = \left(\mathbf{I}-\frac{\mathrm{i}\Delta t}{2}\mathbf{H}^{n+1/2}\right) \boldsymbol{\psi}^n.\]&lt;p&gt;因此每一步只需求解一个复数三对角线性方程组. 左右两侧矩阵的非零元为&lt;/p&gt;&#10;\[U_{jj}^{\pm} =1\pm\frac{\mathrm{i}\Delta t}{2} \left[\frac{1}{\Delta x^2}+V(x_j)+\epsilon(t_{n+1/2})x_j\right], \qquad U_{j,j\pm1}^{\pm} =\mp\frac{\mathrm{i}\Delta t}{4\Delta x^2}.\]&lt;p&gt;其中左端使用 \(U^+\), 右端使用 \(U^-\).&lt;/p&gt;&#10;&lt;p&gt;当势能为实数, 且边界离散保持 \(\mathbf H^{n+1/2}\) 为 Hermitian 矩阵时, 该推进保持离散范数. 令 \(a=\Delta t/2\), 每个实特征值 \(E\) 对应的推进因子为 \((1-\mathrm{i}aE)/(1+\mathrm{i}aE)\), 模长为 1; 正交特征向量展开因而给出 \(\Delta x\sum_j|\psi_j^{n+1}|^2=\Delta x\sum_j|\psi_j^n|^2\). 此结论不消除时间离散的相位误差, 实际计算还应检查步长收敛及线性求解残差.&lt;/p&gt;&#10;&lt;h2 id="references"&gt;References&lt;a class="heading-anchor" href="#references" aria-label="Link to References" title="Link to this heading"&gt;&lt;!-- @license lucide-static v1.42.0 - ISC --&gt;&#10;&lt;svg aria-hidden="true" focusable="false"&#10; class="lucide lucide-link"&#10; xmlns="http://www.w3.org/2000/svg"&#10; width="24"&#10; height="24"&#10; viewBox="0 0 24 24"&#10; fill="none"&#10; stroke="currentColor"&#10; stroke-width="2"&#10; stroke-linecap="round"&#10; stroke-linejoin="round"&#10;&gt;&#10; &lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /&gt;&#10; &lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /&gt;&#10;&lt;/svg&gt;&#10;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;hr&gt;&#10;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;L. F. Shampine and M. W. Reichelt, &lt;a class="link" href="https://people.eecs.berkeley.edu/~wkahan/Math128/ODEsuite.pdf" target="_blank" rel="noopener"&#10; &gt;The MATLAB ODE Suite&lt;/a&gt;, §3, 固定步长 BDF 的阶数与稳定性.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:2"&gt;&#10;&lt;p&gt;NumPy, &lt;a class="link" href="https://numpy.org/doc/stable/reference/generated/numpy.fft.fftfreq.html" target="_blank" rel="noopener"&#10; &gt;numpy.fft.fftfreq&lt;/a&gt;, 偶数长度的标准频率排列.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li id="fn:3"&gt;&#10;&lt;p&gt;Steven G. Johnson, &lt;a class="link" href="https://math.mit.edu/~stevenj/fft-deriv.pdf" target="_blank" rel="noopener"&#10; &gt;Notes on FFT-based differentiation&lt;/a&gt;, 三角插值与 Nyquist 模的奇偶阶求导; SciPy, &lt;a class="link" href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.diff.html" target="_blank" rel="noopener"&#10; &gt;fftpack.diff&lt;/a&gt;, 奇数阶 Nyquist 乘子约定.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>