好的,这是按照您的要求,将提供的中文内容进行名词加粗处理,同时保留原有的Markdown格式和LaTeX风格数学表达式:

数学附录 G 数值方法

你在高中学过,二次方程 $ax^2 + bx + c = 0$ 有两个,由所谓的二次公式给出:

$$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$

因此,满足方程 $x^2 + 3x - 2 = 0$ 的两个 $x$ (称为)是

$$ x = \frac{-3 \pm \sqrt{17}}{2} $$

虽然三次方程和四次方程有通用公式,但使用起来非常不方便,而且对于五次或更高次的方程则没有公式。不幸的是,在实践中我们经常会遇到这类方程,必须学会处理。幸运的是,随着手持计算器个人电脑的出现,多项式方程和 $x - \cos x = 0$ 等其他类型方程数值求解已成为常规操作。虽然这些方程可以通过“蛮力”试错法求解,但更系统化的程序可以获得几乎任意所需的精确度。最广为人知的程序或许是牛顿-拉弗森方法,通过图示说明效果最佳。G.1显示了函数 $f(x)$ 对 $x$ 的曲线方程 $f(x) = 0$ 的记为 $x_*$。牛顿-拉弗森方法思想是猜测一个初始 $x$ (记为 $x_0$),使其“足够接近” $x_*$,并在 $x_0$ 处绘制曲线 $f(x)$ 的切线,如图G.1所示。通常情况下,切线与水平交点会比 $x_0$ 更接近 $x_*$。我们将这个 $x$ 记为 $x_1$,然后使用 $x_1$ 重复此过程以获得一个新的 $x_2$ ,它将比 $x_1$ 更接近 $x_*$。通过重复这个过程(称为迭代),我们可以以几乎任意所需的精确度逼近 $x_*$。

G.1 牛顿-拉弗森方法图示

我们可以利用G.1来推导出 $x$ 迭代值的便捷公式。 $f(x)$ 在 $x_n$ 处的斜率 $f'(x_n)$ 由下式给出:

$$ f'(x_n) = \frac{f(x_n) - 0}{x_n - x_{n+1}} $$

解出 $x_{n+1}$ 得到

$$ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} \quad \text{(G.1)} $$

这就是牛顿-拉弗森方法迭代公式。作为此公式的一个应用,考虑化学反应方程

$$ 2 \text{ NOCl(g)} \rightleftharpoons 2 \text{ NO(g)} + \text{Cl}_2\text{(g)} $$

在一定温度下,其相关的平衡常数为 2.18。(化学平衡将在第24章讨论,但此时我们仅将下面的代数方程作为一个例子。)如果将 1.00 atm 的 NOCl(g) 引入反应容器,则在平衡时 $P_{NOCl} = 1.00 - 2x$, $P_{NO} = 2x$, $P_{Cl_2} = x$;这些分压满足平衡常数表达式

$$ \frac{P_{NO}^2 P_{Cl_2}}{P_{NOCl}^2} = \frac{(2x)^2 x}{(1.00 - 2x)^2} = 2.18 $$

我们将其写为

$$ f(x) = 4x^3 - 8.72x^2 + 8.72x - 2.18 = 0 $$

根据反应方程化学计量,我们所寻求的 $x$ 必须介于 0 和 0.5 之间,因此我们将 0.250 作为初始猜测 ($x_0$)。G.1显示了使用方程 G.1 的结果注意,我们在仅三个步骤内就收敛到了三位有效数字

G.1 牛顿-拉弗森方法求解方程 $f(x) = 4x^3 - 8.72x^2 + 8.72x - 2.18 = 0$ 的结果

$n$ $x_n$ $f(x_n)$ $f'(x_n)$
0 0.2500 $-4.825 \times 10^{-1}$ 5.110
1 0.3442 $-4.855 \times 10^{-2}$ 4.139
2 0.3559 $-6.281 \times 10^{-4}$ 4.033
3 0.3561 $-1.704 \times 10^{-5}$ 4.031
4 0.3561

示例 G-1

在第16章,我们将求解三次方程

$$ x^3 + 3x^2 + 3x - 1 = 0 $$

使用牛顿-拉弗森方法找到此方程的实,精确到五位有效数字

我们将方程写为

$$ f(x) = x^3 + 3x^2 + 3x - 1 = 0 $$

通过观察,一个位于 0 和 1 之间。使用 $x_0 = 0.5$ 得到

$n$ $x_n$ $f(x_n)$ $f'(x_n)$
0 0.500000 1.37500 6.7500
1 0.296300 0.178294 5.04118
2 0.260930 0.004809 4.76983
3 0.259920 -0.000005 4.76220
4 0.259920

精确到五位有效数字答案是 $x = 0.25992$。注意,随着我们接近满足 $f(x) = 0$ 的 $x$ ,每一步的 $f(x_n)$ 都显著变小,这是预期的,而 $f'(x_n)$ 的变化不明显。G.1也显示了相同的行为

尽管牛顿-拉弗森方法非常强大,但并非总是有效;当它有效时,方法工作是显而易见的;当它无效时,可能甚至更显而易见。一个显著的失败例子是由方程 $f(x) = x^{1/3} = 0$ 提供的,其 $x_* = 0$。如果我们从 $x_0 = 1$ 开始,我们将得到 $x_1 = -2$,$x_2 = +4$,$x_3 = -8$,依此类推。G.2显示了该方法未能收敛的原因。这里的启示是,你应该总是先绘制 $f(x)$ 的,以了解相关的位于何处

G.2 绘制 $y = x^{1/3}$ 的,说明牛顿-拉弗森方法在此情况下失效。

以及函数是否具有任何特殊的性质。你应该做习题 G-1 到 G-9,以熟练掌握牛顿-拉弗森方法

还有一些数值方法用于评估积分。你在微积分中学过,积分曲线与水平之间的面积曲线下的面积),位于积分上下限之间,因此

$$ I = \int_a^b f(u)du \quad \text{(G.2)} $$

G.3中的阴影区域给出。回想一下微积分基本定理,该定理指出,如果

$$ F(x) = \int_a^x f(u)du $$

G.3 $f(u)$ 从 $a$ 到 $b$ 的积分由阴影区域给出。

那么

$$ \frac{dF}{dx} = f(x) $$

函数 $F(x)$ 有时被称为 $f(x)$ 的原函数(或反导数)。如果不存在导数是 $f(x)$ 的基本函数 $F(x)$,我们就说 $f(x)$ 的积分不能进行解析评估基本函数是指可以表示为多项式三角函数指数函数对数函数的有限组合函数

事实证明,许多积分无法进行解析评估。一个特别重要的、无法用基本函数表达的积分例子

$$ \Phi(x) = \int_0^x e^{-u^2} du \quad \text{(G.3)} $$

方程 G.3 用于定义(非基本函数 $\Phi(x)$。对于任何 $x$ , $\Phi(x)$ 的曲线 $f(u) = e^{-u^2}$ 从 $u = 0$ 到 $u = x$ 下方的面积给出。

让我们考虑由方程 G.2 或G.3中的阴影区域给出的更一般的情况。我们可以通过多种方式近似这个面积。首先,将区间 $(a,b)$ 分成 $n$ 个等间距的子区间 $u_1 - u_0, u_2 - u_1, \dots, u_n - u_{n-1}$,其中 $u_0 = a$ 且 $u_n = b$。我们将令 $h = u_{j+1} - u_j$,对于 $j = 0, 1, \dots, n - 1$。G.4显示了一个子区间(例如 $u_j, u_{j+1}$ 子区间)的放大。一种近似曲线下方面积方法是连接 $f(u_j)$ 和 $f(u_{j+1})$,用直线如图G.4所示。在该区间内,直线近似 $f(u)$ 下方的面积矩形面积 [$hf(u_j)$] 和三角形面积 [$\frac{1}{2}h[f(u_{j+1}) - f(u_j)]$] 的总和。对所有区间使用近似,从 $u = a$ 到 $u = b$ 的曲线下方总面积由以下求和给出:

$$ I \approx I_n = hf(u_0) + \frac{h}{2}[f(u_1) - f(u_0)] $$

$$ + hf(u_1) + \frac{h}{2}[f(u_2) - f(u_1)] $$

$$ \vdots $$

$$ + hf(u_{n-2}) + \frac{h}{2}[f(u_{n-1}) - f(u_{n-2})] $$

$$ + hf(u_{n-1}) + \frac{h}{2}[f(u_n) - f(u_{n-1})] $$

$$ = \frac{h}{2}[f(u_0) + 2f(u_1) + 2f(u_2) + \dots + 2f(u_{n-1}) + f(u_n)] \quad \text{(G.4)} $$

注意方程 G.4 中的系数按 1, 2, 2, ..., 2, 1 的顺序排列。方程 G.4 对于 $n = 10$ 左右的手持计算器使用电子表格个人电脑(对于更大的 $n$ )来说很容易实现。由方程 G.4 给出的对积分近似称为梯形近似法(trapezoidal approximation)。[误差约为 $Ah^2$,其中 $A$ 是一个常数,取决于函数 $f(u)$ 的性质。实际上,如果 $M$ 是区间 $(a, b)$ 中 $|f''(u)|$ 的最大值,那么误差至多为 $M(b - a)h^2/12$。] G.2显示了

G.4 梯形近似法中第 $j + 1$ 个子区间面积图示

$$ \Phi(1) = \int_0^1 e^{-u^2} du \quad \text{(G.5)} $$

对于 $n = 10$ ($h = 0.1$), $n = 100$ ($h = 0.01$), 和 $n = 1000$ ($h = 0.001$) 的。到八位小数的“公认”使用更复杂的数值积分方法)是 0.74682413。

我们可以通过用二次函数而不是直线近似图G.4中的 $f(u)$,从而开发出更精确的数值积分例程。如果我们用二次函数近似 $f(u)$,我们得到辛普森法则(Simpson's rule),其公式

$$ I_{2n} = \frac{h}{3}[f(u_0) + 4f(u_1) + 2f(u_2) + 4f(u_3) + 2f(u_4) + \dots $$

$$ + 2f(u_{2n-2}) + 4f(u_{2n-1}) + f(u_{2n})] \quad \text{(G.6)} $$

注意系数按 1, 4, 2, 4, 2, 4, ..., 4, 2, 4, 1 的顺序排列。我们在方程 G.6 中写成 $I_{2n}$ 是因为辛普森法则要求区间数必须是偶数G.2显示了方程 G.5 中 $\Phi(1)$ 对于 $n = 10, 100$ 和 1000 的注意

G.2 梯形近似法方程 G.4)和辛普森法则方程 G.6)应用于评估方程 G.5 给出的 $\Phi(1)$。精确度到八位小数是 0.74682413。

$n$ $h$ $I_n$ (梯形近似法) $I_{2n}$ (辛普森法则)
10 0.1 0.74621800 0.74682494
100 0.01 0.74681800 0.74682414
1000 0.001 0.74682407 0.74682413

当 $n = 100$ 时,辛普森法则结果与“公认”仅在第八位小数上差一个单位辛普森法则误差约为 $h^4$,而梯形近似法误差约为 $h^2$。实际上,如果 $M$ 是区间 $(a, b)$ 中 $|f^{(4)}(u)|$ 的最大值,那么误差至多为 $M(b - a)h^4/180$。习题 G-10 到 G-13 说明了梯形近似法辛普森法则使用

示例 G-2

一种理论(来自德拜)认为,单原子晶体摩尔热容

$$ \bar{C}_V = 9R \left(\frac{T}{\Theta_D}\right)^3 \int_0^{\Theta_D/T} \frac{x^4 e^x}{(e^x-1)^2} dx $$

其中 $R$ 是摩尔气体常数($8.314 \text{ J K}^{-1} \text{ mol}^{-1}$),而 $\Theta_D$(德拜温度)是晶体物质特征参数。已知铜的 $\Theta_D = 309 \text{ K}$,计算铜在 $T = 103 \text{ K}$ 时的摩尔热容

在 $T = 103 \text{ K}$ 时,需要进行数值评估基本积分

$$ I = \int_0^3 \frac{x^4 e^x}{(e^x-1)^2} dx $$

使用梯形近似法方程 G.5)和辛普森法则方程 G.6),我们得到以下 $I$

$n$ $h$ $I_n$ (梯形近似法) $I_{2n}$ (辛普森法则)
10 0.3 5.9725 5.9648
100 0.03 5.9649 5.9648
1000 0.003 5.9648 5.9648

103 K 时的摩尔热容由下式给出:

$$ \bar{C}_V = 9R \left(\frac{1}{3}\right)^3 I $$

即 $\bar{C}_V = 16.5 \text{ J mol}^{-1} \text{ K}^{-1}$,与实验值一致。

尽管牛顿-拉弗森方法辛普森法则可以在电子表格上轻松实现,但也有许多易于使用数值软件包,如 MathCad, Kaleidagraph, Mathematica, 或 Maple,它们可以使用更复杂的数值方法来评估代数方程积分

习题

G-1. 求解方程 $x^5 + 2x^4 + 4x = 5$,对于介于 0 和 1 之间的,精确到四位有效数字

G-2. 使用牛顿-拉弗森方法推导迭代公式

$$ x_{n+1} = \frac{1}{2} \left(x_n + \frac{A}{x_n}\right) $$

用于求解 $\sqrt{A}$ 的。此公式由一位巴比伦数学家在 2000 多发现使用公式计算 $\sqrt{2}$,精确到五位有效数字

G-3. 使用牛顿-拉弗森方法求解方程 $e^{-x} + (x/5) = 1$,精确到四位有效数字。此方程出现在习题 1-5 中。

G-4. 考虑由以下方程描述的化学反应

$$ \text{CH}_4\text{(g)} + \text{H}_2\text{O(g)} \rightleftharpoons \text{CO(g)} + 3 \text{H}_2\text{(g)} $$

在 300 K 下。如果将 1.00 atm 的 CH₄(g) 和 H₂O(g) 引入反应容器平衡时的分压满足方程

$$ \frac{P_{CO} P_{H_2}^3}{P_{CH_4} P_{H_2O}} = \frac{(x)(3x)^3}{(1-x)(1-x)} = 26 $$

求解方程中的 $x$。

G-5. 在第16章,我们将求解三次方程

$$ 64x^3 + 6x^2 + 12x - 1 = 0 $$

使用牛顿-拉弗森方法找到此方程唯一的实,精确到五位有效数字

G-6. 求解方程 $x^3 - 3x + 1 = 0$ 的所有三个,精确到小数点后四位。

G-7.示例 16-3 中,我们将求解三次方程

$$ V^3 - 0.1231V^2 + 0.02056V - 0.001271 = 0 $$

使用牛顿-拉弗森方法找到此方程接近 $V = 0.1$ 的

G-8. 在第 16-3 中,我们将求解三次方程

$$ V^3 - 0.3664V^2 + 0.03802V - 0.001210 = 0 $$

使用牛顿-拉弗森方法证明此方程的三个分别为 0.07073, 0.07897, 和 0.2167。

G-9. 牛顿-拉弗森方法不仅限于多项式方程。例如,在习题 4-38 中,我们通过在同一坐标系中绘制 $\varepsilon^{1/2} \tan \varepsilon^{1/2}$ 和 $(12 - \varepsilon)^{1/2}$ 对 $\varepsilon$ 的曲线,并注意两条曲线交点求解方程

$$ \varepsilon^{1/2} \tan \varepsilon^{1/2} = (12 - \varepsilon)^{1/2} $$

$\varepsilon$。我们发现 $\varepsilon = 1.47$ 和 $11.37$。使用牛顿-拉弗森方法求解上述方程,并获得相同的 $\varepsilon$

G-10. 使用梯形近似法辛普森法则计算

$$ I = \int_0^1 \frac{dx}{1 + x^2} $$

积分可以解析计算;它由 $\tan^{-1}(1)$ 给出,等于 $\pi/4$,所以 $I = 0.78539816$(到小数点后八位)。

G-11. 通过计算

$$ \ln 2 = \int_1^2 \frac{dx}{x} $$

$\ln 2$,精确到小数点后六位。需要多少个区间 $n$ 才能保证六位有效数字精度

G-12. 使用辛普森法则计算

$$ I = \int_0^\infty e^{-x^2} dx $$

并将您的结果与精确 $\sqrt{\pi}/2$ 进行比较。

G-13. 积分

$$ I = \int_0^\infty \frac{x^3 dx}{e^x - 1} $$

出现在习题 1-42 中,其中我们使用了它的精确 $\pi^4/15$。使用辛普森法则计算 $I$,精确到小数点后六位。

G-14. 使用数值软件包,例如 MathCad, Kaleidagraph, 或 Mathematica,计算积分

$$ S = 4\pi^{1/2} \left(\frac{2\alpha}{\pi}\right)^{3/4} \int_0^\infty r^2 e^{-r^2} e^{-\alpha r^2} dr $$

对于 $\alpha$ 在 0.200 到 0.300 之间的,并证明 $S$ 在 $\alpha = 0.271$ 处有最大值(参见习题 11-11)。

约翰内斯·迪德里克·范德瓦尔斯(Johannes Diderik van der Waals)于1837年11月23日出生于荷兰莱顿,卒于1923年。由于他未曾学习拉丁语希腊语,起初无法继续大学学业,因此在中学担任教师。然而,在新法规通过后,范德瓦尔斯获得了大学古典语言要求的豁免,并于1873年在莱顿大学提交了他的博士论文。在他的论文中,他提出了对气相液相连续性以及临界点现象解释,并推导出了一个新的气体状态方程,现称为范德瓦尔斯方程。几年后,他提出了对应态定律,该定律将所有气体性质归结为一个共同基础。尽管他的论文是用荷兰语写的,但他的工作很快引起了麦克斯韦注意麦克斯韦于1875年在英国期刊自然》上发表了一篇英文评论,从而使这项工作引起了更广泛读者关注。1876年,范德瓦尔斯被任命为新成立的阿姆斯特丹大学第一任物理学教授。该大学在很大程度上通过范德瓦尔斯影响,成为了流体理论实验研究中心范德瓦尔斯因其“关于气体液体状态方程工作”于1910年被授予诺贝尔物理学奖