2 目 录 2.4.1 Euler 方 法................................ 39 2.4.2 龙 格 库 塔 方 法............................ 40 2.4.3 两 点 边 值 问 题...........................



Similar documents
證 明 : 令 φ(x f(x, ydy, 則 φ(x + x φ(x x f x (ξ, ydy f x (ξ, y f x (x, y dy f x (x, ydy f(x + x, y f(x, y d dy f x (x, ydy x f x (x, ydy, ξ ξ(y 介 於 x, x

總目186-運輸署

Microsoft Word - BD-QH2004.doc

標準 BIG 中文字型碼表 A 0 9 B C D E F 一 乙 丁 七 乃 九 了 二 人 儿 入 八 几 刀 刁 力 匕 十 卜 又 三 下 丈 上 丫 丸 凡 久 么 也 乞 于 亡 兀 刃 勺 千 叉 口 土 士 夕 大 女 子 孑 孓 寸 小 尢 尸 山 川 工 己 已 巳 巾 干 廾

ii

Microsoft Word - chead095.doc


untitled

ABC Amber Text Converter

專 用 或 主 要 用 於 第 8525 至 8528 節 所 屬 器 具 之 零 件 用 於 衣 服 靴 鞋 帳 蓬 手 提 包 旅 行 用 品 或 其 他 已 製 作 品 之 卑 金 屬 搭 鈕 帶 搭 鈕 之 框 架 帶 扣 帶 扣 搭 鈕 眼 環 眼 及 其

3.2 導 函 數 其 切 線 (tangent line) 為 通 過 P, 且 其 斜 率 為 m 的 直 線, 即 y = f(a) + m(x a) (3) 其 法 線 (normal line) 為 通 過 P 且 與 切 線 垂 直 的 直 線, 即 y = f(a) 1 (x a) m

Microsoft Word - whfq fm_new_.doc

996,,,,,,, 997 7, 40 ; 998 4,,, 6, 8, 3, 5, ( ),, 3,,, ;, ;,,,,,,,,,


koji-13.dvi

. () ; () ; (3) ; (4).. () : P.4 3.4; P. A (3). () : P. A (5)(6); B. (3) : P.33 A (9),. (4) : P. B 5, 7(). (5) : P.8 3.3; P ; P.89 A 7. (6) : P.

13WuYW_4questions

① ⑰ ⒀ ⒐ ② ⑱ ⒁ ⒑ 〡 〱 ぁ ③ ⑲ ⒂ ⒒ 〢 〲 あ ④ ⑳ ⒃ ⒓ 〣 〳 ぃ ⑤ ⑴ ⒄ ⒔ 〤 〴 い ⑥ ⑵ ⒅ ⒕ 々 〥 〵 ぅ ⑦ ⑶ ⒆ ⒖ 〆 〦 う ⑧ ⑷ ⒇ ⒗ 〇 〧 ぇ ⑨ ⑸ ⒈ ⒘ 〨 ⑩ ⑹ ⒉ ⒙ 〩 ⑪ ⑺ ⒊ ⒚ ⓪ ⑯ ⑿ ⒏ え ぉ お

在 上 述 物 理 模 型 中 ( 三 隻 猴 子 的 重 量 都 一 樣 ), 考 慮 底 下 四 個 問 題 : () 當 三 股 力 量 處 於 平 衡 狀 態, 而 且 F 點 處 於 ABC 的 內 部 時, 利 用 力 的 向 量 和 為 零 的 觀 念, 求 角 度 AFB, BFC,

虎克定律實驗 楊勝斐

範 例 1.1 試 解 出 下 列 微 分 方 程 dx = y. 不 嚴 謹 做 法 : 把 微 分 方 程 改 寫 為 y = dx. 兩 邊 同 時 積 分 y = 之 後 可 以 推 得 : ln y = X + C, 兩 邊 同 時 取 exp 之 後 可 以 得 到 y = Ce x.

MATHEMATICAL MODELING SPONSORED BY: SHUMO.COM COMPILED BY: Mathematical Modeling Editors Group HOMEPAGE:

微 分 方 程 是 经 典 数 学 的 一 个 重 要 分 支, 常 用 来 描 述 随 时 间 变 化 的 动 态 系 统, 被 广 泛 应 用 于 物 理 学 工 程 数 学 和 经 济 学 等 领 域. 实 际 上, 系 统 在 随 时 间 的 变 化 过 程 中, 经 常 会 受 到 一 些

K526-ML

微积分 授课讲义

Microsoft Word - 实验习题N.doc

C35N32.dvi

第6章

<4D F736F F D20B9FAB7C0BFC6D1A7BCBCCAF5B4F3D1A7B9D8D3DA C4EAD5D0C9FAD7A8D2B5B8FCB8C4B5C4B9ABB8E6>

<4D F736F F D20CAA5B2C5D1A7CFB0CDF8CBAED3A120C4A3B0E52E646F63>

一 耀 州 青 瓷 的 裝 飾 手 法 與 紋 飾 種 類 耀 州 窯 的 裝 飾 紋 樣, 豐 富 多 變, 而 且 題 材 內 容 廣 泛, 組 合 形 式 多 樣, 圖 案 形 象 優 美, 令 人 賞 心 悅 目, 並 且 反 映 了 當 時 社 會 的 審 美 趣 味 和 理 想 裝 飾

Microsoft Word 专业主干课程和主要专业课程的教学大纲.doc


数值分析ch3.ppt


得 到 了 補 償. 對 於 武 姜 而 言, 莊 公 與 自 己 的 關 係 並 不 親 密, 而 共 叔 段 又 是 自 己 向 來 疼 愛 有 加 的 兒 子, 所 以, 對 莊 公 提 出 再 怎 麼 無 理 的 要 求, 武 姜 也 不 會 覺 得 有 什 麼 不 妥 之 處, 而 對 共


中華民國第51屆中小學科學展覽會

巫月娥网络生态视阈下感知网络商业伦理对顾客忠诚的影响 在网络商业环境中遵循的伦理准则 以往研究对 一 引言 网络商业伦理的维度没有达成一致的结论被学 者和消费者认为最重要的网络商业伦理问题是安 根据中国电子商务研究中心发布 年中 全性和隐私 此外有学者还研究网络销售中 国电子商务市场数据监测报告 截

Ⅰ Ⅱ Ⅲ Ⅳ

高等数学A

国防科学技术大学

12天 本 會103年 模 範 郵 工 董 麗 珍 趙 美 珍 2人 參 加 梁 周昆法 歐陽陪興 林青豊 林秀蓮 曾文俊 甯鎮美 鄭麗娟 周肖梅 陳宏 103 年 11 月 23 日 板 橋 分 會 假 西 湖 渡 假 益 周 錦 燕 等12人 奉 准 升 遷 申 請 中 華 郵 政 村 舉 辦2

课 程 结 构 : 一 规 章 制 度 撰 写 二 劳 动 合 同 订 立 变 更 三 工 作 内 容 绩 效 管 理 四 违 纪 违 规 问 题 员 工 处 理 2

3.1 ( ) (Expectation) (Conditional Mean) (Median) Previous Next

025-

042-

Transcription:

目 录 第 零 章 绪 论 5 第 一 章 计 算 机 数 和 误 差 9 1.1 计 算 机 数 及 其 表 示................................ 9 1.2 舍 入 误 差 对 计 算 的 影 响............................. 10 1.3 减 法 的 计 算.................................... 12 第 二 章 物 理 学 中 的 常 用 数 值 方 法 13 2.1 数 值 积 分 方 法.................................. 13 2.1.1 梯 形 法 和 辛 普 生 方 法.......................... 13 2.1.2 反 常 积 分 的 计 算............................. 15 2.1.3 高 斯 积 分 方 法.............................. 17 2.1.4 哥 西 主 值 的 计 算............................. 20 2.1.5 急 速 振 荡 函 数 的 积 分.......................... 22 2.1.6 高 维 积 分 的 计 算............................. 24 2.1.7 固 体 热 容 量 的 计 算........................... 24 2.2 方 程 的 求 根 和 最 优 化 方 法............................ 25 2.2.1 二 分 法.................................. 25 2.2.2 牛 顿 法 和 割 线 法............................. 26 2.2.3 一 维 最 优 化, 黄 金 分 割 法........................ 27 2.2.4 高 维 最 优 化, 共 扼 梯 度 方 法....................... 29 2.2.5 约 束 最 优 化............................... 33 2.2.6 最 小 二 乘 法 及 曲 线 拟 合......................... 34 2.3 函 数 的 求 值.................................... 36 2.3.1 多 项 式 的 求 值 和 级 数 求 和....................... 36 2.3.2 连 分 式 的 求 值.............................. 38 2.4 常 微 分 方 程 的 数 值 解 法............................. 39

2 目 录 2.4.1 Euler 方 法................................ 39 2.4.2 龙 格 库 塔 方 法............................ 40 2.4.3 两 点 边 值 问 题.............................. 44 2.5 插 值 和 逼 近.................................... 47 2.5.1 多 项 式 插 值............................... 48 2.5.2 分 式 有 理 函 数 插 值 和 外 推....................... 49 2.5.3 三 次 样 条 插 值.............................. 50 2.5.4 列 表 函 数 的 积 分............................. 51 2.5.5 Padé 插 值 与 外 推............................. 52 2.5.6 发 散 级 数 的 Cesáro 求 和 及 其 推 广................... 56 2.5.7 Borel 求 和................................ 58 2.5.8 Bézier 逼 近................................ 59 2.5.9 多 元 函 数 的 插 值 及 逼 近......................... 60 2.6 快 速 付 里 叶 变 换................................. 63 2.6.1 付 里 叶 变 换............................... 63 2.6.2 离 散 付 里 叶 变 换............................. 65 2.6.3 快 速 付 里 叶 变 换............................. 68 2.7 附 录 : 特 殊 函 数 的 计 算.............................. 71 2.7.1 误 差 函 数 的 计 算............................. 73 2.7.2 指 数 积 分 的 计 算............................. 74 2.7.3 整 数 阶 贝 塞 尔 函 数 及 虚 宗 量 贝 塞 尔 函 数 的 计 算........... 75 2.7.4 球 谐 函 数 的 计 算............................. 84 2.7.5 椭 圆 积 分 的 计 算............................. 86 2.8 附 录 : 高 斯 积 分 的 节 点 和 权 重.......................... 88 第 三 章 数 值 线 性 代 数 93 3.1 主 元 消 去 法 解 线 性 代 数 方 程 组......................... 93 3.2 LU 分 解 法.................................... 94 3.3 三 对 角 方 程 组 的 求 解.............................. 97 3.4 实 对 称 矩 阵 的 本 征 值 和 本 征 向 量........................ 98 3.4.1 Householder 方 法............................ 98 3.4.2 QL 算 法................................. 100 第 四 章 电 磁 场 的 计 算 103 4.1 Maxwell 方 程, 边 值 问 题............................. 103 4.2 差 分 和 差 商.................................... 105

目 录 3 4.3 二 维 Possion 方 程 的 五 点 差 分 格 式....................... 106 4.4 差 分 方 程 的 求 解................................. 109 4.4.1 简 单 迭 代 法 Jaobi 方 法....................... 110 4.4.2 逐 次 迭 代 法 Gauss Seidal 迭 代 方 法................. 110 4.4.3 逐 次 超 松 弛 迭 代 法 (Suessive Over-Relaxation)........... 110 4.5 变 分 方 法 复 习.................................. 112 4.6 有 限 元 方 法 的 理 论 基 础............................. 115 4.7 用 有 限 元 方 法 求 解 二 维 Laplae 方 程...................... 118 第 五 章 Monte Carlo 方 法 125 5.1 随 机 变 量 及 其 分 布................................ 125 5.2 赝 随 机 数 的 产 生................................. 127 5.3 用 Monte Carlo 方 法 计 算 积 分.......................... 129 5.4 自 相 似 性 与 分 形................................. 132 5.5 扩 散 限 制 粘 结 的 计 算 机 模 拟.......................... 134 5.6 高 分 子 的 模 拟 和 无 规 行 走............................ 135 第 六 章 逾 渗 和 统 计 物 理 问 题 137 6.1 逾 渗 简 介..................................... 137 6.2 逾 渗 的 计 算 机 模 拟 和 分 析............................ 140 6.3 正 则 系 综 和 统 计 模 型.............................. 141 6.3.1 Ising 模 型................................ 142 6.3.2 Lenard-Jones 模 型............................ 143 6.4 统 计 物 理 的 Monte Carlo 模 拟, Metroplis 方 法................. 143 6.5 Ising 模 型 的 Monte Carlo 模 拟......................... 146 6.6 经 典 统 计 物 理 复 习................................ 147 6.6.1 The miro anonial ensemble(nve).................. 148 6.6.2 The anonial ensemble(nvt)..................... 148 6.6.3 The NPT ensemble(npt)........................ 149 6.6.4 The grand anonial ensemble(..................... 149 6.6.5 Thermodynamial relations....................... 150 6.6.6 Correlation funtions........................... 150 6.6.7 Time orrelation funtion and transport oeffiients.......... 152 6.7 液 体 模 型 的 Monte Carlo 模 拟.......................... 153 6.7.1 Monte Carlo Simulation of The Lenard -Jones Model.......... 154 6.7.2 自 由 能 计 算............................... 156

4 目 录 6.7.3 王 -Landau 方 法 及 其 它......................... 157 6.8 分 子 动 力 学 方 法................................. 159 6.8.1 General proedure of MD (NVE ensemble).............. 159 6.8.2 Simulation of Lennard-Jones liquids.................. 163 6.8.3 Simulation of Hard-sphere systems................... 163 6.9 Simulation of Langevin dynamis........................ 164 6.10 Long range fore and Ewald summation..................... 166 第 七 章 原 子 结 构 的 计 算 167 7.1 原 子 结 构 问 题.................................. 167 7.2 变 分 法...................................... 168 7.3 Viral 定 理 和 Hellmann-Feynman 定 理..................... 170 7.4 轨 道 近 似 和 Hartree Fok 方 程......................... 173 7.5 统 计 近 似 和 X α 方 程............................... 175 7.6 径 向 方 程 的 求 解 方 法.............................. 178 7.7 计 算 程 序..................................... 181

第 零 章 绪 论 不 论 是 理 论 物 理, 还 是 实 验 物 理 都 离 不 开 数 值 计 算, 例 如, 量 子 力 学 中 简 谐 振 子 的 波 函 数 可 以 用 厄 米 多 项 式 来 表 示, 但 为 了 得 到 波 函 数 的 数 值, 仍 然 需 要 作 数 值 计 算 ; 实 验 上 测 量 到 的 数 据 要 进 行 数 据 处 理, 也 涉 及 到 数 据 拟 合, 分 析 并 计 算 误 差 等 一 系 列 数 值 计 算. 大 家 在 过 去 的 学 习 中 已 经 知 道, 牛 顿 力 学 方 程 只 有 二 体 问 题 是 可 解 的 ( 自 由 粒 子 或 小 振 动 等 特 殊 问 题 除 外 ), 三 体 以 上 的 问 题 曾 折 磨 了 全 世 界 的 许 多 优 秀 的 数 学 家 和 理 论 物 理 学 家, 但 最 终 也 未 得 到 解 析 解 ; 麦 克 斯 韦 方 程 组 只 有 在 一 些 非 常 特 殊 的 条 件 下 才 能 求 得 解 析 解 ; 量 子 力 学 的 薛 定 格 方 程, 除 了 氢 原 子 和 简 谐 振 子 外, 还 没 有 一 个 真 实 的 物 理 问 题 可 以 找 到 解 析 解 ; 统 计 物 理 告 诉 我 们, 只 要 求 得 了 系 统 的 配 分 函 数, 则 一 切 物 理 量 都 可 通 过 求 微 分 得 到, 然 而, 除 了 可 数 的 几 个 二 维 模 型 外, 没 有 一 个 实 际 的 物 理 系 统 的 配 分 函 数 被 求 出 来 过. 一 些 大 规 模 的 物 理 实 验, 耗 资 在 数 亿 美 元, 如 果 没 有 充 分 的 论 证 就 去 做 的 话, 其 浪 费 是 十 分 巨 大 的. 对 于 这 样 一 类 问 题, 大 规 模 的 数 值 计 算 往 往 可 以 发 挥 重 要 作 用. 大 规 模 数 值 计 算 也 提 供 了 理 论 物 理 和 实 验 物 理 之 间 的 桥 梁. 几 乎 所 有 的 实 际 物 理 问 题 都 无 法 得 到 精 确 解, 发 展 各 种 理 论 模 型 和 近 似 方 法 就 成 为 理 论 物 理 学 的 重 要 方 面. 理 论 模 型 的 正 确 性 最 终 需 要 经 受 实 践 的 检 验, 但 对 于 一 个 确 定 的 物 理 模 型, 其 对 应 的 实 验 体 系 往 往 很 难 获 得, 为 了 检 验 针 对 一 个 确 定 模 型 的 近 似 方 法, 最 好 能 够 得 到 这 个 模 型 的 精 确 解, 而 数 值 模 拟 方 法 正 好 能 够 提 供 这 样 的 结 果. 大 量 的 实 验 体 系 往 往 包 含 多 种 因 素, 这 些 因 素 有 些 可 以 排 除, 而 有 些 非 常 难 以 排 除. 如 果 一 个 理 论 的 出 发 点 包 含 了 所 有 的 实 验 因 素, 则 这 样 的 理 论 几 乎 肯 定 得 不 到 解 析 结 果. 但 是, 数 值 模 拟 方 法 一 般 总 能 够 把 各 种 因 素 包 含 进 去, 从 而 能 够 更 好 的 模 拟 实 验 环 境. 需 要 指 出 的 是, 长 期 以 来, 我 们 总 有 一 些 误 解, 一 讲 到 计 算, 似 乎 就 需 要 超 级 计 算 机. 事 实 上, 现 在 使 用 的 笔 记 本 计 算 机, 各 种 微 型 计 算 机 的 计 算 能 力 往 往 比 10 年 前 的 超 级 计 算 机 的 计 算 能 力 更 强. 用 一 台 目 前 似 乎 已 经 被 人 看 不 起 的 IBM-PC/XT 微 机 (IBM-PC 是 基 于 intel 芯 片 的 第 一 代 个 人 计 算 机, 大 约 1980 年 推 出, 其 CPU 是 intel-8086 芯 片, 有 64k 内 存, 两 个 5 吋 软 驱, 机 器 带 有 MS-DOS 1.0 和 CP/M 两 个 操 作 系 统,IBM-PC/XT 是 IBM-PC 的 扩 展, 增 加 了 一 个 10M 的 硬 盘, 并 且 把 内 存 增 加 到 256K), 就 可 以 很 容 易 地 解 决 三 体 问 题, 四 体 问 题,. 所 有 元 素 周 期 表 上 的 原 子 的 能 级 和 波 函 数 也 可 以 相 当 精 确

6 第 零 章 绪 论 地 计 算 出 来. 如 果 你 拥 有 一 台 目 前 市 场 上 一 般 配 置 的 微 机, 你 就 可 以 模 拟 一 些 二 维 和 三 维 模 型 系 统 的 配 分 函 数, 如 Lenard-Jones 流 体, 三 维 Ising 模 型 等, 可 以 计 算 元 素 固 体 和 简 单 化 合 物 晶 体 的 电 子 结 构, 声 子 谱 等. 进 一 步, 你 如 果 拥 有 或 能 够 使 用 到 大 型 计 算 机, 或 利 用 微 机 构 成 计 算 集 群, 你 就 可 以 作 真 实 流 体 的 流 体 力 学 计 算, 可 以 计 算 复 杂 边 界 条 件 下 的 三 维 电 磁 场, 可 以 计 算 三 维 真 实 系 统 的 配 分 函 数,. 同 样 你 也 能 够 在 大 型 物 理 实 验 开 始 前 作 很 多 模 拟, 对 实 验 的 各 种 情 况 有 一 个 清 楚 的 概 念. 本 课 程 的 目 的 在 于 对 物 理 中 的 数 值 计 算 进 行 一 些 入 门 介 绍, 使 大 家 在 学 完 本 课 程 后, 在 组 织 一 些 较 大 规 模 的 计 算 时 心 中 有 数, 少 走 弯 路. 课 程 分 两 部 分, 一 部 分 是 基 本 算 法, 主 要 介 绍 计 算 机 数 的 特 点, 舍 入 误 差, 计 算 稳 定 性 等 基 本 概 念 和 一 些 常 用 的 数 值 计 算 方 法 ; 第 二 部 分 则 结 合 物 理 问 题, 讲 一, 二 个 专 题, 使 大 家 学 到 一 些 组 织 较 大 规 模 计 算 的 步 骤 和 技 巧. 学 习 本 课 程 要 求 学 过 四 大 力 学 ( 经 典 力 学, 电 动 力 学, 热 力 学 和 统 计 物 理 学 及 量 子 力 学 ) 和 数 学 物 理 方 法, 掌 握 至 少 一 门 计 算 机 高 级 语 言 ( 如 C, PASCAL, FORTRAN, Java 等 ). 计 算 是 一 门 实 践 性 很 强 的 课 程, 上 机 实 习 是 本 课 程 的 一 个 有 机 组 成 部 分. 关 于 本 讲 义 的 一 点 说 明 : 这 是 笔 者 在 1993 年 为 开 设 计 算 物 理 课 程 准 备 的 讲 义. 1992 年, 上 海 交 通 大 学 应 用 物 理 系 代 理 系 主 任 张 仲 渊 教 授 找 到 我, 告 诉 我 决 定 在 本 科 生 高 年 级 开 设 计 算 物 理 课 程, 并 安 排 由 笔 者 开 课. 在 接 到 这 一 任 务 后, 笔 者 翻 阅 了 当 时 国 内 出 版 的 几 本 计 算 物 理 教 材, 发 现 都 过 于 专 门, 不 适 于 做 为 本 科 高 年 级 的 教 材, 而 更 适 合 于 某 一 专 业 的 研 究 生 教 材. 为 此, 我 只 好 试 图 自 己 写 一 本 讲 义, 以 应 急 需. 基 本 算 法 部 分 主 要 参 考 了 W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery 所 著 Numerial Reipes, The Art of Sientifi Computing 一 书, 当 时, 这 本 书 出 版 时 间 还 不 算 太 长, 但 已 经 成 为 大 多 数 经 常 从 事 数 值 计 算 的 物 理 学 工 作 者 的 手 头 必 备 书, 我 自 己 当 时 也 买 了 一 本, 书 价 是 我 的 两 个 月 的 工 资 这 本 书 一 方 面 讲 解 算 法, 另 一 方 面 对 每 一 个 算 法 给 出 了 透 明, 简 洁 的 源 程 序 尽 管 这 些 程 序 的 效 率, 安 全 性 方 面 比 一 些 成 熟 的 软 件 包 要 差, 但 由 于 其 简 洁 清 楚, 特 别 适 合 于 修 改 后 放 到 自 己 的 程 序 中 去 讲 义 的 内 容 曾 在 上 海 交 通 大 学 应 用 物 理 系 讲 授 多 次, 各 个 年 级 的 同 学 积 极 参 与 了 本 课 程 的 学 习 并 对 课 程 的 讲 法 提 出 了 很 多 非 常 宝 贵 的 意 见 和 建 议, 这 些 建 议 在 讲 义 的 成 文 中 对 笔 者 有 很 大 帮 助, 在 此 表 示 感 谢. 2000 年 后, 物 理 系 决 定 把 计 算 物 理 课 程 改 为 双 语 课 程, 这 本 讲 义 就 算 完 成 了 其 历 史 使 命. 在 教 学 过 程 中, 我 也 发 现 这 一 讲 义 对 一 些 问 题 的 讲 解 过 于 简 洁, 而 内 容 的 深 度 也 不 太 适 合 本 科 生 的 学 习. 这 一 段 时 间, 国 际 上 出 现 了 几 本 比 较 合 适 的 教 材, 所 以,

7 当 时 认 为 这 一 讲 义 不 需 要 继 续 修 订, 也 就 放 在 一 边 了. 随 后, 研 究 生 的 课 程 做 了 一 些 改 革, 增 加 了 36 学 时 的 数 值 计 算, 任 课 老 师 感 觉 这 个 讲 义 的 内 容 作 为 研 究 生 数 值 计 算 的 课 程 比 较 合 适, 遂 采 用 这 本 讲 义 的 电 子 版 教 学. 2013 年 10 月, 致 远 学 院 的 叶 曦 副 院 长 和 负 责 物 理 班 教 学 的 郑 杭 教 授 找 我, 希 望 我 为 致 远 学 院 的 同 学 开 设 一 门 物 理 中 数 值 计 算 的 课 程 注 意 到 致 远 学 院 已 经 有 至 少 两 门 相 关 课 程, 这 门 课 程 应 该 更 多 强 调 物 理 方 面 为 了 这 个 课 程, 利 用 寒 假, 我 修 订 了 讲 义, 主 要 是 对 原 来 的 一 些 表 述 做 了 修 改 和 补 充, 同 时 尽 可 能 强 调 物 理 方 面 的 内 容. 鉴 于 目 前 已 经 存 在 大 量 优 秀 的 数 学 软 件, 如 Matlab, Maple 等. 大 量 的 小 规 模 的 计 算 往 往 可 以 通 过 这 些 软 件 方 便 进 行, 因 此, 此 次 修 订 时 时 也 适 当 提 到 这 方 面 的 内 容 讲 义 中 提 到 的 一 些 程 序 将 放 在 课 程 主 页 上, 这 些 程 序 中, 有 些 来 自 前 面 提 到 的 Numerial Reipes, 有 些 是 我 曾 经 多 次 使 用 过 的, 也 有 些 是 专 为 此 讲 义 而 准 备 的, 由 于 时 间 关 系, 没 有 经 过 仔 细 调 试 和 考 验, 因 此 在 用 于 实 际 问 题 时, 一 定 要 经 过 仔 细 试 算, 以 免 造 成 不 必 要 的 损 失, 同 时, 我 也 愿 在 此 声 明, 笔 者 对 因 使 用 此 讲 义 中 的 程 序 而 导 致 的 任 何 直 接 的 和 间 接 的 损 失 将 不 负 担 任 何 责 任. 所 有 程 序 都 以 FORTRAN 77 写 出, 鉴 于 C 语 言 在 实 际 工 作 中 使 用 的 越 来 越 广 泛, 同 时 也 是 很 多 同 学 喜 欢 的 语 言, 部 分 程 序 已 经 翻 译 为 C 语 言. 由 于 程 序 是 用 FORTRAN 写 的, 翻 译 中 自 然 留 有 FORTRAN 的 痕 迹. 在 上 次 讲 义 完 成 到 这 次 修 订 之 间, 面 向 对 象 的 程 序 设 计 逐 步 走 向 主 流, 其 代 表 性 语 言 是 ++ 和 Java, 建 议 有 志 于 从 事 计 算 物 理 的 同 学 注 意 这 一 点.

8 第 零 章 绪 论

第 一 章 计 算 机 数 和 误 差 在 这 一 章 中, 我 们 将 给 出 电 子 数 字 计 算 机 中 数 的 表 示, 计 算 规 则, 舍 入 误 差 及 算 法 稳 定 性 等 概 念, 在 处 理 上, 并 不 追 求 数 学 上 的 严 密, 而 是 用 一 些 启 发 式 的 推 导 和 例 子 来 说 明 主 要 概 念, 需 要 进 一 步 钻 研 的 同 学, 可 以 参 看 有 关 计 算 数 学 的 书 籍. 1.1 计 算 机 数 及 其 表 示 我 们 在 初 中 的 数 学 上 就 已 经 知 道, 数 有 整 数, 实 数 和 复 数, 整 数 可 以 取 0, ±1, ±2,..., ±n,..., ±, 实 数 则 是 整 个 数 轴 上 的 连 续 统. 数 学 分 析 就 是 建 立 在 实 数 系 上 的. 实 数 的 运 算 满 足 加 法 和 乘 法 的 交 换 律, 接 合 律 等 一 般 的 运 算 律. 而 计 算 机 所 能 表 达 的 数 的 全 体, 则 是 一 个 离 散 的, 有 限 的 集 合. 通 常 计 算 机 整 数 的 取 值 范 围 为 N 到 N 1, N 的 数 值 随 计 算 机 不 同 而 异, 如 IBM-PC 机 的 N = 32768. 实 数 也 有 一 个 取 值 范 围, 在 IBM-PC 上, 实 数 的 绝 对 值 最 大 约 为 10 38, 最 小 约 为 10 38, 大 于 最 大 值 的 数 将 造 成 上 溢, 小 于 最 小 值 的 数 将 造 成 下 溢.( 在 很 多 计 算 机 系 统 中, 下 溢 作 为 0 来 处 理 ). 计 算 机 实 数 在 其 范 围 内 的 分 布 是 非 常 不 均 匀 的, 在 靠 近 0 的 地 方 较 密, 离 开 0 越 远 越 稀 疏. 计 算 机 实 数 一 般 不 满 足 实 数 的 运 算 律. 计 算 机 中 的 实 数 通 常 用 规 格 化 的 二 进 制 浮 点 数 来 表 示, 例 如 11.001, 0.011001 和 0.11001 分 别 表 示 为 0.11001 2 2, 0.11001 2 1 和 0.11001 2 0. 由 于 计 算 机 只 有 有 限 的 字 长, 所 以 只 能 表 示 有 限 个 实 数, 例 如, 对 于 一 个 字 长 为 五 的 计 算 机, 将 无 法 区 分 0.11001, 0.110010101. 既 然 计 算 机 的 实 数 是 一 个 有 限 的 集 合, 那 么 初 始 数 据 和 中 间 结 果 都 有 可 能 不 在 这 个 集 合 中, 于 是 必 须 用 计 算 机 实 数 去 近 似 表 示 相 应 的 实 数, 从 而 引 进 舍 入 误 差. 如 果 按 照 四 舍 五 入 的 原 则 去 近 似 表 示, 则 由 计 算 机 表 示 一 个 实 数 时 引 进 的 舍 入 误 差 不 大 于 最 后 一 位 数 的 一 半, 但 很 多 计 算 机 采 用 了 只 舍 不 入 的 方 法, 则 由 计 算 机 数 表 示 一 个 实 数 时 引 进 的 舍 入 误 差 最 大 可 为 最 后 一 个 二 进 制 位.

10 第 一 章 计 算 机 数 和 误 差 1.2 舍 入 误 差 对 计 算 的 影 响 在 数 值 计 算 过 程 中, 一 般 每 一 步 都 有 舍 入 误 差, 舍 入 误 差 的 积 累 有 可 能 使 整 个 计 算 失 败. 例 如, 考 虑 下 述 问 题, 计 算 积 分 利 用 分 部 积 分 法 得 到 或 1 E n = 1 0 x n e x 1 dx, n = 1, 2,..., 20. x n e x 1 dx = x n e x 1 1 0 n 1 0 0 x n 1 e x 1 dx, E n = 1 n E n 1 容 易 算 出 E 1 = 1/e. 利 用 上 述 递 推 公 式, 在 IBM-PC 微 机 上 用 双 精 度 计 算 结 果 如 下 : E 1 = 0.36787944117144 E 2 = 0.26424111765712 E 3 = 0.20727664702865 E 4 = 0.17089341188538 E 5 = 0.14553294057308 E 6 = 0.12680235656152 E 7 = 0.11238350406936 E 8 = 0.10093196744509 E 9 = 0.091612292994171 E 10 = 0.083877070058293 E 11 = 0.077352229358780 E 12 = 0.071773247694637 E 13 = 0.066947779969723 E 14 = 0.062731080423873 E 15 = 0.059033793641902 E 16 = 0.055459301729570 E 17 = 0.057191870597308 E 18 =.029453670751536 E 19 = 1.5596197442792 E 20 = 30.192394885584 被 积 函 数 在 积 分 区 间 [0, 1] 的 内 部 总 是 正 的, 因 此 积 分 值 不 可 能 为 负, 更 进 一 步, 由 于 E n = 1 0 x n e x 1 dx 1 0 x n dx = 1 n + 1 所 以, 必 有 E 20 1/21. 显 然, 上 述 计 算 结 果 是 不 正 确 的, 而 问 题 就 出 在 舍 入 误 差 上 面. 我 们 对 此 作 一 个 简 单 的 分 析. 双 精 度 数 可 表 示 14 位 10 进 制 数, 所 以 E 1 的 误 差 约 为 ϵ = 10 15 ( 也 可 能 大 于 此 数, 这 里 仅 作 一 数 量 级 的 估 计 ). 在 递 推 过 程 中, 这 个 误 差 将 被 传 播, 放 大, 最 后 导 致 计 算 结 果 的 错 误. 误 差 的 传 播 规 律 为 E 2 = 1 2(E 1 + ϵ) = 1 2E 1 2ϵ E 3 = 1 3(1 2E 1 2ϵ) = 1 3(1 2E 1 ) + 3!ϵ

1.2 舍 入 误 差 对 计 算 的 影 响 11 计 算 到 E 15 时 的 误 差 为 15!ϵ 10 3, 而 计 算 到 E 18 时 的 误 差 已 为 18!ϵ 6.0, 已 经 远 大 于 E 18 的 上 限 1/19. 现 在 我 们 考 虑 把 递 推 关 系 改 写 成 E n 1 = 1 E n, n =, 4, 3, 2. n 利 用 关 系 E n 1 n + 1 取 E 30 = 0.0 开 始 计 算, 此 时 误 差 为 ϵ 1/31 0.032, 作 一 次 递 推 后 得 到 E 29, 其 误 差 减 小 到 1 1 30 31 0.0011 在 计 算 E 20 时, 误 差 已 减 小 到 20! 31! 3 10 16 准 确 到 14 位 有 效 数 字, 初 始 误 差 的 影 响 已 完 全 消 除 了. 而 每 一 步 的 舍 入 误 差, 都 在 其 后 的 迭 代 中 减 小 和 消 除 下 表 是 计 算 结 果. E 30 = 0.0 E 29 = 0.33333333333333 E 28 = 0.033333333333333 E 27 = 0.034523809523810 E 26 = 0.035758377425044 E 25 = 0.037086216252883 E 24 = 0.038516551349885 E 23 = 0.040061810360421 E 22 = 0.041736443027808 E 21 = 0.043557434407827 E 20 = 0.045544884075818 E 19 = 0.047722755796209 E 18 = 0.050119854958094 E 17 = 0.052771119168995 E 16 = 0.055719345931236 E 15 = 0.059017540879298 E 14 = 0.062732163941380 E 13 = 0.066947702575616 E 12 = 0.071773253648030 E 11 = 0.077352228862664 E 10 = 0.083877070103394 E 9 = 0.091612292989661 E 8 = 0.10093196744559 E 7 = 0.11238350406930 E 6 = 0.12680235656153 E 5 = 0.14553294057308 E 4 = 0.17089341188538 E 3 = 0.20727664702865 E 2 = 0.26424111765712 E 1 = 0.36787944117144 由 上 例 可 以 看 出 舍 入 误 差 对 计 算 的 影 响, 如 果 我 们 在 计 算 中 不 去 分 析 算 法, 即 使 编 出 了 正 确 的 程 序, 也 可 能 得 出 错 误 的, 有 时 甚 至 是 荒 谬 的 结 果.

12 第 一 章 计 算 机 数 和 误 差 1.3 减 法 的 计 算 也 许, 大 家 认 为 减 法 是 一 种 非 常 简 单 的 计 算, 但 是 在 用 计 算 机 做 减 法 时, 如 不 小 心, 就 很 容 易 出 错, 问 题 就 出 在 舍 入 误 差 上 面. 我 们 考 虑 下 面 的 例 子 : 对 于 大 的 x, 计 算 x + 1 x (1.1) 取 x = 162835.0, 在 一 个 具 有 6 位 十 进 制 有 效 数 字 的 计 算 机 上, 计 算 结 果 为 0.001, 而 准 确 到 6 位 十 进 制 有 效 数 字 的 精 确 结 果 为 0.123907 10 2, 计 算 中 损 失 了 5 位 有 效 数 字. 对 于 更 大 的 x, 则 可 能 根 本 得 不 到 正 确 的 结 果. 但 是, 如 果 把 计 算 公 式 改 为 ( x + 1 x + 1 + x 1 x) = (1.2) x + 1 + x x + 1 + x 就 可 以 得 到 较 好 的 结 果. 又 如 对 于 大 的 N, 计 算 N+1 N dx = artan(n + 1) artan(n) 1 + x2 时, 可 以 使 用 等 价 的 公 式 : ( ) 1 artan(n + 1) artan(n) = artan 1 + N(N + 1) 同 理, 对 于 小 的 ϵ ( sin (x + ϵ) sin(x) = 2 os x + ϵ ) ( ϵ sin 2 2) 上 面 分 析 的 是 一 些 简 单 的 例 子, 在 实 际 问 题 的 计 算 中, 常 常 会 碰 到 一 些 十 分 复 杂 的 问 题, 即 使 有 经 验 的 计 算 研 究 人 员 也 经 常 在 减 法 计 算 中 犯 错 误. 练 习 : 分 析 下 面 的 表 达 式, 给 出 对 任 何 x( 只 要 在 所 给 函 数 定 义 域 内 ) 都 能 得 出 正 确 结 果 的 计 算 公 式. os 2 x sin 2 x 1 + x2 1 x 2 ln(x) 1 e 2x e x 1 v2 1 x2 sin(x) x tg(x)

第 二 章 物 理 学 中 的 常 用 数 值 方 法 在 这 一 章 和 随 后 的 几 章 中, 我 们 将 介 绍 几 种 常 用 算 法, 这 些 内 容 应 该 在 数 学 课 中 讨 论, 但 目 前 的 数 学 课 程 并 不 包 含 这 些 属 于 计 算 数 学 课 程 的 内 容, 所 以 我 们 先 作 一 些 介 绍. 2.1 数 值 积 分 方 法 积 分 分 为 定 积 分 和 不 定 积 分 两 种, 我 们 在 这 里 只 讨 论 定 积 分, 不 定 积 分 的 计 算 可 作 为 变 上 限 的 定 积 分 来 计 算. 考 虑 定 积 分 I = 它 代 表 f(x) 曲 线 下 的 面 积. b a f(x)dx (2.1) 2.1.1 梯 形 法 和 辛 普 生 方 法 在 微 积 分 中, 我 们 知 道 积 分 是 由 求 和 的 极 限 定 义 的, 这 就 是 第 一 种 计 算 积 分 的 方 法 梯 形 法. 把 区 间 [a, b] 分 成 一 些 子 区 间 [a = x 0 < x 1 < x 2 < < x n = b], 则 (2.1) 的 积 分 I 可 近 似 为 : I = 1 n 1 (x i+1 x i )(f(x i ) + f(x i+1 )) (2.2) 2 i=0 在 实 际 计 算 中, 常 采 用 等 间 距 分 法, 即 x i+1 x i = h = b a n 为 一 常 数, 上 面 公 式 可 简 化 为 : I = h n 1 (f(x i ) + f(x i+1 )) 2 i=0 为 了 节 省 工 作 量, 实 际 使 用 的 计 算 公 式 为 : n 1 I = h f(x i ) + h 2 (f(x 0) + f(x n )) (2.3) i=1 当 子 区 间 越 来 越 小, h 0 时, 求 和 的 结 果 将 趋 于 积 分 值 由 于 我 们 事 先 并 不 知 道 积 分 的 结 果, 所 以 我 们 也 就 不 知 道 求 和 结 果 和 积 分 结 果 之 间 的 差 别 为 此, 我 们 需 要 估 计 计

14 第 二 章 物 理 学 中 的 常 用 数 值 方 法 算 误 差, 一 个 直 观 的 估 计 是 比 较 不 同 大 小 的 子 区 间 的 结 果 之 差 为 了 在 每 次 子 区 间 变 小 时 能 够 用 到 前 次 的 计 算 结 果, 我 们 可 以 从 n = 1 开 始 计 算, 每 次 把 区 间 数 增 加 一 倍, 则 前 一 次 计 算 的 函 数 结 果 仍 然 有 用, 通 过 比 较 连 续 两 次 的 计 算 结 果 之 差 是 否 小 于 给 定 的 误 差 限 来 结 束 计 算. 梯 形 方 法 实 际 上 把 每 一 个 子 区 间 上 的 函 数 近 似 为 线 性 函 数 αx + β, 然 后 计 算 其 积 分 值, 再 把 结 果 加 起 来.( 作 为 一 个 练 习, 请 自 行 证 明 ), 因 此, 我 们 说 梯 形 方 法 是 具 有 线 性 代 数 精 度 的 方 法. 下 面 考 虑 具 有 二 次 代 数 精 度 的 方 法, 辛 普 生 方 法. 先 考 虑 把 积 分 区 间 [a, b] 分 为 二 个 子 区 间, 分 点 为 (a, a + h, a + 2h = b), h = b a 2, 在 区 间 上 把 被 积 函 数 用 二 次 函 数 来 近 似, 即 取 f(x) α(x a) 2 + β(x a) + γ, 其 中 α, β, γ 可 利 用 分 点 上 的 函 数 值 f(a), f(a + h), f(b) 表 示 为 : 简 单 地 计 算 得 到 : b a α = β = f(b) 2f(a + h) + f(a) 2h 2 f(b) + 4f(a + h) 3f(a) 2h γ = f(a) (α(x a) 2 + β(x a) + γ) dx = h (f(b) + 4f(a + h) + f(a)) (2.4) 3 这 就 是 著 名 的 辛 普 生 求 积 公 式. 显 然, 它 具 有 二 次 代 数 精 度. 实 际 计 算 中, 把 被 积 区 间 [a, b] 先 分 为 N 个 子 区 间, 然 后 在 每 个 子 区 间 中 用 辛 普 生 求 积 公 式 计 算, 并 把 最 后 结 果 加 起 来. 其 计 算 公 式 为 : b a f(x)dx h (f(a) + 4f(a + h) + 2f(a + 2h) + 4f(a + 3h) + + f(b)) (2.5) 3 这 是 一 个 在 实 际 计 算 中 常 用 的 方 法, 它 对 于 一 般 的 有 限 区 间 的 积 分 都 能 给 出 较 好 的 正 确 结 果. 辛 普 生 方 法 有 各 种 不 同 的 实 现, 我 们 在 这 里 给 出 简 单 的 一 种, 取 每 个 子 区 间 均 相 等, 从 二 个 子 区 间 开 始, 每 次 子 区 间 数 目 加 倍, 这 样 可 以 在 每 次 计 算 时 使 用 前 次 的 计 算 值. 这 种 实 现 的 缺 点 是 在 整 个 积 分 区 间 均 匀 取 点, 对 于 在 部 分 区 间 变 化 剧 烈 而 在 其 余 地 方 变 化 平 缓 的 被 积 函 数 计 算 效 率 不 高. 这 一 实 现 可 以 充 分 利 用 它 与 梯 形 法 的 关 系. 假 定 n = 2 k, 用 S k 表 示 用 2 k 个 子 区 间 梯 形 公 式 求 得 的 结 果. 则 式 (2.5) 可 写 为 : b a f(x)dx 1 3 [4h(f(a + h) + f(a + 2h) + + f(b h) + 1 2 f(a) + 1 2 f(b)) 2h(f(a + 2h) + f(a + 4h) + + f(b 2h) + 1 2 f(a) + 1 2 f(b)) + h(f(a) + f(b)) 2h(f(a) + f(b)) + h(f(a) + f(b))] = 1 3 (4S k S k 1 ) (2.6)

2.1 数 值 积 分 方 法 15 计 算 定 积 分 还 有 很 多 方 法, 如 龙 贝 格 方 法, Newton-Cotes 方 法 等, 我 们 将 不 在 此 讨 论, 有 兴 趣 的 同 学 可 参 看 有 关 计 算 数 学 的 书 籍. Quadpak(netlib.org) 中 包 含 了 若 干 非 常 稳 定 的 求 积 分 的 程 序, 建 议 在 实 际 工 作 中 使 用 在 Matlab 中, 梯 形 法, 辛 普 森 均 作 为 标 准 函 数 提 供, 实 际 应 用 时, 只 要 写 一 个 被 积 函 数 的 m 程 序, 调 用 积 分 程 序 即 可 常 用 的 几 个 求 积 分 的 函 数 是 quad, quadl, quadgk 等 其 中 quad 使 用 自 适 应 的 辛 普 森 算 法,quadl 应 用 龙 贝 格 加 速 来 改 善 计 算 效 率 和 提 高 精 度 例 如, 计 算 积 分 1 先 定 义 函 数 fun 并 存 入 fun.m funtion y=fun(x) end y=sin(x.^2)./(1.+x.^4); 然 后 在 Matlab 的 命 令 窗 口 运 行 0 sin(x 2 ) 1 + x 4 dx >> format long >> quad(@fun,0,1) 结 果 为 : ans = 0.229253354700751 2.1.2 反 常 积 分 的 计 算 反 常 积 分 分 为 两 类, 一 类 是 积 分 区 间 有 限, 在 积 分 区 间 内 被 积 函 数 有 奇 点, 另 一 类 是 积 分 区 间 为 无 限. 对 于 二 者 兼 而 有 之 的 积 分, 可 以 分 为 两 个 或 多 个 积 分 来 处 理, 使 每 个 积 分 为 上 述 两 类 之 一. 积 分 区 间 内 含 有 奇 点 的 积 分 对 于 积 分 区 间 内 含 有 奇 点 的 积 分, 根 据 奇 点 的 性 质, 可 采 用 下 面 的 方 法 处 理. 可 去 奇 点, 设 x 0 为 一 可 去 奇 点, 且 知 道 在 x 0 点 被 积 函 数 的 极 限, 则 只 要 在 计 算 函 数 时, 在 x 0 的 一 个 邻 域 内 用 极 限 取 代 函 数 值 即 可. 例 如, sin(x) 在 x = 0 有 可 去 奇 点, 但 当 x x 0 时, sin(x) x 1 x2 6 +, 在 计 算 函 数 时, 可 使 用 下 面 的 语 句 :

16 第 二 章 物 理 学 中 的 常 用 数 值 方 法 IF(ABS(X).LT.1.0E-4) THEN F=1.0-X*X/6.0 ELSE F=SIN(X)/X ENDIF 极 限 方 法, 有 时 我 们 并 不 知 道 奇 点 处 函 数 的 极 限 表 达 式, 有 时 甚 至 不 知 道 奇 点 是 否 可 去, 此 时 可 用 极 限 方 法 来 逼 近. 例 如, 若 已 知 x 0 为 奇 点, 对 于 积 分 b x 0 f(x)dx = lim r x 0 b r f(x)dx 定 义 一 个 收 敛 于 x 0 的 序 列 b > r 1 > r 2 >, 例 如 可 取 r n = x 0 + 2 n, 则 上 述 积 分 可 写 为 一 个 求 和 : b b r1 f(x)dx = f(x)dx + f(x)dx + f(x)dx + f(x)dx x 0 r 1 r 2 r 3 r 4 等 式 中 每 一 项 都 是 正 常 积 分, 当 r n r n+1 f(x)dx ϵ 时, 终 止 计 算. 如 果 上 式 不 收 敛, 则 很 可 能 原 积 分 不 存 在. 消 除 奇 点, 有 些 奇 点 可 以 通 过 变 量 替 换 或 对 被 积 函 数 进 行 变 换 而 消 去. 我 们 看 几 个 r2 r3 例 子 : 1 作 变 量 替 换 x = t 2, dx = 2t dt, 则 有 : 或 把 积 分 写 为 : 1 0 os(x) x dx = 1 1 第 二 项 积 分 中 的 奇 点 已 成 为 可 去 奇 点. 0 0 0 os(x) x dx os(x) x dx = 2 1 0 os(t 2 )dt 1 1 os(x) 1 1 dx + dx = 2 + x 0 x 0 I(x) = x 0 e t 1 t 在 t = 1 的 邻 域, 被 积 函 数 与 e 1 /(1 t) 很 相 像, 因 此 变 为 : I(x) = x 0 e 1 x 1 t dt + 0 所 有 的 奇 异 性 都 在 第 一 项, 而 这 一 项 可 解 析 处 理. os(x) 1 dx x e t e 1 dt = 1 x 1 t e ln 1 x + e t e 1 dt 1 t 除 上 面 例 子 演 示 的 方 法 外, 还 可 用 分 部 积 分 法 消 除 奇 点, 这 里 不 再 一 一 举 例 了. 0

2.1 数 值 积 分 方 法 17 积 分 区 间 为 无 限 的 积 分 下 面 我 们 讨 论 积 分 区 间 为 无 限 的 情 形. 为 具 体 起 见, 只 讨 论 形 为 0 f(x)dx 的 积 分, 其 它 形 式 的 无 穷 区 间 的 积 分 均 可 化 为 上 面 的 形 式. 变 量 替 换 法 : 通 过 变 量 替 换, 可 把 无 穷 区 间 的 积 分 化 为 有 限 区 间 上 的 积 分, 如 令 x = ln(t), dx = dt t, 则 有 : 0 f(x)dx = 1 0 f( ln(t) 1 dt = t 0 g(t) dt (2.7) t g(t) 这 里 g(t) = f( ln(t)), 若 在 t = 0 的 邻 域 内 有 界, 则 上 式 的 积 分 成 为 一 个 正 常 积 分, t 否 则 就 是 前 面 讨 论 过 的 有 限 区 间 上 的 反 常 积 分, 可 以 用 前 面 的 方 法 来 处 理. 上 述 变 换 对 于 当 x 时, f(x) 以 e kx 的 形 式 衰 减 的 函 数, 计 算 结 果 十 分 令 人 满 意. 其 它 常 用 的 变 换 还 有 x = 以 及 t = tanh x 等. t, dx = 1 dt 1 t (1 t) 2 极 限 法 : 由 定 义 0 f(x)dx = 0 1 0 f ( ) t 1 dt (2.8) 1 t (1 t) 2 r f(x)dx = lim f(x)dx r 0 定 义 一 个 趋 于 的 序 列 0 < r 1 < r 2 <, 例 如 可 取 r n = 2 n, 则 上 述 积 分 可 写 为 一 个 求 和 : 0 f(x)dx = r1 0 f(x)dx + r2 r 1 f(x)dx + r3 r 2 f(x)dx + (2.9) 式 中 每 一 项 都 是 正 常 积 分, 当 r n+1 f(x)dx ϵ 时, 终 止 计 算. 如 果 上 式 不 收 敛, 则 很 可 能 原 积 分 不 存 在. 如 果 能 找 到 尾 项 r n R 需 进 行 到 某 一 足 够 大 的 r n 处, 再 加 上 尾 项. f(x)dx 的 一 个 较 好 的 渐 近 表 达 式, 则 上 述 积 分 只 还 有 一 些 其 它 的 有 效 方 法, 这 里 不 再 一 一 列 举, 我 们 下 面 就 要 讲 到 的 高 斯 积 分 方 法 提 供 了 另 一 种 处 理 反 常 积 分 的 工 具. 2.1.3 高 斯 积 分 方 法 前 面 的 积 分 公 式 ( 梯 形 公 式 及 辛 普 生 公 式 ) 的 代 数 精 度 都 较 低, 一 个 自 然 的 问 题 是, 能 否 构 造 出 高 代 数 精 度 的 公 式, 回 答 是 肯 定 的, 这 就 是 高 斯 积 分 方 法. 我 们 将 不 讨 论 高 斯 积 分 方 法 的 理 论 基 础, 而 只 是 给 出 有 关 的 计 算 公 式, 对 理 论 基 础 有 兴 趣 的 同 学 可 以 参 看 有 关 的 计 算 数 学 的 书 籍.

18 第 二 章 物 理 学 中 的 常 用 数 值 方 法 有 限 区 间 的 高 斯 型 积 分 公 式 : 高 斯 勒 让 德 积 分 公 式 : 1 1 f(x)dx = n w i f(x i ) (2.10) 此 处, x i 为 n 阶 勒 让 德 多 项 式 的 根, 通 常 称 为 积 分 节 点, w i 称 为 积 分 权 重. 等 权 重 切 贝 雪 夫 积 分 公 式 : 这 里 x i 为 积 分 节 点, 权 重 为 2/n. 1 第 一 类 高 斯 切 贝 雪 夫 积 分 公 式 : 1 1 1 f(x)dx = 2 n f(x) 1 x 2 dx = π n n f i=1 i=1 n f(x i ) (2.11) i=1 ( os ( )) (2i + 1)π 2n (2.12) 第 二 类 高 斯 切 贝 雪 夫 积 分 公 式 : 1 1 f(x) 1 x 2 dx = π n + 1 n ( ) ( ( )) iπ iπ sin 2 f os n + 1 n + 1 i=1 如 果 积 分 区 间 不 是 [ 1, 1], 而 是 [a, b], 可 利 用 变 换 ( ) ( ) b a b + a x = t + 2 2 (2.13) (2.14) 将 积 分 区 间 变 为 [ 1, 1], 然 后 利 用 上 述 公 式 进 行 计 算. 在 实 际 计 算 时, 常 把 积 分 区 间 分 为 几 个 小 区 间, 在 每 一 个 小 区 间 内 使 用 高 斯 积 分 公 式, 并 把 结 果 加 起 来. 练 习 : 试 编 写 上 述 四 种 高 斯 积 分 公 式 的 程 序, 并 利 用 所 编 写 的 程 序 计 算 积 分 1 1 x + 1.5dx, 1 1 1 2 + x dx, 1 0 dx x 2 0 e os2 (x) dx, ( 积 分 所 需 的 节 点 及 权 重 在 后 面 的 表 中 给 出 ). 1 0 sin(x) x dx 无 限 区 间 的 高 斯 型 积 分 公 式 : 高 斯 拉 盖 尔 积 分 公 式 : 0 e x f(x)dx = n w i f(x i ) (2.15) i=1

2.1 数 值 积 分 方 法 19 高 斯 厄 米 积 分 公 式 : e x2 f(x)dx = n w i f(x i ) (2.16) i=1 这 里 x i 分 别 为 n 阶 拉 盖 尔 多 项 式 和 厄 米 多 项 式 的 根. 其 数 值 和 对 应 的 权 重 的 数 值 在 附 录 的 表 中 给 出. 练 习 : 试 编 写 上 述 二 种 高 斯 积 分 公 式 的 程 序, 并 利 用 所 编 程 序 计 算 积 分 0 e x 1 + x 4 dx, 0 e x2 os(x)dx 各 阶 高 斯 积 分 公 式 的 取 点 并 不 重 和, 当 增 加 分 点 时, 所 有 的 函 数 值 都 要 重 算 1965 年 Kronrod 提 出 了 结 合 高 斯 方 法 和 加 速 收 敛 技 巧 的 算 法 这 一 算 法 也 可 以 处 理 有 一 定 奇 异 性 的 被 积 函 数, 但 需 要 把 奇 点 放 在 积 分 限 上 在 Matlab 中 已 实 现 这 一 算 法, 其 调 用 命 令 是 quadgk. 例 如, 计 算 积 分 定 义 函 数 funsin, 并 存 入 funsin.m 0 sin x x e x dx funtion y=funsin(x) end y=sin(x).*exp(-x)./x; 在 Matlab 命 令 窗 口 键 入 如 下 命 令 format long quadgk(@funsin,0,inf) ans = 0.785398163397455 这 一 积 分 的 精 确 结 果 是 π 4 = 0.785398163397448

20 第 二 章 物 理 学 中 的 常 用 数 值 方 法 2.1.4 哥 西 主 值 的 计 算 在 物 理 计 算 中, 哥 西 主 值 的 计 算 占 了 很 重 要 的 位 置, 如 物 质 的 介 电 函 数 的 实 部 和 虚 部 之 间 满 足 著 名 的 Kramers-Kronig 关 系 : ϵ(ω) = ϵ 1 (ω) + iϵ 2 (ω) ϵ 1 (ω) = 1 + 2 π P sϵ 2 (s) s 2 ω ds 2 ϵ 2 (ω) = 2ω π P 0 0 ϵ 1 (s) ds (2.17) s 2 ω2 这 个 关 系 是 一 个 严 格 的 关 系, 它 来 源 于 因 果 关 系, 是 非 常 普 遍 的. 在 物 理 上, ϵ 2 (ω) 的 测 量 和 计 算 都 比 较 容 易, 因 此, 一 般 不 直 接 测 量 或 计 算 ϵ 1 (ω), 而 是 利 用 上 述 关 系 由 ϵ 2 (ω) 的 数 据 进 行 计 算. 上 述 Kramers-Kronig 关 系 中 出 现 的 P 就 代 表 哥 西 主 值 积 分, 设 a < < b, f(x) 在 x = 的 邻 域 内 无 界, 则 哥 西 主 值 积 分 定 义 为 : P b a f(x)dx = lim r 0 [ r a f(x)dx + a 不 失 一 般 性, 我 们 取 = 0 并 将 积 分 取 成 f(x)dx 的 形 式. 令 a b +r ] f(x)dx (2.18) g(x) = 1 [f(x) f( x)], 2 h(x) = 1 [f(x) + f( x)] 2 则 f(x) = g(x) + h(x) 由 于 g(x) 是 奇 函 数 而 h(x) 是 偶 函 数, 于 是 : 因 此, P b a = = 2 r a r a a r f(x)dx = 2 lim f(x)dx + g(x)dx + h(x)dx r 0 a r a r a r f(x)dx g(x)dx + h(x)dx = 2 a 0 r a h(x)dx = h(x)dx + a 0 a r h(x)dx [f(x) + f( x)]dx 这 样 我 们 就 把 哥 西 主 值 积 分 的 计 算 变 为 在 x = 0 处 有 奇 点 的 一 个 反 常 积 分 的 计 算. h(x) 也 可 能 在 x = 0 处 无 奇 点, 此 时 只 要 计 算 一 个 常 规 积 分. 例 如 前 面 的 Kramers-Kronig 关 系 中 积 分 的 计 算 可 化 为 : 2 π P 0 sϵ 2 (s) s 2 ω ds = 1 2 2π P ϵ 2 (s) s ω ds = 1 π 0 ϵ 2 (ω + x) ϵ 2 (ω x) dx x

2.1 数 值 积 分 方 法 21 2ω π P ϵ 1 (s) 0 s 2 ω ds = 1 2 2π P ϵ 1 (s) s ω ds = 1 ϵ 1 (ω + x) ϵ 1 (ω x) dx π 0 x 在 得 到 上 述 关 系 时, 我 们 利 用 了 ϵ 1 为 偶 函 数 而 ϵ 2 为 奇 函 数 的 事 实. 当 哥 西 积 分 区 间 内 的 无 界 邻 域 不 止 一 个 时, 可 以 把 积 分 区 间 分 为 几 段, 使 得 每 一 段 中 只 包 含 一 个 无 界 邻 域, 然 后 在 每 一 段 用 上 述 方 法 计 算. 分 另 一 种 计 算 主 值 积 分 的 方 法 是 直 接 从 定 义 出 发, 设 f(x) 在 积 分 区 间 内 无 奇 点, 则 积 b P a f(x) x x 0 dx = x0 f(x) b f(x) x0 + f(x) dx + dx + P dx a x x 0 x 0 + x x 0 x 0 x x 0 = I + lim I ϵ, ϵ 0 (2.19) I 为 第 一 行 右 方 第 一 和 第 二 项 之 和, 是 正 常 积 分, 可 用 前 述 任 一 方 法 计 算. I ϵ, = x0 ϵ x 0 把 f(x) 在 x 0 点 展 开, 并 逐 项 积 分, 得 到 取 极 限 ϵ 0, 得 到 f(x) x x 0 dx + x0 + x 0 +ϵ f(x) x x 0 dx I ϵ, = 2f (x 0 )( ϵ) + f (3) (x 0 )( 3 ϵ 3 ) + I 0,δ = 2 这 样, 原 主 值 积 分 为 I 0, + I. 练 习 : f (2n+1) 2n+1 (x 0 ) (2n + 1)!(2n + 1). (2.20) n=0 试 用 上 述 方 法 计 算 主 值 积 分 1 e x P 0 x 0.5, 对 于 不 同 的, 在 (2.20) 中 取 两 项, 比 较 计 算 结 果 与 精 确 结 果. ( 到 16 位 的 精 确 结 果 为 0.6150181462805674) 另 外 一 种 常 用 的 计 算 主 值 积 分 的 方 法 是 基 于 如 下 公 式 1 lim η 0 + x iη = P 1 + iπδ(x) (2.21) x 式 中 η 0 + 表 示 η 从 大 于 0 的 方 向 趋 于 0. 这 一 公 式 当 然 是 在 积 分 的 意 义 下 理 解 利 用 上 述 结 果, 就 可 以 得 到 计 算 主 值 积 分 的 一 个 方 法 : 例 如 要 计 算 P b a F (x) dx b 取 一 个 小 量 η, 计 算 F (x iη) dx, 其 实 部 给 出 P b F (x) dx 的 依 赖 于 η 的 近 似 值, 通 a a 过 减 小 η, 可 以 得 到 精 度 要 求 下 收 敛 的 结 果 例 如, 对 于 前 面 的 练 习 题, 分 别 取 不 同 的 η, 计 算 结 果 如 下

22 第 二 章 物 理 学 中 的 常 用 数 值 方 法 η 积 分 值 0.01 0.596196166026032 + 1.884174006156568i 0.001 0.613114998941270 + 1.903350575685698i 0.0001 0.614827622300549 + 1.905260181139026i 0.00001 0.614999091791223 + 1.905451057233541i 2.1.5 急 速 振 荡 函 数 的 积 分 换 在 各 种 变 换 特 别 是 付 里 叶 变 换 中, 经 常 会 遇 到 急 速 振 荡 函 数 的 积 分, 例 如, 付 里 叶 变 b 又 如 付 里 叶 贝 塞 尔 变 换, a f(x) os(nx)dx, 1 这 里 0 < γ 1 < γ 2 < 是 贝 塞 尔 函 数 的 根. 一 般 我 们 可 把 这 类 函 数 写 为 : I(t) = b a 0 b a f(x)xj n (γ m x)dx f(x) sin(nx)dx f(x)k(x, t)dx, < a < b < (2.22) 式 中 K(x, t) 为 一 振 荡 核 而 f(x) 为 非 振 荡 部 分. 由 于 振 荡 型 函 数 在 积 分 区 间 内 多 次 取 几 乎 相 等 的 正 值 和 负 值, 如 果 用 通 常 的 方 法 计 算, 则 由 于 正 负 数 相 加, 造 成 有 效 数 字 的 损 失, 几 乎 得 不 到 正 确 的 结 果. 下 面 先 给 出 最 常 遇 到 的 振 荡 函 数 的 积 分 付 里 叶 系 数 的 一 种 计 算 方 法, 然 后 再 讨 论 较 为 一 般 的 方 法. 付 里 叶 系 数 的 计 算 : 付 里 叶 系 数 的 复 数 形 式 为 : b 对 上 式 分 部 积 分, 假 定 f(x) 存 在 直 到 n 阶 的 导 数, 可 以 得 到 : b a n 1 f(x)e isx dx = e isa k=0 a f(x)e isx dx (2.23) ( ) k+1 i n 1 f (k) (a) e isb s 当 n 趋 于 无 穷 大 时, 余 项 R n 趋 于 0, 而 求 和 项 就 给 出 了 积 分 的 近 似 值. 练 习 : 写 出 (2.24) 的 实 部 和 虚 部, 即 k=0 ( ) k+1 i f (k) (b) + R n (2.24) s b a f(x) os sxdx 和 b a f(x) sin sxdx 的 积 分 公 式.

2.1 数 值 积 分 方 法 23 上 述 公 式 需 要 计 算 f(x) 的 直 到 n 1 阶 的 导 数, 这 对 于 较 为 复 杂 的 函 数 来 说, 曾 是 一 个 很 重 的 负 担. 不 过 目 前 计 算 机 代 数 的 发 展, 计 算 导 数 已 经 没 有 多 少 困 难. 为 了 看 出 这 一 方 法 的 效 力, 我 们 来 看 一 个 例 子. 计 算 I = 2π 0 x os(x) sin 30xdx 用 公 式 (2.24) 的 虚 部, 取 n = 3, 由 f(x) = x os(x), a = 0, b = 2π, f(0) = 0, f(2π) = 2π, f (0) = 0, f (2π) = 2π, 代 入 得 到 : 2π I = x os(x) sin 30xdx = 1 ( ) 3 1 30 2π + ( 2π) = 0.20967222 30 0 而 该 积 分 的 精 确 值 为 0.20967247. 基 于 Euler-Malaurin 公 式 的 梯 形 法 : 可 以 证 明 ( 见 王 竹 溪, 郭 敦 仁 特 殊 函 数 概 论 第 一 章 ), 函 数 f(x) 的 积 分 可 以 写 成 a+mh [ ] f(a) f(a + mh) f(x)dx = h + f(a + h) + + f(a + (m 1)h) + a 2 2 n ( 1) k B k h 2k [ + f 2k 1 (a + mh) F 2k 1 (a) ] + R n (2k)! 其 中 k=1 R n = θ ( 1)n+1 B n+1 h [ (2n+1) f (2n+1) (a + mh) f (2n+1) (a) ] (2n + 2)! (2.25) 这 里 0 θ 1,B n 是 Bernoulli 数 如 果 f(x) 是 周 期 函 数,f(a + mh) = f(a), 且 f(x) 存 在 直 到 (2n + 1) 阶 的 导 数, 则 显 然 有 f (2k+1) (a) = f (2k+1) (a + mh), 于 是, 利 用 梯 形 法 可 以 得 到 精 确 的 结 果 作 为 例 子, 取 不 同 的 点, 试 用 梯 形 法 计 算 如 下 积 分, 并 于 精 确 结 果 比 较 1 Bessel 函 数 的 积 分 表 示 之 一 是 0 1 1 + 1 2 sin 10πxdx, 精 确 值 = 1.15470054 J n (t) = 1 π π 计 算 n = 2, t = 1, 3, 7, 10 时 Bessel 函 数 的 值 0 os (t sin x nx)dx 由 Euler-Malaurin 公 式 可 知, 如 果 一 个 函 数 满 足 f (a) = f (a + mh), f (3) (a) = f (3) (a+mh),, 则 梯 形 公 式 也 可 以 得 到 很 精 确 的 结 果 例 如 函 数 f(x) = exp(x 2 (1 x 2 )), 在 0 和 1 满 足 上 述 关 系, 从 而, 可 以 用 梯 形 公 式 计 算 1 0 exp(x 2 (1 x 2 ))dx 这 个 积 分 的 精 确 结 果 是 1.03414105, 请 分 别 用 梯 形 法 和 辛 普 森 法 计 算 并 比 较 其 结 果

24 第 二 章 物 理 学 中 的 常 用 数 值 方 法 子 区 间 法, 在 一 般 情 况 下, 如 果 K(x, t) = 0 的 根 容 易 求 出, 且 记 为 a x 1 < x 2 < < x n b, 则 可 用 普 通 的 积 分 规 则 计 算 每 一 个 子 积 分 xi+1 x i, 并 把 结 果 加 起 来. 用 这 种 方 法 得 到 的 一 般 是 一 个 交 错 级 数, 且 相 邻 项 的 绝 对 值 比 较 接 近, 其 求 和 可 用 Euler 变 换 计 算. (Euler 变 换 将 在 后 面 讨 论 ) 在 讲 了 样 条 插 值 之 后, 我 们 再 介 绍 一 种 基 于 样 条 插 值 的 计 算 积 分 (2.23) 的 方 法. 更 多 的 方 法 可 以 参 看 (P. J. Davis and P. Rabinowitz,Methods of Numerial Integration, Aademi Press, 1984) 2.1.6 高 维 积 分 的 计 算 高 维 积 分 的 计 算 原 则 上 可 以 通 过 化 成 累 次 积 分 来 进 行, 例 如, 对 于 积 分 I = g(x, y, z) dxdydz (2.26) 其 中 Ω 为 积 分 区 域, 总 可 以 化 为 I = b dx Ω d(x) dy f(x,y) a (x) e(x,y) g(x, y, z) (2.27) 这 相 当 于 依 次 计 算 三 个 一 重 积 分, 每 一 积 分 以 其 前 一 积 分 作 为 被 积 函 数. 稍 加 考 虑 就 可 发 现, 这 一 过 程 的 计 算 量 随 积 分 重 数 的 增 加 而 变 得 无 法 完 成. 如 每 重 积 分 取 10 个 点 ( 这 是 一 个 非 常 小 的 数 字 ), 则 n 重 积 分 就 要 计 算 10 n 个 函 数 值. 因 此, 这 一 方 法 只 能 用 于 积 分 重 数 较 低 的 积 分. 高 维 积 分 还 可 以 用 高 斯 方 法 计 算, 这 只 要 把 每 重 积 分 用 高 斯 积 分 公 式 代 入 即 可. 对 于 n > 3 的 高 维 积 分, 计 算 量 总 是 相 当 大 的, 如 果 你 对 计 算 精 度 要 求 不 高, 那 么 可 以 利 用 后 面 将 要 讲 到 的 Monte Carlo 方 法. 另 外, 如 果 可 能, 请 尽 可 能 地 解 析 积 出 内 层 积 分, 以 减 小 计 算 量. 2.1.7 固 体 热 容 量 的 计 算 在 德 拜 近 似 下, 固 体 的 热 容 量 由 下 式 给 出 ( ) 3 T Θd /T C V = 9Nk Θ D 0 ξ 4 e ξ (e ξ 1) 2 dξ 式 中 Θ D 为 德 拜 温 度. 为 了 求 得 热 容 量, 需 要 计 算 上 式 中 的 积 分, 这 一 积 分 只 有 当 Θ d /T 1 或 Θ d /T 1 时 才 能 解 析 积 出, 一 般 情 况 下 只 能 进 行 数 字 计 算. 考 虑 f(x) = x 0 ξ 4 e ξ (e ξ 1) 2 dξ

2.2 方 程 的 求 根 和 最 优 化 方 法 25 利 用 我 们 学 到 的 方 法, 可 以 对 不 同 的 x 求 出 其 值, 并 做 出 f(x) 的 表 或 图 形. 为 了 计 算 积 分, 注 意 到 ξ = 0 是 被 积 函 数 的 可 去 奇 点, 因 此, 应 在 该 点 把 被 积 函 数 展 开 为 ξ 的 级 数 ; 当 ξ, 被 积 函 数 指 数 减 小. 已 知 f( ) = 0 ξ 4 e ξ (e ξ 1) dξ = 4 2 15 π4 我 们 可 以 根 据 x 的 值 的 大 小 分 别 用 两 种 方 法 计 算, 取 一 值 x, 当 x < x 时, 用 原 式 计 算, 当 x > x 时, 可 以 计 算 f( ) f 1 (x), 其 中 f 1 (x) = x ξ 4 e ξ (e ξ 1) 2 dξ x 可 以 选 择 的 大 一 点, 这 样 f 1 (x) 的 数 值 比 较 小, 计 算 精 度 要 求 可 以 低 一 些. 我 们 选 择 x = 10, x < x 时, 用 辛 普 生 方 法 计 算 f(x), 被 积 函 数 为 { ξ 2 ξ4 12 240 0 ξ < 0.05 ξ 4 e ξ (e x 1) 2 0.05 ξ x 当 x > x 时, 计 算 f 1 (x), 对 积 分 作 变 量 变 换 ξ = η + x 则 f 1 (x) = e x 0 (η + x) 4 e η (1 e (η+x) ) 2 dη 这 一 积 分 可 用 高 斯 拉 盖 尔 方 法 计 算. 作 为 练 习, 请 同 学 完 成 余 下 的 计 算 并 作 出 f(x) x 的 图 形 2.2 方 程 的 求 根 和 最 优 化 方 法 方 程 的 求 根 问 题 是 物 理 计 算 中 最 常 遇 到 的 问 题 之 一, 对 于 低 次 代 数 方 程, 已 经 找 到 了 解 的 公 式, 但 除 了 二 次 方 程 之 外, 这 些 公 式 并 无 多 少 实 用 价 值, 而 对 于 即 使 如 os(x) x = 0 这 样 简 单 的 方 程, 也 无 法 找 到 解 析 形 式 的 解. 数 值 计 算 几 乎 是 求 解 任 何 有 实 际 意 义 的 问 题 的 唯 一 方 法. 在 这 一 节 中, 我 们 将 讨 论 几 种 求 解 f(x) = 0 的 根 的 数 字 方 法. 最 优 化 方 法 除 了 本 身 的 重 要 性 之 外, 也 是 一 种 求 解 多 元 方 程 的 有 效 方 法, 因 此, 最 优 化 方 法 的 介 绍 也 是 本 节 的 一 个 重 要 内 容. 2.2.1 二 分 法 二 分 法 是 求 解 方 程 的 最 安 全, 也 是 概 念 上 最 简 单 的 方 法, 它 可 以 做 为 后 面 将 要 讲 到 的 方 法 失 败 后 的 最 后 保 险. 假 定 我 们 知 道 在 区 间 a < x < b 之 内 只 有 f(x) = 0 的 一 个 根, 则 显 然 f(a) 与 f(b) 异 号, 把 区 间 分 半, 即 令 = (b + a)/2, 计 算 f() 的 值, 若 f(a) 与 f() 同 号, 则 根 在 [, b] 之 间, 否 则, 根 在 [a, ] 之 间, 对 根 所 在 的 区 间 重 复 上 述 过 程 直 到 达 到 所 需 精 度.

26 第 二 章 物 理 学 中 的 常 用 数 值 方 法 2.2.2 牛 顿 法 和 割 线 法 在 所 有 一 元 函 数 求 根 方 法 中, 牛 顿 法 也 许 是 最 值 得 推 荐 的 一 个. 其 想 法 是 这 样 的, 假 定 f(x) = 0 的 根 为 x, 而 我 们 有 一 个 对 x 的 猜 测 值 x n, f(x) 可 在 x n 附 近 展 开 为 泰 勒 级 数 : f(x) = f(x n ) + f (x n )(x x n ) + 略 去 高 次 项, 令 上 式 为 0, 可 解 出 x, 将 此 值 作 为 x 的 一 个 更 好 的 近 似, 记 为 x n+1, 则 x n+1 = x n f(x n) f (x n ). (2.28) 这 样, 给 定 一 个 x 的 初 始 值 x 0, 利 用 下 面 的 迭 代 公 式 反 复 迭 代 : x n+1 = x n f(x n) f (x n ) (2.29) 如 果 迭 代 收 敛, 则 必 收 敛 于 f(x) = 0 的 一 个 根 x. 这 一 迭 代 公 式 (2.29) 就 是 著 名 的 牛 顿 迭 代 公 式. 可 以 证 明, 如 果 迭 代 到 第 n 步 时 的 误 差 为 ϵ n = x n x, 则 第 n + 1 步 的 误 差 为 f (x ) ϵ n+1 = ϵ 2 n, 也 就 是 说, 牛 顿 法 是 平 方 收 敛 的. 证 明 如 下 : 由 迭 代 公 式 (2.29), 2f (x ) x n+1 = x n f(x n) f (x n ) x + ϵ n ϵ nf (x ) + 1 2 ϵ2 nf (x ) f (x ) + ϵ n f (x ) ( x + ϵ n ϵ n + 1 f (x ) 2 f (x ) ϵ2 n f ) (x ) f (x ) ϵ2 n = x + 1 f (x ) 2 f (x ) ϵ2 n 二 分 法 是 线 性 收 敛 的, 请 证 明 之. 但 是, 另 一 方 面, 对 于 任 一 初 始 值, 牛 顿 法 并 不 总 是 收 敛, 事 实 上, 牛 顿 法 的 收 敛 范 围 是 较 小 的, 因 此, 在 实 际 使 用 时, 必 须 找 一 个 较 好 的 x 0, 使 x 0 尽 可 能 地 靠 近 x, 这 可 以 把 二 分 法 与 牛 顿 法 结 合 起 来 以 完 成. 试 计 算 10. 令 f(x) = x 2 10, f(x) = 0 的 根 就 是 所 求 结 果 取 初 始 值 x 0 = 3, f (x) = 2x. 迭 代 结 果 如 下 : 3. 3.166666666666667 3.162280701754386 3.162277660169842 3.162277660168380 3.162277660168379

2.2 方 程 的 求 根 和 最 优 化 方 法 27 牛 顿 法 的 一 个 重 要 的 缺 点 是 需 要 计 算 函 数 的 导 数, 对 于 一 些 复 杂 的 函 数 来 说, 这 是 一 件 十 分 麻 烦 的 工 作. 为 了 即 保 持 较 高 的 收 敛 速 度, 又 避 免 麻 烦 的 导 数 计 算, 可 以 对 牛 顿 法 稍 作 变 形, 用 差 分 代 替 导 数, 从 而 得 到 下 面 的 割 线 法. x n+1 = x n x n x n 1 f(x n ) f(x n 1 ) f(x n) (2.30) 这 一 迭 代 方 式 需 要 二 个 初 始 值 x 0, x 1, 可 以 取 为 所 猜 测 的 解 附 近 的 二 个 点. 割 线 法 的 收 敛 速 度 比 牛 顿 法 稍 慢, 但 省 去 了 导 数 的 计 算, 对 于 求 导 数 比 较 困 难 的 函 数 特 别 有 用. 作 为 一 个 编 程 练 习, 请 写 出 这 一 算 法 的 程 序 并 作 为 你 自 己 的 库 程 序. 练 习 : 证 明 割 线 法 的 收 敛 阶 为 ϵ n+1 ϵ 1.618 n 另 一 个 不 需 要 计 算 导 数 的 方 法 是 所 谓 的 Stewenson 方 法, 算 法 如 下 : x n+1 = x n f(x n ) 2 f(x n ) f(x n f(x n )) (2.31) 对 于 单 零 点, 这 一 算 法 的 收 敛 阶 为 2,( 请 证 明 ), 而 且 不 需 要 计 算 导 数, 是 一 个 较 好 的 算 法. 试 计 算 10. 令 f(x) = x 2 10, f(x) = 0 的 根 就 是 所 求 结 果 取 初 始 值 x 0 Stewenson 法 迭 代 结 果 如 下 : = 3. 用 2.2.3 一 维 最 优 化, 黄 金 分 割 法 3. 3.142857142857143 3.161965423111920 3.162277578113566 3.162277660168374 3.162277660168380 这 一 节 开 始 我 们 讨 论 最 优 化 方 法, 或 计 算 一 目 标 函 数 的 极 值 的 方 法. 最 优 化 方 法 在 物 理 学 中 有 十 分 广 泛 的 应 用, 函 数 的 求 根 问 题 也 可 化 为 一 个 最 优 化 问 题, 例 如, 求 函 数 f(x) = 0 的 问 题 就 与 求 目 标 函 数 为 F (x) = f(x) 2 的 极 小 值 的 问 题 等 价, 而 方 程 组 f i (x 1, x 2, x 3,, x n ) = 0, i = 1, 2, 3,, n 的 求 解 问 题 则 与 F (x 1, x 2,, x n ) = n w i f i (x 1, x 2,, x n ) 2 i=1

28 第 二 章 物 理 学 中 的 常 用 数 值 方 法 的 最 优 化 问 题 等 价. 这 里 w i, i = 1, 2,, n 为 一 组 权 重 参 数, 适 当 的 选 则 可 使 计 算 更 为 容 易 进 行, 但 对 根 的 位 置 没 有 影 响. 这 一 节 我 们 先 考 虑 一 个 自 变 量 的 目 标 函 数 的 最 优 化 问 题. 假 定 我 们 有 一 目 标 函 数 F (x), 我 们 的 任 务 是 寻 找 一 个 x = x, 使 得 目 标 函 数 F (x) 最 小. 这 一 工 作 可 以 分 两 步 来 完 成, 首 先, 我 们 要 找 出 目 标 函 数 的 极 小 点 所 在 的 大 致 位 置, 或 者 更 确 切 一 些, 我 们 要 找 三 个 点 a < b <, 使 得 目 标 函 数 F (b) < F (a), F (b) < F (). 第 二 步 则 在 区 间 [a, ] 内 寻 找 F (x) 的 最 小 值. 第 一 步 原 则 上 是 十 分 简 单 的, 假 定 有 两 点 a, b, 我 们 可 以 比 较 F (a) 和 F (b) 以 确 定 一 个 函 数 减 小 的 方 向, 不 失 一 般 性, 假 定 F (b) < F (a), 然 后 沿 减 小 方 向 前 进 一 步, 到 达 新 的 一 点, 一 般 取 = b + 1.618(b a), 如 果 F () < F (b), 则 令 a = b, b =, 继 续 前 进, 寻 找 新 的 ; 如 果 F () > F (b), 则 我 们 的 目 的 已 经 达 到. 下 面 考 虑 第 二 步 的 计 算, 即 从 三 个 点 a < b <, F (b) < F (a), F (b) < F () 出 发, 寻 找 F (x) 的 极 小 点 x min. 这 里 介 绍 黄 金 分 割 法. 寻 找 极 小 点 的 过 程, 实 际 上 就 是 用 一 种 方 法 不 断 缩 小 区 间 [a, ], 并 保 证 极 小 点 一 直 位 于 区 间 之 内. 这 一 过 程 可 以 这 样 来 完 成, 假 定 已 经 作 了 n 步, 得 到 三 个 点 a, b, 和 对 应 的 目 标 函 数 值 F (a) > F (b), F (b) < F (), 不 失 一 般 性, 假 定 b > b a, 在 区 间 [b, ] 内 选 一 点 x, 如 果 F (x) < F (b), 则 作 代 换 a = b, b = x, 新 的 缩 小 了 的 区 间 为 [a, ]( 即 原 [b, ], 丢 掉 的 区 间 为 原 [a, b]); 如 果 F (x) > F (b), 则 作 代 换 = x, 新 的 缩 小 了 的 区 间 为 [a, ]( 即 原 [a, x], 丢 掉 的 区 间 为 原 [x, ]). 问 题 在 于 如 何 选 择 x, 一 个 自 然 的 想 法 是, 不 论 F (x) < F (b) 或 F (x) > F (b), 丢 掉 的 区 间 都 相 同, 即 选 择 x, 使 得 b a = x w( a) (2.32) 这 里 w 是 一 个 比 例 因 子, 我 们 现 在 来 确 定 它. 由 于 要 求 每 一 步 都 满 足 上 述 关 系, 显 然 有 x b = w( b) = w(( a) (b a)) = w( a) w 2 ( a) = (w w 2 )( a) (2.33) 另 一 方 面, 由 (2.32) 可 得 (b a) + ( x) = ( a) (x b) = 2w( a) (2.34) 即 由 (2.33) 和 (2.35), 我 们 得 到 : x b = (1 2w)( a) (2.35) w 2 3w + 1 = 0 (2.36) 由 此 解 得, w = 3 5 0.38197, 1 w 0.61803 2 1 w 通 常 被 称 为 黄 金 分 割 数 或 黄 金 数. 一 般 在 开 始 计 算 时, a, b, 三 者 并 不 满 足 黄 金 分 割 关 系, 但 几 次 迭 代 后, 这 一 关 系 便 可 满 足, 并 在 其 后 一 直 保 持.

2.2 方 程 的 求 根 和 最 优 化 方 法 29 2.2.4 高 维 最 优 化, 共 扼 梯 度 方 法 这 一 节 给 出 多 维 问 题 的 最 优 化 方 法. 对 于 一 个 含 有 n 个 自 变 量 的 目 标 函 数 F (x 1, x 2, x n ), 我 们 的 目 的 是 要 求 出 一 组 (x 1, x 2,, x n) 使 目 标 函 数 达 到 极 小. 为 了 讨 论 问 题 的 方 便, 下 面 用 x 代 表 n 维 空 间 的 一 个 点, 最 优 化 问 题 也 可 以 表 述 为, 寻 找 n 维 空 间 的 一 点 x 使 得 目 标 函 数 F (x ) 最 小. 高 维 最 优 化 问 题 有 很 多 求 解 方 法, 其 基 本 思 路 是 相 同 的, 这 就 是 从 一 点 x 0 出 发, 按 照 某 种 规 定 的 方 向 p 0, 用 一 维 最 优 化 的 方 法 寻 找 函 数 F (x) 的 极 小 点 x 1, 继 续 这 一 过 程 直 到 达 到 最 优 点. 若 第 i 步 到 达 x i, 设 选 定 方 向 p i, 则 新 的 x i+1 可 如 下 求 得. 实 际 上, 我 们 只 要 找 一 参 数 t i, 使 得 F (x i + t i p i ) = min t F (x i + tp i ) (2.37) 则 x i+1 = x i + t i p i 便 为 所 求. 因 此, 高 维 最 优 化 的 的 不 同 方 法 实 际 上 是 选 择 不 同 的 一 维 寻 找 方 向. 一 个 直 观 的 推 断 就 是 在 每 一 点 选 择 该 点 目 标 函 数 下 降 最 快 的 方 向 p i = F (x i ) (2.38) 作 为 寻 找 方 向, 这 一 方 法 称 为 最 陡 下 降 法. 直 观 的 想 象 可 能 会 认 为 最 陡 下 降 方 向 是 一 种 理 想 的 寻 找 方 向, 但 事 实 并 非 如 此, 最 陡 下 降 方 向 只 表 示 在 x i 附 近 的 下 降 性 质, 而 对 整 个 最 优 化 过 程 来 说, 我 们 寻 找 的 是 全 局 的 最 优 方 向. 作 为 一 个 例 子, 考 虑 如 下 函 数 的 最 优 化 : F = x 2 + 10y 2 (2.39) 显 然, 这 一 函 数 的 极 小 点 是 (0, 0). 函 数 (2.39) 的 负 梯 度 为 g = (2x, 20y) T (2.40) 如 果 从 点 (2, 1) 出 发, 利 用 最 陡 下 降 法 计 算 所 得 逐 x 如 下 : (2, 1), (1.792829, 0.035857), (0.461013, 0.230507), (0.413259, 0.008265), (0.106267, 0.053133), (0.095259, 0.001905), (0.024495, 0.012248), (0.021958, 0.000439), (0.005646, 0.002823), (0.005061, 0.000101), (0.001302, 0.000651), (0.001167, 0.000023), (0.000300, 0.000150), (0.000269, 0.000005), (0.000069, 0.000035), (0.000062 0.000001). 显 然, 收 敛 是 很 慢 的. 最 陡 下 降 方 向 并 不 是 理 想 的 下 降 方 向, 为 了 改 进 最 优 化 的 收 敛 速 度, 需 要 寻 求 其 他 方 向. 为 了 判 断 一 个 寻 找 方 向 的 好 坏, 应 该 有 一 个 标 准, 注 意 到 一 般 函 数 在 最 小 点 附 近 近 似 于 二 次 函 数, 因 此 如 果 一 个 方 法 对 二 次 函 数 比 较 有 效, 则 可 望 其 对 一 般 函 数 也 比 较 有 效, 如 果 一 个 方 法 对 二 次 函 数 的 效 果 都 不 好 的 话, 很 难 期 望 它 对 一 般 函 数 会 有 好 的 效 果.

30 第 二 章 物 理 学 中 的 常 用 数 值 方 法 计 算 实 践 也 证 实 了 这 一 论 断. 下 面, 我 们 就 从 二 次 函 数 寻 求 一 种 比 较 有 效 的 下 降 方 向. 为 此, 我 们 先 给 出 几 个 数 学 定 理 ; 定 理 一 : 若 N 维 欧 几 里 德 空 间 中 的 向 量 q 与 N 个 线 性 独 立 向 量 p 1, p 2,, p N 都 正 交, 则 向 量 q 必 为 0. 这 一 定 理 的 结 论 是 显 然 的. 定 义 : A 共 轭 向 量. 设 A 是 一 个 N N 的 对 称 正 定 矩 阵, p, q 是 两 个 N 维 向 量, 若, p T Aq = 0 (2.41) 则 称 向 量 p 和 向 量 q 互 为 A 共 轭 或 互 为 A 正 交. 定 理 二 : 若 A 为 N N 对 称 正 定 矩 阵, p 1, p 2,, p N 为 A 共 轭 的 N 维 非 零 向 量, 则 此 向 量 组 必 为 线 性 独 立. 证 明 : 设 向 量 组 p 1, p 2,, p N 之 间 存 在 线 性 关 系 α 1 p 1 + α 2 p 2 + + α N P N = 0 对 i = 1, 2,, N, 用 p T i A 左 乘 上 式 得 α i p T i Ap i = 0 因 为 p i 0, A 正 定, 所 以 p T i Ap i > 0 从 而 必 有 α i = 0, i = 1, 2,, N 因 此, 向 量 组 p 1, p 2,, p N 线 性 独 立. 有 了 以 上 数 学 准 备, 我 们 来 考 虑 二 次 函 数 的 最 优 化 问 题, 我 们 的 目 的 是 找 一 种 下 降 方 向, 能 够 在 有 限 步 达 到 二 次 函 数 的 极 小 点. 考 虑 二 次 N 元 函 数 F (x) = a + b T x + 1 2 xt Ax (2.42) 其 中 A 为 一 正 定 矩 阵. 函 数 (2.44) 的 梯 度 为 G(x) = b + Ax (2.43) 记 x i 点 的 梯 度 为 g i = G(x i ), 从 x 0 点 出 发, 对 于 第 一 个 寻 找 方 向, 除 梯 度 外 没 有 别 的 信 息, 我 们 就 取 p 0 = g 0, 沿 此 方 向 找 到 极 小 点 x 1 并 可 求 得 这 一 点 的 梯 度 g 1, 因 为 x 1 是 沿 p 0 方 向 的 极 小 点, 这 一 点 的 梯 度 方 向 一 定 与 p 0 垂 直,g 1 p 0, 从 而 g 1 g 0. 现 在 有 了 两 个

2.2 方 程 的 求 根 和 最 优 化 方 法 31 方 向,g 1 和 g 0, 最 陡 下 降 法 选 取 新 的 方 向 为 g 1. 我 们 保 留 原 来 方 向 的 一 点 信 息, 选 新 的 寻 找 方 向 为 这 两 个 方 向 的 组 合 p 1 = g 1 α 0 g 0 (2.44) 并 要 求 p 1 与 p 0 为 A 共 轭, 则 应 有 ( g 1 α 0 g 0 ) T Ap 0 = 0 (2.45) 由 于 x 1 = x 0 + t 0 p 0 则 g 1 g 0 = A(x 1 x 0 ) = t 0 Ap 0 一 般, 若 第 i 步 的 寻 找 方 向 为 p i, 则 同 理 可 证 g i+1 g i = A(x i+1 x i ) = t i Ap i (2.46) 因 此, 方 程 (2.45) 成 为 ( g 1 α 0 g 0 ) T (g 1 g 0 ) = 0 (2.47) 由 此 解 得 这 里 假 定 g 0 0, 否 则, 若 g 0 = 0, 则 x 0 就 是 所 求 的 极 值 点. α 0 = gt 1 g 1 g T 0 g 0 (2.48) 把 α 0 代 入 (2.44), 便 得 到 p 1. 沿 p 1 求 出 极 小 点 x 2 并 算 出 g 2. 由 于 p 0 和 p 1 为 A 共 轭, 因 此 由 (2.46) g T 0 (g 2 g 1 ) = 0 考 虑 到 g 0 与 g 1 正 交, g T 0 g 1 = 0, 由 上 式 可 知 g 0 与 g 2 也 正 交. 因 x 2 是 沿 p 1 方 向 的 极 小 点, 故 g 2 p 1, 也 就 是 g T 2 ( g 1 α 0 g 0 ) = 0 即 g 2 g 1. g 0, g 1 和 g 2 构 成 一 个 正 交 矢 量 组, 我 们 可 以 在 这 个 正 交 组 构 成 的 三 维 空 间 寻 求 与 p 0, p 1 均 为 A 共 轭 的 寻 找 方 向 p 2. 令 p 2 = g 2 α 1 g 1 β 0 g 0 (2.49) 要 求 p 2 分 别 与 p 0 和 p 1 为 A 共 轭, 也 就 是 要 求 如 下 方 程 成 立 ( g 2 α 1 g 1 β 0 g 0 ) T (g 1 g 0 ) = 0 (2.50) ( g 2 α 1 g 1 β 0 g 0 ) T (g 2 g 1 ) = 0 (2.51) (2.52)

32 第 二 章 物 理 学 中 的 常 用 数 值 方 法 由 此 解 出 于 是 α 1 = gt 2 g 2 g T 1 g 1, β 0 = α 0 α 1. (2.53) p 2 = g 2 + α 1 p 1 (2.54) 现 假 定 已 求 得 p 0, p 1,, p j, 其 中 p 0 = g 0 p i = g i + α i 1 p i 1 α i 1 = g T i g i /g T i 1g i 1 i = 1, 2,, j 这 里 假 定 g 0, g 1,, g j 都 不 为 零 且 构 成 一 个 正 交 系. 沿 p j 求 出 x j+1 并 算 出 g j+1 = G(x j+1 ), 设 g j+1 0, 则 仿 前 可 证, g 0, g 1,, g j+1 也 构 成 正 交 系. 令 p j+1 = g j+1 β 0 g 0 β 1 g 1 β j 1 g j 1 α j g j (2.55) 并 要 求 p j+1 与 p 0, p 1,, p j 为 A 共 轭, 即 ( g j+1 β 0 g 0 β 1 g 1 β j 1 g j 1 α j g j ) T (g j+1 g j ) = 0 (2.56) 得 到 α j = g T j+1g j+1 /g T j g j, β j 1 = α j α j 1, β 1 = α j α j 1 α 1, β 0 = α j α j 1 α 1 α 0. 且 β 0 g 0 β 1 g 1 β j 1 g j 1 α j g j = α j α 1 (α 0 g 0 + g 1 ) β 2 g 2 α j g j = α j (α 1 p 1 g 2 ) α j g j = = α j p j

2.2 方 程 的 求 根 和 最 优 化 方 法 33 即 p j+1 = g j+1 + α j p j, α j = g T j+1g j+1 /g T j g j (2.57) 根 据 归 纳 法, 在 (2.57) 中 令 j = 0, 1, 2,, 所 得 方 向 为 A 共 轭 方 向. 上 述 方 法 最 多 只 要 N 步 就 可 找 到 函 数 (2.44) 的 极 小 点, 这 是 因 为 所 有 的 g j 互 相 正 交, 即 g T N g j = 0 对 所 有 j = 0, 1, 2,, N 1 都 成 立, 而 我 们 的 问 题 在 N 维 空 间, 故 必 有 g N = 0, 亦 即 x N 为 函 数 (2.44) 的 极 小 点. 这 就 是 所 谓 共 轭 梯 度 方 法, 理 论 上, 对 于 二 次 函 数, 只 要 N 次 迭 代 就 可 以 达 到 极 小 点, 但 实 际 计 算 时, 由 于 舍 入 误 差 的 影 响, 一 般 N 次 迭 代 并 不 能 达 到 极 小 点. 对 于 一 般 的 目 标 函 数, 有 限 次 (N 次 ) 的 迭 代 也 一 般 不 能 达 到 极 小 点, 因 此 实 际 计 算 时, 从 一 初 始 点 出 发, 迭 代 N 次 后, 以 所 得 结 果 为 出 发 点, 重 新 开 始 计 算, 直 到 收 敛 为 止. 共 轭 梯 度 方 法 由 于 占 用 内 存 小, 方 法 简 单, 编 程 方 便, 目 前 在 物 理 问 题 中 应 用 比 较 多. 作 为 例 子, 我 们 再 考 虑 前 面 的 例 题, 对 函 数 x 2 + 10y 2, 取 x 0 = (2, 1) T, 则 g 0 = (4, 20) T, 取 p 0 = g 0, 求 得 x 1 = (1.79283, 0.0358566) T, g 1 = (3.58566, 0.717131) T, α 0 = 0.0321423, 由 此 可 构 造 出 p 1 = ( 3.71423, 0.0742845) T, 沿 p 1 方 向 求 得 x 2 = (0.000000, 0.000000) T, 即 已 经 达 到 极 小 点. 习 题 : 编 制 共 轭 梯 度 法 的 程 序 并 求 下 面 函 数 的 极 小 值 点 及 极 小 值, F (x 1,, x n ) = 1 + n [ 100(xi x 2 i 1) 2 + (1 x i 1 ) 2] (2.58) i=2 取 n = 10, 选 择 初 始 点 为 x i = i/10, i = 1, 2,, 10. 2.2.5 约 束 最 优 化 前 面 几 节 所 讲 的 是 无 约 束 最 优 化 问 题, 在 实 际 物 理 问 题 中, 还 经 常 会 遇 到 有 约 束 最 优 化 问 题, 其 数 学 提 法 是, 给 定 一 目 标 函 数 F (x 1, x 2,, x n ), 在 一 定 的 约 束 下 求 解 其 极 小 值, 约 束 一 般 写 成 一 组 函 数. 即 { F (x1, x 2,, x n ) = Min G i (x 1, x 2,, x n ) = 0 (i = 1, 2,, m) (2.59) 式 中 m < n, m 个 方 程 G i (x 1, x 2,, x n ) 代 表 m 个 约 束. 解 决 约 束 优 化 问 题 的 通 常 做 法 是 构 造 一 个 新 的 函 数, 把 约 束 优 化 问 题 改 为 一 无 约 束 最 优 化 问 题, 然 后 利 用 前 面 的 方 法 求 解. 通 常 的 做 法 是, 定 义 F = F + m λ i G 2 i (2.60) i=1

34 第 二 章 物 理 学 中 的 常 用 数 值 方 法 对 于 合 适 选 择 的 λ i, (i = 1, 2,, m), F 的 极 小 值 就 代 表 了 由 方 程 (2.59) 定 义 的 约 束 最 优 化 问 题. 例 题 在 参 数 x 1, x 2,, x n 的 一 个 限 制 区 域 D 内 求 解 F 的 极 小 值. 为 此, 我 们 把 求 解 区 域 扩 展 到 整 个 区 域, 如 果 F 在 D 外 无 定 义, 则 应 扩 充 其 定 义. 同 时 定 义 函 数 G 为 { 0 {x} D G = i λ ix 2 i {x} D (2.61) 则 通 过 计 算 F + G 的 极 小 值 就 可 得 到 问 题 的 解. 在 使 用 这 种 方 法 时 应 注 意 如 果 在 D 外 F 会 变 小 时, G 的 选 择 应 使 得 F + G 在 D 外 总 是 较 快 增 加 的. 式 (2.61) 给 出 的 仅 仅 是 一 种 可 能 的 选 择, 实 际 上 G 的 选 择 可 以 有 无 穷 多 种. 2.2.6 最 小 二 乘 法 及 曲 线 拟 合 在 物 理 实 验 中, 常 常 要 测 量 一 对 物 理 量 之 间 的 关 系, 在 有 些 情 况 下, 一 对 物 理 量 之 间 的 函 数 关 系 是 已 知 的, 但 包 含 若 干 个 未 知 参 数, 若 用 x 和 y 代 表 这 一 对 物 理 量, 则 有 y = f(x; a 1, a 2,, a m ) (2.62) 式 中 a 1, a 2,, a m 为 一 组 未 知 参 量, f 的 函 数 形 式 是 已 知 的, 在 这 种 情 况 下, 曲 线 拟 合 的 任 务, 就 是 根 据 (x, y) 的 N 个 观 测 点 (x 1, y 1 ), (x 2, y 2 ),, (x N, y N ) 来 确 定 参 数 a i, (i = 1, 2,, m), 如 果 测 量 中 没 有 误 差, 则 每 一 组 (x i, y i ) 都 应 准 确 地 落 在 理 论 曲 线 上, 即 应 有 y i = f(x i ; a 1, a 2,, a m ) (i = 1, 2,, N) (2.63) 为 了 确 定 诸 a i 的 值, 只 要 选 出 (2.63) 中 的 m 个 方 程 求 解 即 可, 但 实 际 测 量 总 是 有 误 差 的, (x i, y i ) 并 不 准 确 落 在 理 论 曲 线 上, 在 N > m 的 情 况 下, 方 程 组 (2.63) 成 为 矛 盾 方 程 组, 不 能 用 解 方 程 的 方 法 求 参 数 a 1, a 2,, a m, 只 能 用 曲 线 拟 合 的 方 法 根 据 带 有 误 差 的 观 测 值 点 求 得 理 论 曲 线 参 数 的 估 计 值. 在 很 多 实 际 问 题 中, x 和 y 这 两 个 物 理 量 中 总 有 一 个 量 的 测 量 精 度 比 另 一 个 高 得 多, 其 测 量 误 差 可 以 忽 略. 把 可 以 忽 略 测 量 误 差 的 量 选 作 自 变 量 x, 其 观 测 值 可 看 作 是 准 确 的, 对 于 每 个 x i, 对 应 的 y 的 观 测 值 y i 是 一 个 随 机 变 量 ( 见 第 五 章 ), 其 误 差 可 由 其 方 差 来 估 计. 物 理 中 还 经 常 遇 到 另 外 一 种 曲 线 拟 合 的 任 务 : 物 理 量 y 和 x 间 的 函 数 形 式 未 知, 需 要 从 观 测 点 求 出 y 和 x 的 函 数 关 系 的 一 个 经 验 公 式. 一 般 的 作 法 是 选 取 某 一 函 数 族 {

2.2 方 程 的 求 根 和 最 优 化 方 法 35 ϕ i (x) } 的 一 个 线 性 组 合, y = i a i ϕ i (x) (2.64) 然 后 用 曲 线 拟 合 方 法 求 出 系 数 a i. 函 数 族 { ϕ i (x) } 通 常 从 物 理 考 虑 来 选 取, 一 种 常 用 的 方 法 是 选 取 { 1, x, x 2,, x m 1 } 用 于 拟 合 m 个 参 数 ; 也 可 选 取 三 角 函 数 { 1, sin x, os x, sin 2x, os 2x,, sin 2mx, os 2mx} 用 于 拟 合 2m + 1 个 参 数. 这 种 方 法 称 为 线 性 拟 合 方 法, 即 y 线 性 地 依 赖 于 参 数 a i, 对 于 有 些 物 理 问 题, y 和 x 的 函 数 关 系 中 非 线 性 地 依 赖 于 参 数 a i, 例 如 y = a 1 e a2x + a 3 e a4x sin(a 5 x + a 6 ) 就 是 一 个 具 有 6 个 参 数 的 非 线 性 拟 合 问 题. 曲 线 拟 合 通 常 采 用 最 小 二 乘 法, 如 果 x 的 测 量 误 差 可 以 忽 略, 观 测 点 i 的 残 差 δ i 定 义 为 在 该 点 y 的 观 测 值 与 理 论 值 之 差, 即 δ i = y i f(x i ; a 1, a 2,, a m ) (2.65) 若 观 测 值 y i 的 方 差 为 σi 2, 则 定 义 其 权 重 因 子 为 记 χ 2 为 观 测 点 残 差 的 加 权 平 方 和, χ 2 = N w i δi 2 = i=1 w i = 1 σ 2 i N w i (y i f(x i ; a 1, a 2,, a m )) 2 (2.66) i=1 曲 线 拟 合 的 最 小 二 乘 法 就 是 以 χ 2 为 目 标 函 数 的 优 化 问 题, 即 寻 找 一 组 参 数 a i, (i = 1, 2,, m) 使 χ 2 为 最 小. 在 观 测 点 的 方 差 未 知 的 情 况 下, 可 以 取 w i = 1, 也 可 以 在 每 一 观 测 点 多 测 量 几 次, 以 其 平 均 值 y i 作 为 该 点 的 观 测 值, 而 以 y 2 i y i 2 作 为 其 方 差. 在 曲 线 拟 合 问 题 中, 最 困 难 的 是 选 取 合 适 的 经 验 公 式, 这 需 要 结 合 物 理 考 虑 和 对 测 量 数 据 的 观 察, 也 依 赖 于 对 各 种 函 数 及 其 图 像 的 明 确 概 念. 例 题 在 某 一 能 谱 测 量 中, 得 到 下 表 所 示 数 据, 试 给 出 经 验 公 式 并 作 出 曲 线 拟 合. x 0.0 0.1 0.2 0.3 0.4 0.5 0.6 y 2.117 2.634 3.459 4.671 6.600 9.978 15.893 x 0.7 0.8 0.9 1.0 1.1 1.2 1.3 y 25.108 30.979 25.768 17.363 12.031 10.454 10.280 x 1.4 1.5 1.6 1.7 1.8 1.9 y 11.012 11.138 9.745 7.576 5.598 4.165 把 表 中 数 据 点 到 坐 标 纸 上 ( 见 图 2.1 中 圈 点 ), 可 以 看 出 数 据 有 二 个 峰, 为 此, 我 们 试 用 Lorentz 形 曲 线 去 拟 合, 即 取 经 验 公 式 为 y = a 1 (x a 2 ) 2 + a 2 3 a 4 + (x a 5 ) 2 + a 2 6

36 第 二 章 物 理 学 中 的 常 用 数 值 方 法 40 30 20 10 0 0 0.5 1 1.5 2 图 2.1: 用 上 式 和 上 表 中 的 数 据 计 算 χ 2, 并 用 共 轭 梯 度 方 法 优 化 χ 2, 求 得 各 参 数 值 为 a 1 = 1.210 a 2 = 0.800 a 3 = 0.202 a 4 = 0.776 a 5 = 1.502 a 6 = 0.295 在 图 2.1 中, 我 们 用 实 线 画 出 了 拟 合 的 结 果, 虚 线 给 出 了 二 个 峰 的 图 像. 2.3 函 数 的 求 值 在 数 值 计 算 中, 经 常 要 求 一 些 函 数 的 值, 一 些 常 用 的 初 等 函 数 如 三 角 函 数, e 指 数 函 数, 双 曲 函 数, 对 数 函 数 等, 均 已 写 入 计 算 机 语 言 的 定 义 做 为 内 部 函 数, 在 使 用 时 只 需 调 用 即 可, 而 其 它 的 函 数 和 表 达 式 则 要 自 己 计 算, 本 章 将 给 出 一 些 在 物 理 计 算 中 经 常 遇 到 的 函 数 及 表 达 式 的 计 算 方 法 和 部 分 程 序. 一 般 说 来, 计 算 机 的 内 部 函 数 都 是 由 专 家 设 计 的, 其 效 率 和 精 度 都 很 好, 因 此, 如 果 计 算 机 语 言 已 经 提 供 了 所 需 的 函 数, 则 应 尽 量 使 用 这 些 函 数, 下 面 提 供 的 方 法 仅 仅 作 为 计 算 机 系 统 不 提 供 这 些 函 数 时 的 补 充. 2.3.1 多 项 式 的 求 值 和 级 数 求 和 所 谓 多 项 式 是 指 由 下 式 给 出 的 表 达 式 : p(x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + + a n x n 为 了 计 算 p(x) 在 给 定 x 时 的 数 值, 我 们 用 (n), n = 0, 1, 2,, n 来 代 表 多 项 式 的 系 数, 则 可 以 写 出 计 算 语 句. 以 n = 4 为 例, 直 接 用 FORTRAN 语 言 写 出 的 算 式 为 :

2.3 函 数 的 求 值 37 p=(0)+(1)*x+(2)*x**2+(3)*x**3+(4)*x**4 这 显 然 不 是 一 个 好 的 算 法 ( 为 什 么?). 较 好 的 算 法 是 下 面 二 者 之 一 : p=(0)+x*((1)+x*((2)+ x*((3)+x*(4)))) p=((((4)*x+(3))*x+(2))*x+(1))*x+(0) 当 n 较 大 时, 可 采 用 下 面 的 语 句 段 : P=C(N) DO 11 J=N-1,1,-1 P=P*X+C(J) 11 CONTINUE 在 科 研 中, 还 常 常 碰 到 级 数 求 和 的 问 题, 例 如 计 算 S = i=0 u i 我 们 当 然 不 可 能 计 算 到 无 穷 多 项, 所 以 上 述 级 数 必 需 在 某 处 截 断, 如 果 级 数 收 敛 很 慢, 就 要 计 算 很 多 项, 一 方 面 占 用 大 量 的 CPU 时 间, 更 重 要 的 是 当 计 算 的 项 数 非 常 多 时, 舍 入 误 差 的 积 累 有 可 能 完 全 破 坏 整 个 计 算. 为 此 必 须 使 用 加 速 收 敛 的 技 巧. Aitken 算 法 是 常 用 的 加 速 技 巧 之 一. 它 是 对 相 邻 的 三 个 部 分 和 进 行 处 理, 得 到 一 个 更 好 的 近 似. 记 部 分 和 为 : S n = n u i (2.67) i=0 则 由 S n 1, S n, S n+1 可 计 算 出 S n = S n+1 (S n+1 S n ) 2 S n+1 2S n + S n 1 (2.68) 对 n = 1, 2, 3,, 先 求 出 S n, 同 时 算 出 S n, 一 般 S n 更 快 地 收 敛 于 S. 在 实 际 使 用 时, (2.68) 最 好 用 写 出 的 式 子 计 算, 一 些 代 数 上 等 价 的 式 子 可 能 导 致 较 大 的 舍 入 误 差. Euler 变 换 对 于 由 下 式 定 义 的 交 错 级 数 ( 1) s u s (2.69) 这 里 u s > 0. Euler 变 换 是 一 个 强 有 力 的 算 法, 它 由 下 式 给 出 ( 取 n 为 偶 数 ) 其 中 : s=0 ( 1) s u s = u 0 u 1 + u 2 u n 1 + s=0 s=0 ( 1) s 2 s+1 ( s u n ) (2.70) u n u n+1 u n 2 u n ( u n ) = u n+2 2u n+1 + u n (2.71)

38 第 二 章 物 理 学 中 的 常 用 数 值 方 法 为 向 前 差 分. 式 (2.70) 可 推 导 如 下 : 定 义 位 移 算 符 E 为 : u n+1 Eu n 由 于 (1 + )u n = u n + u n+1 u n = u n+1 = Eu n, 因 此 有 算 符 等 式 E = 1 + 而 u 0 u 1 + u 2 u 3 + = (1 E + E 2 E 3 + )u 0 = 1 1 + E u 0 = 1 1 u 2 1 + 0 = ( 1) s 2 s+1 s u 0 2 s=0 2.3.2 连 分 式 的 求 值 所 谓 连 分 式, 是 指 由 下 式 给 出 的 表 达 式, f = b 0 + b 1 + b 2 + a 1 b 3 + a 2 a 3 a 4 b 4 + a 5 b 5 + 数 学 家 们 对 它 做 过 很 多 研 究, 这 是 一 个 非 常 有 趣 的 函 数 表 示 方 法. 除 了 上 面 的 表 达 式 外, 人 们 还 经 常 使 用 另 一 种 记 法. 这 里, 系 数 a n 和 b n 也 可 以 是 x 的 函 数. a 2 a 3 a 4 a 5 f = b 0 + a 1 b 1 + b 2 + b 3 + b 4 + b 5 + 由 于 连 分 式 只 能 从 右 向 左 求 值, 因 此 在 具 体 计 算 之 前, 很 难 判 断 一 个 无 限 的 连 分 式 应 该 在 何 处 截 断, 一 种 直 接 的 方 法 就 是 猜 一 个 截 断 点, 求 出 一 个 值, 再 猜 一 个 更 大 一 点 的 截 断 点 计 算, 通 过 比 较 不 同 截 断 处 的 结 果 来 判 断 是 否 收 敛. 这 显 然 不 是 一 个 好 的 方 法. 另 一 种 在 实 践 中 常 用 的 方 法 是 用 一 个 分 式 有 理 函 数 来 近 似 连 分 式, 用 f n 表 示 计 算 到 a n 和 b n 的 连 分 式 的 值, 则 : 这 里 A n, B n 由 下 面 的 递 推 公 式 给 出 : A 1 1 B 1 0 f n = A n B n (2.72) A 0 b 0 B 0 1 (2.73) A j = b j A j 1 + a j A j 2 B j = b j B j 1 + a j B j 2 j = 1, 2,, n

2.4 常 微 分 方 程 的 数 值 解 法 39 练 习 试 证 明 递 推 关 系 (2.73) 并 写 出 计 算 机 程 序 2.4 常 微 分 方 程 的 数 值 解 法 常 微 分 方 程 在 物 理 学 中 具 有 重 要 意 义, 牛 顿 第 二 定 律 就 表 示 为 一 组 二 阶 常 微 分 方 程, 第 一 章 中 提 到 的 著 名 的 三 体 问 题 就 是 由 九 个 二 阶 常 微 分 方 程 组 成 的 方 程 组 ; 在 量 子 力 学 中 和 电 动 力 学 中, 由 薛 定 谔 方 程 及 Maxwell 方 程 分 离 变 量 得 到 的 所 谓 Sturm Liouville 本 征 值 问 题 也 是 二 阶 常 微 分 方 程 的 求 解 问 题. 在 这 一 章 中, 我 们 将 给 出 几 种 数 值 求 解 常 微 分 方 程 的 常 用 方 法. 2.4.1 Euler 方 法 对 于 常 微 分 方 程 的 初 值 问 题 dy dx = f(x, y) y(0) = η (2.74) 数 值 求 解 的 第 一 步 是 把 方 程 (2.74) 变 为 一 个 差 分 方 程, 为 此, 让 x 取 一 组 分 立 值 x n, n = 0, 1, 2,, x 0 = 0, x n+1 = x n + h, 这 里 h 称 为 积 分 的 步 长, 把 y(x) 在 x n 处 展 开, 有 y(x n+1 ) = y(x n ) + h dy dx + O(h 2 ) (2.75) x=xn 利 用 方 程 (2.74), 便 可 得 到 y(x n+1 ) = y(x n ) + hf(x n, y n ) + O(h 2 ) (2.76) 这 就 是 Euler 差 分 格 式, 从 x = 0 出 发, 利 用 这 一 方 程 一 步 一 步 地 向 前 计 算, 就 可 以 得 到 任 一 x n 处 的 函 数 值 y n y(x n ). Euler 方 法 是 一 个 显 式 方 法, 即 第 n + 1 步 的 y n+1 只 依 赖 于 x n, y n 的 值, 而 且 每 一 步 只 需 计 算 一 次 f(x n, y n ) 的 值, 这 是 Euler 方 法 的 优 点, 但 另 一 方 面, Euler 方 法 也 存 在 严 重 的 不 足, 因 为 这 一 方 法 是 一 次 的 ( 每 一 步 的 误 差 项 为 h 2 的 数 量 级, y(x N ) Nh 2 h), 所 以 h 必 须 取 得 足 够 小, 以 保 证 有 满 意 的 精 度, 但 步 长 太 小 时, 积 分 到 一 预 定 的 x 则 要 做 很 多 步 的 计 算, 舍 入 误 差 的 积 累 将 会 使 计 算 结 果 严 重 失 真. 由 于 这 一 原 因, 在 实 际 计 算 中 几 乎 不 使 用 Euler 方 法, 而 常 常 利 用 其 推 导 上 的 简 单 和 概 念 上 非 常 清 楚 而 用 于 教 学.

40 第 二 章 物 理 学 中 的 常 用 数 值 方 法 2.4.2 龙 格 库 塔 方 法 具 有 二 阶 以 上 精 度 的 直 接 方 法 称 为 龙 格 库 塔 方 法. 做 为 一 种 训 练, 我 们 在 此 给 出 二 阶 龙 格 库 塔 方 法 的 推 导. 下 面 先 给 出 一 种 比 较 直 接 的 推 导, 然 后 再 介 绍 一 种 易 于 推 广 到 高 阶 情 形 的 较 为 系 统 的 推 导 方 法, 希 望 同 学 仔 细 体 会 这 里 介 绍 的 方 法 和 思 路, 以 求 举 一 反 三, 为 自 己 设 计 算 法 做 准 备. 第 一 种 推 导 方 法 : 如 果 计 算 x n+ 1 2 x n + h 2 处 y 的 一 阶 导 数, 可 以 得 到 y n+ 1 2 = y n+1 y n h + O(h 2 ) (2.77) 这 可 用 Taylor 展 开 加 以 验 证. 把 上 式 稍 加 整 理, 并 代 入 y n+ 1 2 = f(x n+ 1, y 2 n+ 1 ), 得 到 2 y n+1 = y n + hf(x n+ 1, y 2 n+ 1 ) + O(h 3 ) (2.78) 2 上 式 中 出 现 了 半 个 分 点 处 的 值, 我 们 必 须 设 法 用 分 点 n 和 n + 1 处 的 量 来 表 示 n + 1 2 处 的 量, 为 此, 把 f(x n+ 1, y 2 n+ 1 ) 和 f(x n+1, y n+1 ) 在 n 点 展 开 : 2 f(x n+ 1, y 2 n+ 1 ) = f(x n, y n ) + h df 2 2 dx + O(h 2 ) xn f(x n+1, y n+1 ) = f(x n, y n ) + h df dx + O(h 2 ) (2.79) xn 把 上 面 的 第 一 式 乘 以 2 减 去 第 二 式, 整 理 后 得 f(x n+ 1, y 2 n+ 1 ) = 1 2 2 (f(x n, y n ) + f(x n+1, y n+1 )) + O(h 2 ) (2.80) 注 意 到 及 y n+1 = y n + hf(x n, y n ) + O(h 2 ) f(x n+1, y n + hf(x n, y n ) + O(h 2 )) = f(x n + h, y n + hf(x n, y n )) + O(h 2 ) 我 们 得 到 y n+1 = y n + h 2 (f(x n, y n ) + f(x n + h, y n + hf(x n, y n )) + O(h 3 ) (2.81) 这 就 是 二 阶 龙 格 库 塔 格 式 的 一 种, 由 它 可 以 通 过 n 点 的 解 给 出 n + 1 点 的 解. 它 显 然 具 有 二 阶 精 度. 第 二 种 推 导 方 法 : 因 为 我 们 的 目 的 是 从 n 点 的 解 给 出 n + 1 点 的 解 并 要 求 每 一 步 的 误 差 为 O(h 3 ), 所 以 可 以 一 般 的 把 差 分 格 式 写 为 y n+1 = y n + h (x n, y n ; h) (2.82)

2.4 常 微 分 方 程 的 数 值 解 法 41 其 中 (x n, y n ; h) y n + h 2 y n + h2 3! y(3) n + 如 果 我 们 用 另 一 函 数 Φ(x n, y n ; h) 代 替 (x n, y n ; h), 且 使 得 则 可 得 到 p 阶 差 分 格 式. 对 于 p = 2, 取 把 上 式 对 h 展 开 另 一 方 面 : Φ(x n, y n ; h) (x n, y n ; h) = O(h p ) Φ(x, y; h) = 1 f(x, y) + 2 f(x + ha 2, y + b 21 hf(x, y)) [ f Φ(x, y; h) = 1 f(x, y) + 2 f(x, y) + h 2 a 2 x + b 21 (x, y; h) = f(x, y) + 1 [ f 2 h x + f y f y ] f(x, y) + O(h 2 ) (2.83) ] f(x, y) + O(h 2 ) (2.84) 比 较 式 (2.83) 和 (2.84), 只 要 (2.83) 中 的 系 数 满 足 下 述 关 系, 就 能 达 到 我 们 的 要 求. 1 + 2 = 1 2 a 2 = 1 2 2 b 21 = 1 2 (2.85) 方 程 (2.85) 的 解 并 不 唯 一, 也 就 是 说, 有 无 穷 多 组 系 数 可 以 满 足 要 求. 为 此, 令 2 = α, 则 1 = 1 α a 2 = 1 2α b 21 = 1 2α (2.86) 取 α = 1 2, 得 到 差 分 格 式 为 1 = 1 2, a 2 = 1, b 21 = 1 y n+1 = y n + h 2 (f(x n, y n ) + f(x n + h, y n + hf(x n, y n )) (2.87) 这 与 第 一 种 方 法 得 到 的 结 果 相 同. 若 取 α = 1, 则 1 = 0, a 2 = 1 2, b 21 = 1 2

42 第 二 章 物 理 学 中 的 常 用 数 值 方 法 差 分 格 式 为 y n+1 = y n + h(f(x n + 1 2 h, y n + 1 2 hf(x n, y n )) (2.88) 当 α 取 不 同 值 时, 我 们 还 可 得 到 其 它 形 式 的 二 阶 差 分 格 式. 计 算 实 践 表 明, 对 于 绝 大 多 数 简 单 问 题, 四 阶 龙 格 库 塔 方 法 是 最 好 的 选 择. 这 一 方 法 的 一 种 常 用 差 分 格 式 可 用 下 面 一 组 公 式 来 表 示 : k 1 = hf(x n, y n ) ( k 2 = hf x n + h 2, y n + k ) 1 2 ( k 3 = hf x n + h 2, y n + k ) 2 2 k 4 = hf(x n + h, y n + k 3 ) (2.89) y n+1 = y n + k 1 6 + k 2 3 + k 3 3 + k 4 6 + O(h5 ) (2.90) 实 际 上, 四 阶 的 龙 格 库 塔 方 法 的 形 式 并 不 唯 一, 这 里 给 出 的 是 常 用 的 一 种. 四 阶 龙 格 库 塔 方 法 的 推 导 比 较 繁 琐, 但 并 不 难, 其 基 本 思 路 与 前 面 推 导 二 阶 方 法 的 第 二 种 方 法 相 同, W. C. Gear 的 名 著 Numerial initial Value Problems in Ordinary Differential Equations ( Englewood Cliffs, N. J. Prentie Hall, 1971) 给 出 了 一 般 龙 格 库 塔 方 法 的 推 导, 同 时 也 列 出 了 其 它 四 阶 龙 格 库 塔 方 法 的 形 式, 有 兴 趣 的 同 学 可 以 参 考. 上 面 给 出 了 用 四 阶 龙 格 库 塔 方 法 积 分 一 步 的 方 法, 我 们 当 然 可 以 利 用 这 一 方 法, 选 定 一 个 步 长 h, 从 初 绐 点 开 始 一 步 一 步 地 积 分 到 所 需 的 点. 那 么, 步 长 如 何 选 取 呢? 选 多 大 才 是 合 适 的, 是 否 每 一 步 都 选 相 同 的 步 长? 为 此, 我 们 需 要 一 个 判 定 精 度 的 方 法, 同 时, 直 观 告 诉 我 们, 在 函 数 变 化 剧 烈 的 地 方, 步 长 应 该 取 得 小 一 点 以 保 证 精 度, 而 在 函 数 变 化 平 缓 的 地 方, 步 长 可 以 取 的 大 一 点 以 减 小 计 算 量. 对 于 每 一 步, 判 定 步 长 是 否 合 适 的 一 个 简 单 的 方 法 就 是 把 步 长 减 半, 比 较 步 长 为 2h 的 一 步 的 积 分 结 果 和 步 长 为 h 的 两 步 的 计 算 结 果, 确 切 地 说, y(x + 2h) = y 1 + O(h 5 ) y(x + h + h) = y 2 + O(h 5 ) (2.91) 第 二 个 方 程 是 指 用 二 步 步 长 为 h 的 积 分 结 果. 二 者 之 差 y 2 y 1 (2.92) 显 然 可 以 作 为 误 差 的 一 个 合 适 的 量 度. 由 方 程 (2.91) 可 知, 正 比 于 h 5, 因 此, 如 果 步 长 为 h 1 时 的 误 差 为 1, 而 当 步 长 为 h 0 时 的 误 差 为 0, 则 显 然 应 有 1/5 0 h 0 = h 1 1 (2.93)

2.4 常 微 分 方 程 的 数 值 解 法 43 如 果 我 们 令 0 为 充 许 误 差, 则 方 程 (2.93) 可 以 用 以 调 整 步 长, 如 果 1 大 于 0, 则 h 0 可 作 为 新 的 步 长 重 新 计 算, 否 则, 如 果 1 小 于 0, 则 h 0 可 作 为 下 一 步 步 长 的 一 个 合 理 的 推 断. 下 面 考 虑 如 何 选 取 0, 你 可 以 把 它 取 为 某 个 小 的 数 字, 例 如, 10 6, 但 略 加 思 考 就 会 发 现 这 是 不 行 的, 理 由 如 下, 所 求 函 数 y 的 绝 对 值 可 以 很 大, 也 可 以 很 小, 因 此, 绝 对 精 度 是 没 有 意 义 的 ; 所 以, 我 们 可 以 考 虑 取 0 = ϵy, 而 ϵ 为 某 一 小 的 数 字 ; 但 另 一 方 面, 有 些 函 数 是 振 荡 的, 在 某 一 极 大 和 极 小 之 间, 并 且 经 常 穿 过 0 点, 对 于 这 类 问 题, 0 的 一 个 合 适 的 选 则 应 为 某 一 小 量 乘 以 y 的 极 大 值 的 绝 对 值 ; 为 了 照 顾 到 上 述 两 种 情 况, 我 们 可 以 取 其 中 0 = ϵ y sal (2.94) y sal = y + h dy dx 上 面 是 以 一 步 为 基 础 来 考 虑 的, 在 有 些 问 题 中, 我 们 可 能 要 求 解 满 足 某 种 全 局 的 精 度, 由 于 舍 入 误 差 的 积 累 ( 在 最 坏 的 情 况 下, 舍 入 误 差 全 部 相 加, 总 体 误 差 为 N 0 L h 0, 其 中 L 为 对 x 的 积 分 的 长 度 ), 当 h 缩 小 时, 0 也 要 相 应 的 缩 小, 以 保 证 总 的 舍 入 误 差 固 定, 即 选 取 ysal 正 比 于 h, 所 以 当 h 0 变 化 时, y sal 也 相 应 的 变 化, 从 而 方 程 (2.93) 中 的 指 数 成 为 1/4, 另 外, 我 们 只 考 虑 了 误 差 的 主 导 项, 高 阶 项 也 应 有 一 些 贡 献. 基 于 所 有 这 些 考 虑, 我 们 把 方 程 (2.93) 改 写 为 0 h 0 = Sh 1 1 0 = Sh 1 1 1/5 1/4 0 1 0 < 1 (2.95) 这 里 S 为 一 考 虑 了 高 阶 效 应 的 安 全 系 数, 指 数 的 选 择 从 最 安 全 出 发. 当 放 大 步 长 时, 用 小 指 数 1/5 ( 少 放 一 点 ); 当 缩 小 步 长 时, 用 大 指 数 1/4( 多 缩 一 些 ). 0 由 (2.94) 给 出. 为 了 简 洁 起 见, 这 里 以 一 个 方 程 为 基 础 给 出 了 四 阶 龙 格 库 塔 方 法, 但 不 难 把 它 们 推 广 到 多 个 方 程. 在 结 束 本 小 节 前, 我 们 指 出, 虽 然 这 里 讲 的 是 一 阶 常 微 分 方 程 组 的 解 法, 但 实 际 上 已 经 包 括 了 高 阶 常 微 分 方 程, 因 为 任 何 一 个 高 阶 常 微 分 方 程 均 可 化 为 一 组 等 价 的 一 阶 常 微 分 方 程 组, 如 果 有 同 学 对 这 一 表 述 还 不 清 楚, 那 么 请 立 即 复 习 高 等 数 学 的 有 关 内 容. 本 节 的 方 法 基 本 上 可 以 满 足 实 际 计 算 的 需 要. 但 在 实 际 工 作 中, 也 会 碰 到 一 些 特 殊 的 问 题, 比 较 重 要 的 一 类 问 题 是 所 谓 刚 性 微 分 方 程 求 解 问 题, 关 于 这 一 点, 请 参 看 W. C. Gear 的 著 作. 另 外 一 些 特 殊 问 题 将 在 后 面 结 合 具 体 物 理 问 题 进 行 处 理. 练 习 :

44 第 二 章 物 理 学 中 的 常 用 数 值 方 法 单 摆 的 方 程 为 ẍ + ω 2 sin x = 0 设 初 始 位 移 为 x = 0, 试 用 二 阶 龙 格 - 库 塔 方 法 对 不 同 的 初 始 速 度 求 解 此 方 程, 并 讨 论 所 得 结 果 2.4.3 两 点 边 值 问 题 所 谓 两 点 边 值 问 题 是 指 下 面 的 定 解 问 题 在 点 x 1, 有 边 界 条 件 dy i dx = g i(x; y 1, y 2,, y n ) i = 1, 2,, n (2.96) B 1j (x 1 ; y 1, y 2,, y n ) = 0, j = 1, 2,, n 1 (2.97) 在 点 x 2, 有 边 界 条 件 B 2j (x 2 ; y 1, y 2,, y n ) = 0, j = 1, 2,, n n 1 (2.98) 这 样 一 类 问 题 与 前 节 所 处 理 的 问 题 的 最 大 差 别 在 于 定 解 条 件 是 在 x 的 两 个 不 同 的 点 ( 端 点 ) 处 给 出 的, 而 前 节 的 定 解 条 件 是 在 一 个 点 给 出 的, 因 此, 前 节 的 问 题 称 为 初 值 问 题 而 本 节 将 要 解 决 的 问 题 称 为 两 点 边 值 问 题. 初 值 问 题 一 般 来 说 总 是 有 解 的, 但 边 值 问 题 的 解 有 时 并 不 存 在, 边 值 问 题 中 常 常 包 含 一 个 参 数, 只 有 对 参 数 的 某 些 值, 边 值 问 题 的 解 才 存 在, 这 类 问 题 称 为 微 分 方 程 的 本 征 值 问 题, 使 得 方 程 有 解 的 那 些 参 数 值 称 为 本 征 值. 边 值 问 题 有 各 种 不 同 的 解 法, 我 们 将 在 本 节 介 绍 打 靶 法. 并 通 过 一 个 具 体 算 例 给 出 处 理 边 值 问 题 的 一 些 技 巧 和 方 法. 在 后 面 的 章 节 中, 我 们 将 结 合 具 体 物 理 问 题, 再 回 到 本 节 的 问 题. 这 里 要 强 调 指 出 的 是, 由 于 边 值 问 题 的 特 殊 性, 试 图 像 初 值 问 题 那 样 给 出 通 用 程 序 是 几 乎 不 可 能 的, 在 实 际 工 作 中 应 根 据 具 体 的 物 理 问 题 设 计 合 适 的 方 法. 打 靶 法 的 基 本 思 路 是 从 x 1 点 出 发, 利 用 n 1 个 已 知 的 边 界 条 件 并 指 定 n 2 个 条 件, 积 分 到 x 2 点, 看 是 否 与 x 2 点 的 n 2 个 条 件 一 致, 若 否, 则 调 节 在 x 1 指 定 的 条 件 直 到 符 合 要 求 为 止. 现 在 我 们 给 出 仔 细 的 分 析, 令 V = [V 1, V 2,, V n2 ] T 为 一 n 2 维 空 间 的 矢 量, 它 给 出 了 x 1 点 的 n 2 个 指 定 的 条 件, 则 方 程 (2.97) 可 以 写 为 y i (x 1 ) = y i (x 1 ; V 1, V 2,, V n2 ) i = 1, 2,, n (2.99) 因 此, 给 定 V, 我 们 就 有 了 一 个 完 整 的 初 值 问 题, 利 用 前 节 的 方 法 在 区 间 [x 1, x 2 ] 之 间 积 分 方 程 (2.96), 便 可 得 到 一 组 y i (x 2 ; V 1, V 2,, V n2 ), 在 x 2, 定 义 一 个 n 2 维 的 偏 离 矢 量 F, F 的 取 法 并 不 唯 一, 可 视 方 便 而 定, 例 如 可 取 F k = B 2k (x 2 ; y 1, y 2,, y n ) k = 1, 2,, n 2 (2.100)

2.4 常 微 分 方 程 的 数 值 解 法 45 如 果 F = 0, 则 说 明 V 的 选 则 是 正 确 的. 因 此, 问 题 转 化 为 求 解 方 程 F = 0, 这 里 有 n 2 个 未 知 量 V k, n 2 个 方 程 F k = 0. 为 了 求 解 这 一 组 方 程, 我 们 假 定 V 与 真 实 的 解 相 差 不 大, 从 而 可 以 把 方 程 (2.100) 线 性 化, 即 令 n 2 F k (V δv ) = A kj δv j (2.101) j=1 这 里 A kj = F k V j (2.102) 由 方 程 (2.101) 求 出 δv j, 并 令 新 的 V 为 V new k = V old k + δv k (2.103) 通 过 反 复 迭 代, 最 终 得 到 结 果. 现 在, 让 我 们 回 到 (2.102), 由 于 F k 是 由 数 值 给 出 的, 因 此 A kj 的 计 算 也 只 能 是 数 值 的, 最 简 单 的 方 法 是 令 F k V j F k(v 1, V 2,, V j + δv j, ) F k (V 1, V 2,, V j, ) δv j (2.104) 这 样, 每 完 成 一 次 迭 代 需 要 求 解 n 2 + 1 次 初 值 问 题, 一 次 计 算 F k (V 1, V 2,, V n2 ), n 2 次 计 算 偏 导 数, 显 然, 与 初 值 问 题 相 比, 边 值 问 题 的 计 算 量 是 相 当 大 的. V 的 初 始 叠 代 值 的 选 择 是 一 个 困 难 的 问 题, 如 果 选 择 的 不 好, 则 可 导 致 计 算 的 失 败, 通 常 应 根 据 对 被 求 解 问 题 的 了 解 程 度 尽 量 选 择 接 近 其 解 的 量 作 为 初 始 叠 代 值. 在 后 面 的 例 子 中, 将 给 出 一 个 针 对 具 体 问 题 的 选 法. 为 了 帮 助 理 解 打 靶 法 的 应 用, 这 里 给 出 一 个 例 子, 即 旋 转 椭 球 谐 振 子. 当 在 旋 转 椭 球 坐 标 系 中 对 某 些 偏 微 分 方 程 如 Laplae 方 程 分 离 变 量 时, 将 会 导 致 下 面 的 方 程 [ d (1 x 2 ) ds ] ) + (λ 2 x 2 m2 S = 0 (2.105) dx dx 1 x 2 这 里 m 为 一 整 数. 这 是 一 个 Sturm Liouville 本 征 值 问 题, λ 是 方 程 的 本 征 值. 方 程 在 x = ±1 具 有 奇 点, 从 Sturm Liouville 本 征 值 问 题 的 一 般 理 论 可 知 ( 参 见 梁 昆 淼, 数 学 物 理 方 法, 如 果 我 们 寻 求 在 x = ±1 为 正 则 的 解, 则 只 有 对 λ 的 某 些 特 殊 值 才 有 可 能, 这 些 特 殊 值 称 为 本 征 值, 且 所 有 的 本 征 值 均 大 于 0. 当 = 0 时, 方 程 化 为 球 谐 振 子 的 方 程, 其 解 为 P m n (x), 本 征 值 为 λ mn = n(n + 1), n = m, m + 1,, 当 0 时, 我 们 记 (2.105) 的 本 征 值 为 λ mn (), 对 应 的 本 征 函 数 记 为 S mn (x). λ mn () 和 S mn (x) 的 计 算 曾 经 是 非 常 困 难 的 问 题, 其 十 分 复 杂 的 级 数 解, 递 推 关 系 等 可 在 一 些 非 常 专 门 的 书 籍 中 查 到. ( 例 如, 可 参 看 M. Abramowitz and I Stegun Handbook of Mathematial Funtions (Dover

46 第 二 章 物 理 学 中 的 常 用 数 值 方 法 Publiations, New York, 1968) ) 其 数 值 解 相 对 来 说 要 容 易 得 多. 首 先, 我 们 作 代 换 ( 从 天 上 掉 下 来 的?, 请 复 习 数 学 物 理 方 法 中 常 微 分 方 程 的 有 关 内 容.) S = (1 x 2 ) m/2 y 则 原 方 程 化 为 (1 x 2 ) d2 y 2(m + 1)xdy dx2 dx + (µ 2 x 2 )y = 0 (2.106) 这 里 µ λ m(m + 1) (2.107) 方 程 (2.104) 和 (2.106) 均 在 代 换 x x 下 不 变, 因 此 S 及 y 除 了 一 个 常 数 因 子 外 也 应 在 同 一 变 换 下 不 变, 由 于 解 最 终 将 归 一 化, 因 此 这 一 常 数 因 子 只 能 是 ±1. 方 程 (2.106) 也 是 一 个 Sturm Liouville 方 程, 其 本 征 值 µ 0, 参 照 球 谐 振 子 的 结 果, 如 果 令 λ mn = α mn + n(n + 1), 且 要 求 α mn 0, 则 由 (2.107) 可 知 n m, n = m 对 应 于 最 低 本 征 值. 利 用 Sturm Liouville 方 程 的 从 小 到 大 排 列 的 本 征 值 与 其 对 应 的 本 征 函 数 的 零 点 的 定 理 可 知, 当 n m 为 偶 数 时, y mn 在 [ 1, 1] 之 间 有 偶 数 个 零 点, 所 以 我 们 取 y(x) = y( x), 否 则, 取 y(x) = y( x), 于 是 y mn ( x) = ( 1) n m y mn (x) (2.108) 在 x 1 时, 可 以 解 得 在 原 点, 我 们 有 y ( 1) = µ 2 y( 1) (2.109) 2(m + 1) y(0) = 0, n m 为 奇 数 y (0) = 0, n m 为 偶 数 (2.110) 最 后, 我 们 令 S mn 在 x 1 时 与 P m n 一 化 条 件 ) 有 相 同 的 极 限 行 为. ( 这 相 当 于 选 则 一 个 特 定 的 归 lim (1 x 1 x2 ) m/2 S mn (x; ) = lim (1 x 1 x2 ) m/2 Pn m (x) (2.111) 现 在, 令 y 1 = y y 2 = y y 3 = µ (2.112)

2.5 插 值 和 逼 近 47 这 样, 方 程 (2.106) 变 为 y 1 = y 2 y 2 = 1 [ ] 2x(m + 1)y2 (y 1 x 2 3 2 x 2 )y 1 y 3 = 0 (2.113) 我 们 选 择 区 间 [ 1, 0] 来 求 解 ( 为 什 么 不 选 [0, 1]?), 边 界 条 件 为, 在 x = 1, 有 y 2 = y 3 2 2(m + 1) y 1 y 1 = lim x 1 (1 x2 ) m/2 P m n (x) = ( 1)m (n + m)! 2 m m!(n m)! (2.114) 在 x = 0, 有 : y 1 = 0, n m 为 奇 数 y 2 = 0, n m 为 偶 数 (2.115) 在 这 一 问 题 中, 未 知 量 是 本 征 值 µ mn, 为 了 给 出 一 个 好 的 初 值, 我 们 注 意 到 在 方 程 (2.106) 中, 如 果 把 µ 2 x 2 作 为 本 征 值 看 待, 则 为 球 谐 振 子 方 程, 其 本 征 值 已 知 为 n(n + 1) m(m + 1), 因 为 0 x 2 1, 因 此, 把 x 2 代 之 以 1 2 得 到 的 结 果 应 是 原 问 题 的 一 个 良 好 的 近 似, 为 此, µ mn 的 初 始 叠 代 值 可 选 为 n(n + 1) m(m + 1) + 1 2 2. 在 这 个 例 子 中, 我 们 不 仅 示 范 了 打 靶 法 的 使 用, 同 时 也 示 范 了 如 何 把 高 阶 方 程 化 为 一 阶 方 程 以 及 如 何 处 理 本 征 值 问 题, 请 同 学 仔 细 体 会, 掌 握 这 一 方 法 并 应 用 于 解 决 实 际 问 题. 练 习 : 对 于 方 程 y + 1 x y + ky = 0 在 边 界 条 件 y(0) 有 限, y(1) = 0 下 计 算 本 征 值 k. 提 示, 为 了 得 到 k 的 叠 代 初 值, 考 虑 k 很 大 时, 方 程 成 为 y + ky = 0, 其 解 为 y os( kx + δ), 若 令 δ = 0 (δ 应 在 区 间 [0, π 2 ] 内 ), 则 k = (n + 1 2 )2 π 2. 2.5 插 值 和 逼 近 给 定 一 个 列 表 函 数, (x 1, f(x 1 )), (x 2, f(x 2 )),, (x n, f(x n )), 要 求 寻 找 一 个 函 数 ϕ(x) 来 近 似 代 替 f(x), 使 得 在 (x 1, x 2,, x n ), f(x i ) = ϕ(x i ), 而 对 于 其 它 的 x, ϕ(x) 是 f(x) 的 一 个 很 好 的 近 似. 这 样 的 问 题 就 称 为 插 值 问 题. 如 果 读 者 稍 为 细 心 一 点, 就 会 发 现 我 们 的

48 第 二 章 物 理 学 中 的 常 用 数 值 方 法 最 后 一 个 要 求 是 有 问 题 的, 因 为 我 们 仅 仅 知 道 f(x) 在 一 些 分 立 点 x i 上 的 值, 事 先 并 不 知 道 f(x) 在 这 些 点 以 外 如 何 变 化, 因 此 除 了 要 求 ϕ(x) 在 诸 x i 点 上 与 f(x) 相 等 外, 无 法 提 出 更 多 的 要 求. 然 而, 在 物 理 上 和 数 学 上, 假 如 我 们 认 为 一 组 分 立 点 的 数 值 大 致 决 定 了 f(x), 这 就 隐 含 着 我 们 假 定 了 f(x) 在 任 何 两 个 给 定 点 之 间 是 光 滑 变 化 的. 因 此, 我 们 的 目 的 实 际 上 是 寻 找 一 条 光 滑 地 通 过 n 个 给 定 点 (x 1, f(x 1 )), (x 2, f(x 2 )),, (x n, f(x n )) 的 一 条 曲 线. 2.5.1 多 项 式 插 值 通 过 两 点 可 以 唯 一 地 作 一 条 直 线, 通 过 三 点 可 以 唯 一 地 作 一 条 抛 物 线,. 通 过 n 个 数 据 点 (x 1, y 1 ), (x 2, y 2 ),, (x n, y n ) 可 以 唯 一 地 决 定 一 个 n 1 阶 的 多 项 式 P n (x), 这 一 多 项 式 就 称 为 y = f(x) 的 插 值 多 项 式. 它 由 著 名 的 Lagrange 公 式 给 出. P (x) = (x x 2 )(x x 3 ) (x x n ) (x 1 x 2 )(x 1 x 3 ) (x 1 x n ) y 1 + (x x 1)(x x 3 ) (x x n ) (x 2 x 1 )(x 2 x 3 ) (x 2 x n ) y 2 + (x x 1 )(x x 2 ) (x x n 1 ) (x n x 1 )(x n x 2 ) (x n x n 1 ) y n (2.116) 它 共 有 n 项, 每 一 项 为 一 n 1 次 多 项 式, 且 第 i 项 除 在 点 x i 为 y i = f(x i ) 外, 在 其 余 诸 x j 处 均 为 0. 直 接 对 (2.116) 编 写 程 序 虽 然 不 是 一 个 很 好 的 算 法, 但 也 是 完 全 可 行 的. 读 者 可 作 为 一 个 编 程 练 习 来 写 出 计 算 程 序. 我 们 在 这 里 将 介 绍 一 个 更 好 的 算 法, Neville 算 法, 这 一 算 法 的 基 本 思 想 是 从 一 个 低 次 多 项 式 出 发, 逐 次 用 递 推 方 式 加 高 并 最 终 得 到 结 果. 下 面 给 出 这 一 算 法 的 一 个 简 短 的 说 明. 对 于 给 定 的 x, 令 P 0 11 是 通 过 (x 1, y 1 ) 点 的 唯 一 的 0 次 多 项 式, 即 P 0 11 = y 1, ( 同 样 定 义 P 0 22, P 0 33, P 0 nn); 定 义 P 1 12 为 通 过 (x 1, y 1 ), (x 2, y 2 ) 的 唯 一 一 次 多 项 式. 同 理 有 P 1 23, P 1 34, P 1 n 1,n;, 定 义 Pi,i+m m 为 通 过 (x i, y i ), (x i+1, y i+1 ), (x i+m, y i+m ) 的 m 次 多 项 式, 则 P1n n 1 即 为 通 过 (x 1, y 1 ), (x 2, y 2 ),, (x n, y n ) 的 唯 一 n 1 次 多 项 式, 即 为 (2.116) 的 等 价 形 式. 所 有 这 些 P 可 以 排 成 一 个 表, 其 祖 代 排 在 左 边, 子 代 在 右 边 并 最 终 导 致 唯 一 的 后 代 即 为 我

2.5 插 值 和 逼 近 49 们 的 解. 如 下 式 所 示 ( 以 n = 5 为 例 ): x 1 : y 1 = P 0 11 P 1 12 x 2 : y 2 = P 0 22 P 2 13 P 1 23 P 3 14 x 3 : y 3 = P 0 33 P 2 24 P 4 15 (2.117) P34 1 P25 3 x 4 : y 4 = P44 0 P35 2 x 5 : y 5 = P55 0 子 代 与 父 代 之 间 满 足 如 下 递 推 关 系 : P m P 1 45 i,i+m = (x x i+m)p m 1 i,i+m 1 + (x i x)p m 1 i+1,i+m (2.118) x i x i+m 练 习 证 明 上 述 递 推 关 系 直 接 用 (2.118) 计 算 是 完 全 可 行 的, 但 还 可 进 一 步 改 进, 一 种 改 进 的 方 法 是 在 计 算 中 做 小 量 子 代 和 父 代 之 差 的 迭 代. 即 定 义 C mi P m i,i+m P m 1 i,i+m 1 从 (2.118) 可 容 易 推 出 C mi 和 D mi 所 满 足 的 递 推 关 系 为 : D mi P m i,i+m P m 1 i+1,i+m (2.119) D m+1,i = (x i+m+1 x)(c m,i+1 D mi ) x i x i+m+1 C m+1,i = (x i x)(c m,i+1 D mi ) x i x i+m+1 (2.120) 在 每 一 次 递 推 中, C 和 D 是 对 插 值 的 更 高 一 次 的 修 正, 最 后 的 结 果 P n 1 1n 一 系 列 从 y i 出 发 而 最 终 到 达 家 族 终 点 的 任 一 路 径 上 的 C 及 D. 是 任 一 y i 加 上 2.5.2 分 式 有 理 函 数 插 值 和 外 推 有 些 函 数 ( 大 部 分 函 数?) 不 能 很 好 地 用 多 项 式 来 近 似, 我 们 在 后 面 要 举 一 个 著 名 的 例 子, 但 大 部 分 函 数 都 能 用 分 式 有 理 函 数 来 近 似, 这 里 边 有 一 些 深 入 的 数 学 原 理, 有 兴 趣 的 同 学 可 以 研 读 有 关 的 数 学 书 籍.

50 第 二 章 物 理 学 中 的 常 用 数 值 方 法 一 个 通 过 m + 1 个 点 (x 0, y 0 ), (x 1, y 1 ),, (x m, y m ) 的 分 式 有 理 函 数 可 记 为 R µ,ν (x) = P µ(x) Q ν (x) = p 0 + p 1 x + + p µ x µ 1 + q 1 x + + q ν x ν (2.121) 由 于 有 µ + ν + 1 个 末 知 参 数 p 及 q, 因 此, 必 有 m + 1 = µ + ν + 1. 在 做 分 式 有 理 函 数 插 值 时, 还 需 要 给 定 分 子 或 分 母 的 阶. 方 程 (2.121) 两 边 乘 以 Q ν (x), 分 别 代 入 逐 插 值 点, 得 到 一 组 线 性 代 数 方 程 组, 可 由 此 解 得 p i 和 q i, 得 到 有 理 插 值 函 数. 类 似 于 多 项 式 插 值, 我 们 也 可 以 构 造 一 个 递 推 算 法, 这 一 算 法 称 为 Bulirsh Stoer 算 法. 这 里 不 予 介 绍, 有 兴 趣 的 同 学 可 参 看 (J. Stoer, R. Bulirsh, Introdution to Numerial Analysys, Springer-Verlag, 1992, Chapter 2). 2.5.3 三 次 样 条 插 值 三 次 样 条 插 值 是 目 前 应 用 最 广 泛 的 一 种 方 法, 它 可 以 保 持 插 值 函 数 具 有 二 次 连 续 导 数, 而 且 不 会 出 现 多 项 式 插 值 中 的 一 些 问 题. 三 次 样 条 插 值 问 题 可 以 表 述 如 下, 对 于 给 定 的 n 个 点 (x 1, y 1 ), (x 2, y 2 ),, (x n, y n ), 寻 找 一 个 分 段 三 次 多 项 式 S(x) = S 1 (x) (x 1 x x 2 ) S 2 (x) (x 2 x x 3 ) S n 1 (x) (x n 1 x x n ) (2.122) 其 中, S i (x) 为 一 定 义 在 区 间 [x i, x i+1 ] 上 的 三 次 多 项 式 并 要 求 S(x) 在 诸 插 值 点 上 的 一 阶 及 二 阶 导 数 连 续. 我 们 先 来 分 析 这 一 插 值 问 题 的 解 是 否 存 在, 由 于 决 定 每 个 三 次 多 项 式 需 要 4 个 条 件, 所 以 总 共 需 要 4(n 1) 个 条 件, 由 每 个 多 项 式 都 要 通 过 两 个 端 点, 给 出 2(n 1) 个 条 件, 一 阶 导 数 和 二 阶 导 数 连 续 给 出 2(n 2) 个 条 件, 这 样, 我 们 总 共 有 4(n 1) 2 个 条 件. 因 此, 为 了 确 定 插 值 问 题, 还 需 要 补 充 二 个 条 件, 由 这 两 个 条 件 的 不 同, 又 有 几 种 不 同 的 三 次 样 条 插 值 方 法, 这 里 我 们 将 介 绍 二 种, 一 种 是 再 给 定 两 个 端 点 x 1, x n 的 一 阶 导 数 值 y 1, y n, 另 一 种 是 令 两 个 端 点 上 的 二 阶 导 数 为 0, 即 令 y 1 = y n = 0. 现 在 来 求 解 这 一 问 题, 由 于 二 阶 导 数 连 续, 所 以 y i, i = 2, 3,, n 1 是 存 在 的, 在 任 一 子 区 间 [x i, x i+1 ], 有 S i (x) = x x i x i+1 x i y i+1 + x i+1 x x i+1 x i y i (2.123)

2.5 插 值 和 逼 近 51 对 上 式 积 分 二 次, 得 到 S i (x) = 1 (x i+1 x) 3 y i + 1 6 x i+1 x i 6 (x x i ) 3 y x i+1 x i + (y i+1 1 6 y i+1 (x i+1 x i ) 2 ) x x i x i+1 x i + (y i 1 6 y i (x i+1 x i ) 2 ) x i+1 x (2.124) x i+1 x i 上 式 包 含 n 个 未 知 量 y i, i = 1, 2, 3,, n, 为 了 决 定 这 些 未 知 量, 对 上 式 微 分 一 次, 得 到 S i(x) = 1 (x i+1 x) 2 y i + 1 ((x x i ) 2 y i+1 2 x i+1 x i 2 x i+1 x i + (y i+1 1 6 y i+1 (x i+1 x i ) 2 1 ) x i+1 x i (y i 1 6 y i (x i+1 x i ) 2 1 ) (2.125) x i+1 x i 由 S i(x) 的 连 续 性 条 件, 可 得 n 2 个 方 程 如 下 ( 对 i = 2, 3,, n 1) x i x i 1 y i 1 + x i+1 x i 1 6 3 y i+1 j + x i+1 x i y i+1 = y i+1 y i y i y i 1 (2.126) 6 x i+1 x i x i x i 1 如 前 所 述, 我 们 还 需 要 2 个 补 充 条 件 以 决 定 n 个 未 知 量 y i, 其 选 择 方 法 是, 如 果 给 定 端 点 的 一 阶 导 数, 则 把 y 1 和 y n 代 入 方 程 (2.125) 可 得 到 两 个 关 于 y 的 方 程, 与 (2.126) 一 起 构 成 一 个 完 整 的 线 性 代 数 方 程 组 ; 如 果 给 定 端 点 的 二 阶 导 数 为 0, 则 (2.126) 足 以 决 定 n 2 个 未 知 量. 一 旦 求 得 了 诸 y i, 则 对 给 定 的 x, 可 利 用 (2.124) 计 算 其 对 应 的 y 值. 下 面 我 们 看 一 个 例 子, 考 虑 下 面 的 函 数 y = 1 1 + 25x 2 (2.127) 我 们 在 [ 1, 1] 之 间 取 11 个 点, 分 别 用 多 项 式, 分 式 有 理 函 数 和 三 次 样 条 函 数 进 行 插 值, 计 算 结 果 见 图 (7.1), 其 中 实 线 为 原 函 数, 点 线 为 多 项 式 插 值 的 结 果, 除 了 在 插 值 点 外, 与 原 函 数 的 差 别 是 相 当 大 的, 点 虚 线 和 虚 线 分 别 为 分 式 有 理 函 数 和 三 次 样 条 插 值 的 结 果, 在 图 上 几 乎 完 全 与 准 确 值 重 合. 2.5.4 列 表 函 数 的 积 分 在 物 理 上, 经 常 会 遇 到 计 算 列 表 函 数 的 积 分. 实 验 测 量 的 结 果 总 是 在 一 些 分 立 点 上, 大 型 数 值 计 算 的 结 果 也 只 能 是 一 些 分 立 值. 样 条 插 值 方 法 可 以 用 来 计 算 此 类 积 分. 对 于 列 表 函 数, 可 首 先 建 立 其 样 条 插 值, 求 出 由 式 (2.122) 所 指 定 的 函 数 S(x), 由 于 诸 S i (x) 都 是 三 次 多 项 式, 其 积 分 可 解 析 求 出, 把 每 一 分 段 上 的 积 分 值 加 起 来 就 得 到 最 终 结 果.

52 第 二 章 物 理 学 中 的 常 用 数 值 方 法 2 1 0 1 1 0.5 0 0.5 1 图 2.2: 多 项 式, 分 式 有 理 函 数 和 三 次 样 条 函 数 插 值 的 比 较 练 习 分 别 对 于 端 点 和 内 点 计 算 (2.124) 的 积 分, 并 最 终 给 出 样 条 插 值 方 法 计 算 列 表 函 数 的 算 法 和 程 序 练 习 对 于 函 数 f(x) = x os x 1 + x 3 2 (i), 用 辛 普 生 方 法 计 算 f(x)dx 1.5 (ii), 在 区 间 [1, 2] 上 分 50 个 子 区 间, 计 算 f(x i ) 的 值, 利 用 这 些 数 值 并 用 样 条 函 数 方 法 ( 见 上 题 ) 计 算 上 述 程 分, 比 较 所 得 结 果 2.5.5 Padé 插 值 与 外 推 在 理 论 物 理 中, 微 扰 方 法 是 进 行 实 际 计 算 的 最 重 要 的 方 法 之 一 ( 在 力 学 界 称 为 摄 动 方 法 ), 粗 略 地 讲, 微 扰 方 法 就 是 在 计 算 某 一 物 理 量 时, 利 用 这 一 物 理 问 题 中 的 某 个 小 参 量 作 级 数 展 开, 例 如 量 子 力 学 中 的 微 扰 论, 弹 性 力 学 及 天 体 力 学 中 的 摄 动 理 论, 相 变 理 论 中 的 高 温 展 开 和 低 温 展 开 等 都 是 典 型 的 例 子. 但 是, 级 数 展 开 毕 竟 是 级 数 展 开, 它 只 在 展 开 参 量 很 小 时 有 效 ( 如 果 级 数 不 收 敛, 甚 至 在 参 数 很 小 时 也 是 有 问 题 的 ), 但 另 一 方 面, 在 物 理 问 题 中, 小 参 量 有 时 并 不 小, 其 选 取 有 时 ( 在 大 多 数 情 况 下 ) 纯 粹 是 为 了 计 算 方 便, 那 么, 有 没 有 可 能 从 这 样 一 个 级 数 出 发, 得 到 对 参 数 的 从 小 到 大 的 所 有 值 都 有 意 义 的 结 果 呢?

2.5 插 值 和 逼 近 53 这 似 乎 是 一 个 失 去 理 智 的 要 求. 然 而, 这 个 问 题 的 回 答 是 肯 定 的 ( 如 果 没 有 一 批 似 乎 是 失 去 理 智 的 人 的 开 创 性 工 作, 也 就 不 会 有 今 天 科 学 的 高 度 进 步 ). 对 于 一 个 函 数 f(x), 假 定 我 们 知 道 它 的 幂 级 数 为 f(x) = 0 + 1 x + 2 x 2 + 3 x 3 + (2.128) 这 一 幂 级 数 所 反 映 的, 当 然 只 是 f(x) 在 原 点 的 局 部 性 质, 如 果 用 它 来 计 算 函 数 在 原 点 附 近 的 值, 在 上 面 的 幂 级 数 收 敛 的 前 提 下, 一 般 取 前 几 项 就 可 得 到 较 好 的 结 果. 倘 若 要 求 x 较 大 时 的 值 或 (2.128) 不 收 敛, 则 这 一 级 数 对 于 计 算 是 没 有 什 么 用 处 的. Padé 逼 近 就 是 针 对 这 样 一 个 没 有 用 处 的 形 式 级 数 ( 并 不 要 求 收 敛 ), 从 中 得 到 函 数 f(x) 的 性 质, 并 想 法 计 算 任 一 x 下 f(x) 的 值. 之 所 以 能 够 做 到 这 一 点 是 因 为 一 个 形 式 的 幂 级 数 已 经 包 含 了 关 于 函 数 f(x) 的 很 多 信 息. 对 于 一 个 确 定 的 函 数 来 说, 函 数 的 各 点 之 间 应 该 具 有 某 种 联 系, 也 就 是 说, 函 数 在 一 点 的 行 为 是 与 其 整 体 形 为 有 关 的, 这 就 是 Padé 逼 近 可 以 成 功 的 基 础. 函 数 的 一 点 与 整 体 的 关 系 问 题 是 一 个 很 深 奥 的 问 题, 我 们 不 打 算 ( 也 不 可 能 ) 在 此 给 出 详 细 的 解 释, 但 需 要 强 调 指 出 的 是, Padé 逼 近 虽 然 最 旱 是 由 数 学 家 提 出 的, 但 其 理 论 的 发 展 和 广 泛 的 应 用 则 是 由 物 理 学 家 完 成 的. Padé 逼 近 的 定 义 是, 对 于 由 (2.128) 定 义 的 函 数, 寻 找 一 个 分 式 有 理 函 数 R m,n (x) = P (x)/q(x) (2.129) 其 中 P (x) 为 一 m 次 多 项 式, Q(x) 为 一 n 次 多 项 式 且 Q(0) = 1, 使 得 f(x) P (x)/q(x) = O(x m+n+1 ) (2.130) 即 R m,n (x) 的 泰 勒 展 开 的 前 m + n + 1 项 ( 包 括 常 数 项 ) 与 f(x) 的 泰 勒 展 开 是 一 样 的. 这 样 的 分 式 有 理 函 数 就 称 为 f(x) 的 一 个 Padé 逼 近, 简 记 为 [m/n]. 需 要 注 意 的 是, 这 样 定 义 的 padé 逼 近 并 不 总 是 存 在 的. Padé 逼 近 有 很 多 十 分 有 趣 的 性 质, 有 兴 趣 的 同 学 可 以 参 看 由 著 名 理 论 物 理 学 家 G. A. Baker Jr. 所 写 的 The essentials of Padé approximations (Aademi Press, New York, 1975) 一 书. 对 于 一 个 函 数 f(x), 其 Padé 逼 近 [m/n] 可 以 排 成 一 个 表, 称 为 Padé 表, 如 下 式 所 示. m\ n 0 1 2 3 4 5 0 [0/0] [0/1] [0/2] [0/3] [0/4] [0/5] 1 [1/0] [1/1] [1/2] [1/3] [1/4] [1/5] 2 [2/0] [2/1] [2/2] [2/3] [2/4] [2/5] 3 [3/0] [3/1] [3/2] [3/3] [3/4] [3/5] 4 [4/0] [4/1] [4/2] [4/3] [4/4] [4/5] 5 [5/0] [5/1] [5/2] [5/3] [5/4] [5/5]

54 第 二 章 物 理 学 中 的 常 用 数 值 方 法 素 : Padé 表 有 很 多 有 趣 的 性 质, 其 中 之 一 是 Wynn 恒 等 式, 对 于 Padé 表 上 相 邻 的 五 个 元 N W C E S 有 1 E C + 1 W C = 1 N C + 1 S C (2.131) 下 面 我 们 讲 述 计 算 Padé 表 的 方 法, 如 果 我 们 的 目 的 是 求 出 Padé 表 的 数 值, 则 可 使 用 ε 算 法, 如 果 已 知 这 一 算 法 首 先 定 义 一 组 ε j 0 = f(x) = i x i i=0 j i x i j = 0, 1, 2, i=0 ε j 1 = 0 j = 0, 1, 2, 3, ε k 1 2k = 0 k = 0, 1, 2, 3, 则 可 以 建 立 下 面 的 ε 表 ε 1 0 ε 2 2 ε 3 4 ε 0 1 ε 0 0 ε 1 1 ε 2 3 ε 3 5 ε 1 2 ε 2 4 ε 1 1 ε 0 1 ε 1 3 ε 2 5 ε 1 0 ε 0 2 ε 1 4 ε 2 1 ε 1 1 ε 0 3 ε 1 5 ε 2 0 ε 1 2 ε 0 4 ε 3 1 ε 2 1 ε 1 3 ε 0 5... 其 中 诸 ε 之 间 满 足 如 下 的 递 推 关 系..... ε j k+1 = εj+1 k 1 + 1 ε j+1 k ε j k (j, k = 0, 1, 2, ) (2.132) 因 此, 从 ε 表 的 第 一 行 及 第 一, 二 两 列 出 发, 便 可 得 到 表 中 的 所 有 元 素. 可 以 证 明, ε 表 与 Padé 表 之 间 有 下 述 关 系 : ε j 2k 因 此, 一 旦 求 得 了 ε 表, 也 就 得 到 了 Padé 表. = [(k + j)/k] (2.133)

2.5 插 值 和 逼 近 55 在 (2.132) 中, 如 果 第 二 项 的 分 母 变 为 零 ( 在 机 器 精 度 内 ), 则 计 算 将 无 法 进 行 下 去, 通 常 计 算 机 将 报 告 一 个 除 以 零 (Divide by Zero) 错 误, 这 一 般 是 由 于 在 计 算 中 所 取 项 数 较 多, 原 级 数 已 经 收 敛. 在 此 情 况 下, 可 少 取 几 项 进 行 计 算, 并 不 断 增 加 项 数 比 较 所 得 结 果. 也 可 以 用 下 面 将 要 介 绍 的 方 法 求 出 Padé 逼 近 的 系 数, 用 其 解 析 式 进 行 计 算. 练 习 对 较 小 的 k, j, 验 证 式 (2.133), 并 进 而 证 明 它. ( 提 示 : 用 归 纳 法 ) 练 习 1, 编 写 利 用 ε 表 计 算 padé 逼 近 的 程 序, 利 用 ln(1 + x) = x x2 2 + x3 3 x4 4 +, 用 padé 逼 近 方 法 计 算 ln(5) 的 值 并 与 准 确 值 比 较 2, 考 虑 π 的 一 个 著 名 的 慢 收 敛 级 数, 用 Padé 近 似 计 算 π 的 数 值. 3, 考 虑 积 分 π = 4 4 3 + 4 5 4 7 + = ( 1) k 4 2k + 1 I(x) = 试 证 明 此 积 分 可 写 为 下 面 的 形 式 级 数 0 k=0 e t 1 + xt dt I(x) = 1 1!x + 2!x 2 3!x 3 + 4!x 4 5!x 5 + 从 这 一 发 散 级 数 出 发, 利 用 Padé 近 似 计 算 I(1), (I(1) 的 准 确 值 可 用 数 值 积 分 方 法 求 出 为 0.596347 ) 4, 对 于 x = 0.5, 利 用 e x 的 幂 级 数 展 开 式, 从 小 到 大 改 变 所 取 级 数 的 项 数 N 并 用 前 面 的 程 序 计 算 其 Padé 逼 近, 观 察 所 得 结 果 并 与 准 确 值 比 较. 当 N 较 大 时 会 发 生 什 么 情 况? 在 很 多 问 题 中, 我 们 并 不 仅 仅 需 要 Padé 逼 近 的 数 值, 而 且 需 要 知 道 Padé 逼 近 的 解 析 形 式, 即 多 项 式 P (x) 和 Q(x) 的 系 数. 为 此, 考 虑 方 程 (2.130), 记 f(x) = 0 + 1 x + 2 x 2 + 3 x 3 + + m+n x m+n + O(x m+n+1 ) P (x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + + a m x m Q(x) = 1 + b 1 x + b 2 x 2 + b 3 x 3 + + b n x n (2.134) 这 里, i, i = 0, 1, 2,, m + n 已 知, 我 们 的 目 的 是 求 a i, i = 0, 1, 2,, m 和 b i, i = 1, 2,, n 使 得 方 程 (2.130) 满 足. 可 以 证 明, 如 果 函 数 f(x) 的 Padé 逼 近 存 在, 则 必 定 是

56 第 二 章 物 理 学 中 的 常 用 数 值 方 法 唯 一 的. 因 此, 一 旦 求 得 了 a i 及 b i, 则 P (x)/q(x) 就 是 f(x) 的 [m/n] Padé 逼 近. 为 了 计 算 系 数 a i 及 b i, 把 方 程 (2.130) 改 写 为 f(x)q(x) P (x) = O(x m+n+1 ) (2.135) 把 (2.134) 代 入 (2.135), 比 较 方 程 两 边 x 同 次 幂 的 系 数, 可 以 得 到 下 面 的 两 组 线 性 代 数 方 程. a 0 0 0 0 0 1 a 1 1 0 0 0 b 1 =...... a m m m 1 m 2 m n b n m m 1 m n+1 b 1 m+1 m m n+2 b 2 =..... m+n 1 m+n 2 m b n m+1 m+2 m+n (2.136) (2.137) 在 上 面 的 方 程 及 后 面 的 讨 论 中, 我 们 规 定, 当 j < 0 时, j = 0. 如 果 方 程 (2.137) 的 解 存 在, 我 们 可 利 用 下 一 章 将 要 介 绍 的 求 解 线 性 代 数 方 程 组 的 方 法 求 得 b i, 再 代 入 (2.136) 求 出 a i, 从 而 得 到 了 Padé 逼 近 的 解. 顺 便 指 出, 同 ε 算 法 一 样, 也 有 一 些 高 效 率 的 迭 代 算 法, 鉴 于 物 理 上 感 兴 趣 的 问 题 中 最 困 难 的 部 分 在 于 求 出 f(x) 的 形 式 级 数, 而 Padé 逼 近 的 计 算 在 总 的 计 算 中 所 占 机 时 完 全 可 以 忽 略 不 计, 因 此 我 们 不 再 做 进 一 步 的 介 绍. 2.5.6 发 散 级 数 的 Cesáro 求 和 及 其 推 广 除 了 前 述 Padé 逼 近, 在 物 理 上 还 常 用 另 外 一 种 计 算 发 散 级 数 的 方 法, Cesáro 求 和 方 法 及 其 推 广. 我 们 先 看 几 个 经 典 的 例 子. 考 虑 如 下 求 和 S = 1 1 + 1 1 + 1 1 + 1 1 + (2.138) 按 照 通 常 级 数 收 敛 的 判 据, 这 是 一 个 发 散 级 数. 另 一 方 面, 它 是 下 面 的 展 开 式 中 x = 1 的 情 形 1 1 + x = 1 x + x2 x 3 + x 4 x 5 + (2.139) 上 式 左 边 对 任 何 x 1 都 有 意 义, 当 x = 1 时, 为 1/2. 现 在 我 们 试 图 从 (2.138) 得 到 这 个 结 果. 注 意 到 (2.138) 的 结 构, 我 们 有 S = 1 1 + 1 1 + 1 1 + = 1 S

2.5 插 值 和 逼 近 57 于 是 可 得 到 S = 1/2. 进 一 步 考 虑 S = 1 2 + 4 8 + 16 = 1 2S 由 此 得 到 S = 1/3, 与 (2.139) 左 边 的 结 果 相 同. 这 里, 我 们 实 际 上 利 用 了 所 给 级 数 是 一 个 函 数 的 形 式 展 开 级 数 取 特 定 值 这 样 一 个 事 实, 一 般 这 样 一 种 方 法 在 应 用 时 要 十 分 小 心, 如 果 所 给 级 数 并 不 是 某 一 函 数 的 形 式 展 开, 那 么 上 述 处 理 可 能 给 出 错 误 的 结 果. 一 般 来 说, 如 果 我 们 要 计 算 s = a 0 + a 1 + a 2 + (2.140) 记 部 分 和 为 则 s n = a 0 + a 1 + a 2 + + a n 1 + a n (2.141) s = lim n s n (2.142) 另 一 方 面, 对 任 何 收 敛 级 数, 其 部 分 和 的 平 均 值 当 n 时 收 敛 于 原 级 数 的 和 s. 因 此 我 们 可 以 用 下 述 Cesáro 变 换 计 算 级 数 和. s 0 + s 1 + s 2 + + s n s = lim n n + 1 (2.143) 对 于 一 个 不 收 敛 的 级 数, 若 上 式 极 限 存 在, 则 称 级 数 可 Cesáro 求 和 并 把 s 作 为 级 数 的 和. 对 于 1 1 + 1 1 + 1 1 + 部 分 和 为 1, 0, 1, 0, 1, 0, 其 Cesáro 和 为 s = 1. 又 对 于 2 1 2 + 3 4 + 5 部 分 和 为 1, 1, 2, 2, 3, 3,

58 第 二 章 物 理 学 中 的 常 用 数 值 方 法 并 不 给 出 收 敛 的 结 果. 为 此, 可 以 考 虑 Cesáro 方 法 的 推 广, 定 义 H 1 n = s 0 + s 1 + s 2 + + s n n + 1 H 2 n = H1 0 + H 1 1 + H 1 2 + + H 1 n n + 1 H m+1 n = Hm 0 + H m 1 + H m 2 + + H m n n + 1 若 到 某 一 级 m, 极 限 lim n H m n 存 在, 则 可 把 此 极 限 作 为 原 级 数 的 和. 对 于 前 面 的 例 子, 我 们 有 H 1 n : 1, 0, 2 3, 0, 3 5, 0, 4 7,, 0, n + 2 2(n + 1), H 2 n : 1, 1 2, 5 9, 5 12, 34 75,, 1 4 = [ 1 1 n 2(2i+1) n+1 2 2 n/2 1 注 意 到 Hn 2 = 1 [n/2] 2i+2 n+1 i=1 是 1/4, 第 二 项 的 求 和 的 发 散 部 分 与 ] + 1 1 n+1 2 [n/2] i=1 1, 当 n, 第 一 项 的 极 限 2i+1 1 dx = ln n/2 ln n/2 相 当, 于 是 lim x n 0. n+1 2.5.7 Borel 求 和 Borel 求 和 是 一 种 强 有 力 的 发 散 级 数 的 求 和 方 法, 比 前 一 小 节 的 简 单 方 法 有 更 大 的 适 用 范 围. 在 物 理 上 有 广 泛 应 用. 设 有 一 函 数 J(x), 其 级 数 表 示 J(x) = p n x n 对 所 有 x 都 收 敛. 考 虑 函 数 S(x) = p n s n x n 这 里 s n 为 欲 求 和 的 发 散 级 数 的 部 分 和, 如 果 S(x) lim x J(x) = s 存 在, 则 称 级 数 J 收 敛, s(j) 为 J 收 敛 的 结 果. 实 际 计 算 时, 我 们 一 般 不 是 取 x 趋 于 无 穷 大 的 极 限, 而 是 寻 找 x 的 一 个 S(x) 与 J(x) 之 比 为 常 数 的 范 围, 并 把 此 常 数 作 为 我 们 的 结 果. 最 常 用 的 函 数 为 e x, 对 应 的 p n = 1/n!. 此 时 我 们 寻 找 一 个 使 函 数 e x 0 s n x n n!

2.5 插 值 和 逼 近 59 稳 定 的 区 域. 例 题, 考 虑 级 数 1 a + a 2 a 3 + a 4 a 5 + 当 a = 2 时, 即 为 前 一 节 考 虑 过 的 的 例 子. 这 一 级 数 的 部 分 和 为 因 此 S(x) J(x) = e x 0 s n = 1 ( a)n 1 1 + a 1 ( a) n+1 x n 1 + a n! = 1 1 + a + ae x 1 + a = 1 1 + a + ae x e ax 1 + a ( ax) n 上 式 对 Re(a) > 1 收 敛, 当 a = 2 时, 得 到 1/3. 这 一 方 法 称 为 Borel 微 分 求 和 方 法. 另 一 种 Borel 求 和 方 法 是 Borel 积 分 求 和 方 法, 代 替 部 分 求 和, 考 虑 [ N ] s(b) = e x a n x n dx n! 0 很 显 然, 如 果 我 们 对 上 式 逐 项 积 分, 将 得 到 原 级 数, 而 先 对 被 积 函 数 中 的 级 数 求 和 再 计 算 积 分, 则 往 往 可 得 到 正 确 的 结 果. 我 们 仍 然 考 虑 前 一 例 子, 注 意 到 0 0 n! ( a) n x n 0 n! = e ax, 则 当 Re(a) > 1 时, 0 e x e ax dx = 1 1 + a. 当 这 一 方 法 用 于 只 有 有 限 项 的 级 数 时, 积 分 限 一 般 不 是 选 无 限 大, 而 是 选 取 当 所 得 结 果 几 乎 恒 定 时 的 积 分 上 限 为 所 要 上 限, 恒 定 的 结 果 为 带 求 的 值 2.5.8 Bézier 逼 近 在 这 一 节, 我 们 将 处 理 一 个 近 年 来 变 得 十 分 重 要 的 逼 近 问 题, 即 对 于 一 条 曲 线, 寻 找 一 个 函 数 形 式 去 逼 近 它. 这 在 计 算 机 辅 助 设 计 (CAD) 中 有 较 重 要 的 应 用. 这 种 逼 近 称 为 Bézier 逼 近, 它 是 由 Bézier 和 De Casteljau 大 约 在 1962 年 分 别 独 立 发 展 起 来 的. 我 们 首 先 介 绍 Bernstein 多 项 式, 这 是 Bézier 逼 近 的 基 础. 假 定 我 们 考 虑 区 间 a x b, 第 i 个 n 次 Bernstein 多 项 式 定 义 为 ( ) n Bi n (b x) n i (x a) i (x) =, i = 0, 1, 2,, n. (2.144) i (b a) n

60 第 二 章 物 理 学 中 的 常 用 数 值 方 法 这 里, ( n i ) n! i!(n i)! 为 二 项 式 系 数. 实 际 计 算 时, 可 以 使 用 下 面 的 递 推 关 系. B 0 0(x) = 1, B n 1 = 0, Bi n (b x)bn 1 i (x) + (x a)b n 1 i 1 (x) = (x), i = 0, 1, 2,, n b a Bn+1(x) n = 0 (2.145) 现 在 考 虑 由 下 式 定 义 的 线 性 组 合 P n (x) = n p i Bi n (x) (2.146) i=0 并 称 其 为 Bézier 多 项 式, 由 此 式 决 定 的 曲 线 称 为 Bézier 曲 线. 因 为 每 一 个 B n i (x) 都 是 n 次 多 项 式, 所 以 P n (x) 也 是 一 个 n 次 多 项 式, 这 个 多 项 式 的 好 处 在 于, 由 p i 的 数 值 就 可 以 大 致 看 出 P n (x) 的 图 像, 例 如, x = a 时, 由 于 当 i 0 时 B n i (a) = 0, B n 0 (a) = 1, 所 以 p 0 给 出 了 P n (a) 的 值. 同 样, P n (b) = p n. 为 了 看 出 其 它 p i 与 由 P n (x) 所 决 定 的 曲 线 之 间 的 关 系, 我 们 定 义 一 组 控 制 点 如 下, 令 t j = a + j (b a) n 并 指 定 一 组 点 (t i, p i ), i = 0, 1, 2, n 为 一 组 控 制 点, 则 由 (t 0, p 0 ) 出 发, 经 (t 1, p 1 ), (t 2, p 2 ),, (t n, p n ) 再 回 到 (t 0, p 0 ) 的 线 段 构 成 的 多 边 形 称 为 Bézier 多 边 形, 而 由 这 一 组 p i 所 决 定 的 P n (x) 的 图 像 则 与 这 一 多 边 形 的 形 状 紧 密 相 关. 图 (7.2) 给 出 了 一 个 例 子, 图 中 虚 线 代 表 Bézier 多 边 形, 圆 点 为 控 制 点, 实 线 为 对 应 的 Bézier 曲 线, 几 者 之 间 的 关 系 是 一 目 了 然 的. CAD 的 任 务 通 常 是 你 的 大 脑 中 有 关 于 某 条 曲 线 的 一 个 设 想, 这 时 便 可 设 置 一 组 控 制 点, 用 Bézier 多 项 式 画 出 曲 线, 通 过 不 断 地 调 节 控 制 点 而 达 到 设 计 要 求. 这 里 只 对 Bézier 逼 近 做 了 一 个 十 分 简 要 地 介 绍, 需 要 更 多 了 解 这 一 内 容 的 同 学 可 参 看 有 关 资 料. 2.5.9 多 元 函 数 的 插 值 及 逼 近 多 元 函 数 的 逼 近 问 题 原 则 上 可 以 通 过 推 广 前 述 各 种 方 法 来 进 行, 例 如, 如 果 定 义 n x x i l k (x) = (2.147) x k x j i=1,i k 则 Lagrange 公 式 (2.116) 可 写 为 P (x) = n y k l k (x) (2.148) k=1

2.5 插 值 和 逼 近 61 8 图 2.3: 一 组 控 制 点 及 对 应 的 Bézier 多 项 式 和 Bézier 曲 线 6 4 2 0 1 0.5 0 0.5 1 这 一 公 式 可 直 接 推 广 到 二 维, 如 果 一 个 二 元 函 数 z = f(x, y) 在 某 一 二 维 区 域 内 的 一 组 点 (x i, y j ), i = 1, 2,, n; j = 1, 2,, m 上 的 值 z ij 已 知, 则 其 Lagrange 插 值 公 式 为 f(x, y) = n m z ij l i (x)l j (y) (2.149) i=1 j=1 练 习 证 明 由 (2.147) 定 义 的 l i (x) 满 足 关 系 l i (x j ) = δ ij, 并 进 而 证 明 公 式 (2.148) 和 (2.149). 三 次 样 条 插 值 也 可 以 推 广 到 二 维, 假 定 函 数 z = f(x, y) 在 矩 形 区 域 a x b, y d 上 的 一 组 网 格 分 点 a = x 1 < x 2 < < x n = b, = y 1 < y 2 < < y m = d 上 给 定, 我 们 可 以 构 造 一 组 分 片 三 次 多 项 式 R ij (x, y)( 对 x 和 y 均 为 三 次 ), 定 义 在 子 区 域 x i 1 x x i, y j 1 y y j 上, 则 S(x, y) = R ij (x, y) 如 果 (x i 1 x x i, y j 1 y y j ) i = 2, 3,, n; j = 2, 3,, m (2.150)

62 第 二 章 物 理 学 中 的 常 用 数 值 方 法 R ij (x, y) 可 以 类 似 于 一 维 三 次 样 条 函 数 通 过 要 求 由 S(x, y) 给 出 的 曲 面 适 当 的 光 滑 而 决 定, 其 推 导 过 程 较 繁, 但 并 不 难. 我 们 只 给 出 最 终 结 果. 定 义 则 其 中 h i = x i+1 x i τ j = y j+1 y j u i = x x i 1 h i 1 v j = y y j 1 τ j 1 (2.151) R ij (x, y) = [ u 3 i u 2 i u i 1 ]AG ij A T 2 2 1 1 3 3 2 1 A = 0 0 1 0 1 0 0 0 z i 1,j 1 z i 1,j τ j 1 g i 1,j 1 τ j 1 g i 1,j z i,j 1 z i,j τ j 1 g i,j 1 τ j 1 g i,j G ij = h i 1 m i 1,j 1 h i 1 m i 1,j h i 1 τ j 1 l i 1,j 1 h i 1 τ j 1 l i 1,j h i 1 m i,j 1 h i 1 mi, j h i 1 τ j 1 l i,j 1 H i 1 τ j 1 l i,j 而 m ij = S(x,y) x 程 组 x=x i,y=y j, g ij = S(x,y) y v 3 j v 2 j v j 1 (2.152) (2.153) (2.154), l ij = 2 S(x,y), 分 别 满 足 下 面 的 方 x=x i,y=y j x y x=xi,y=y j h i m i 1,j + 2(h i + h i 1 )m ij + h i 1 m i+1,j = 3 h i 1 h i [h 2 i 1z i+1,j + (h 2 i h 2 i 1)z ij h 2 i z i 1,j ] (2.155) i = 2, 3,, n 1; j = 1, 2,, m τ j g i,j 1 + 2(τ j + τ j 1 )g ij + τ j 1 g i,j+1 = 3 τ j 1 τ j [τ 2 j 1z i,j+1 + (τ 2 j τ 2 j 1)z ij τ 2 j z i,j 1 ] (2.156) i = 1, 2,, n; j = 2, 3,, m 1 τ j l i,j 1 + 2(τ j + τ j 1 )l ij + τ j 1 l i,j+1 = 3 τ j 1 τ j [τ 2 j 1m i,j+1 + (τ 2 j τ 2 j 1)m ij τ 2 j m i,j 1 ] (2.157) i = 1, 2,, n; j = 2, 3,, m 1

2.6 快 速 付 里 叶 变 换 63 h i l i 1,j + 2(h i + h i 1 )l ij + h i 1 m i+1,j = 3 h i 1 h i [h 2 i 1g i+1,j + (h 2 i h i 1 2 )g ij h 2 i g i 1,j ] (2.158) i = 2, 3,, n 1; j = 1, m 下 面 我 们 来 分 析 一 下 插 值 问 题 是 否 确 定. (2.155) 共 有 m(n 2) 个 方 程, (2.156) 共 有 (m 2)n 个 方 程, (2.157) 共 有 (m 2)n 个 方 程, (2.158) 共 有 2(n 2) 个 方 程, 总 共 有 3mn 2(m + n) 4 个 方 程, 而 未 知 数 的 数 目 为 3mn 个, 因 此, 为 了 求 解, 尚 需 补 充 2(m + n) + 4 个 条 件, 这 些 条 件 通 常 通 过 给 定 边 界 上 的 一 组 函 数 z = f(x, y) 的 导 数 值 来 补 足, 即 给 定 z x x=x i,y=y j i = 1, n; j = 1, 2,, m z y x=xi,y=y j i = 1, 2,, n; j = 1, m 2 z x y x=xi,y=y j i = 1, n; j = 1, m (2.159) 上 面 第 一 行 共 有 2m 个 条 件, 第 二 行 共 有 2n 个 条 件, 第 三 行 共 有 4 个 条 件, 加 上 原 有 的 方 程, 构 成 一 个 完 整 的 线 性 代 数 方 程 组 求 解 问 题. 关 于 这 一 问 题 的 算 法 实 现, 我 们 将 不 再 讨 论, 有 兴 趣 的 同 学 可 参 看 有 关 专 著. 2.6.1 付 里 叶 变 换 2.6 快 速 付 里 叶 变 换 付 里 叶 变 换 在 物 理 学 的 很 多 问 题 中 占 有 十 分 重 要 的 地 位. 这 包 括 实 验 数 据 的 处 理, 很 多 理 论 问 题 的 计 算 等. 有 一 些 物 理 问 题 本 身 就 是 用 付 里 叶 变 换 的 语 言 来 表 述 的, 利 如 量 子 力 学 中 波 函 数 在 坐 标 空 间 和 动 量 空 间 的 表 示 就 对 应 于 一 对 付 里 叶 变 换. 这 一 节 我 们 简 要 复 习 一 下 付 里 叶 变 换 的 理 论. 一 个 物 理 过 程 可 以 在 时 间 区 域 上 给 予 描 述, 其 自 变 量 取 为 t, 物 理 过 程 用 函 数 h(t) 表 示 ; 也 可 以 在 频 率 区 域 上 描 述, 其 自 变 量 取 为 f, 物 理 过 程 用 函 数 H(f) 表 示, 这 里 H(f) 通 常 是 一 个 复 数. 时 间 和 频 率 可 以 代 表 各 种 互 相 对 偶 的 一 对 变 量, 如 信 号 处 理 中 的 时 间 和 频 率, 波 动 过 程 中 的 坐 标 和 波 数, 量 子 力 学 中 的 坐 标 和 动 量, 时 间 和 能 量 等. 在 物 理 学 中, 一 般 把 h(t) 和 H(f) 看 为 同 一 物 理 过 程 的 两 种 不 同 的 表 示, 如 量 子 力 学 中 的 ψ(x) 和 ϕ(p) 等. 两 种 表 示 之 间 的 变 换 通 过 付 里 叶 变 换 来 表 示 H(f) = h(t) = h(t)e 2πift dt H(f)e 2πift df (2.160)

64 第 二 章 物 理 学 中 的 常 用 数 值 方 法 如 果 h(t) 为 实 函 数 h(t) 为 虚 函 数 h(t) 为 偶 函 数 h(t) 为 奇 函 数 h(t) 为 实 偶 函 数 h(t) 为 实 奇 函 数 h(t) 为 虚 偶 函 数 h(t) 为 虚 奇 函 数 表 2.1: 付 里 叶 变 换 的 对 称 性 质 则 H( f) = H (f) H( f) = H (f) H( f) = H(f) H( f) = H(f) H(f) 为 实 偶 函 数 H(f) 为 虚 奇 函 数 H(f) 为 实 偶 函 数 H(f) 为 实 奇 函 数 如 果 t 用 秒 表 示, 则 f 的 单 位 为 赫 兹. 在 物 理 学 中, 更 常 用 的 习 惯 是 用 ω = 2πf 表 示 频 率, 相 应 地, H(ω) H(f) f=ω/2π, 方 程 (2.160) 成 为 H(ω) = h(t) = 1 2π h(t)e iωt dt H(ω)e iωt dω (2.161) 当 然, 上 式 也 可 以 写 成 对 称 的 形 式, 因 为 从 数 值 计 算 的 角 度 看, 方 程 (2.160) 中 包 含 有 较 少 的 2π 因 子, 计 算 上 比 较 方 便, 因 此 在 下 面 的 讨 论 中 我 们 将 采 用 方 程 (2.160), 在 实 际 应 用 时, 可 把 所 用 的 形 式 变 为 这 里 讨 论 的 形 式, 计 算 完 后 再 变 换 回 去. 从 定 义 显 见, 付 里 叶 变 换 是 线 性 的, 同 时, 付 里 叶 变 换 还 有 表 (2.1) 所 列 的 性 质, 这 些 性 质 可 以 通 过 定 义 来 证 明. 在 实 际 工 作 中, 这 些 性 质 可 以 用 来 提 高 计 算 效 率. 在 以 后 的 讨 论 中, 我 们 用 下 面 的 记 号 表 示 由 方 程 (2.160) 定 义 的 一 对 付 里 叶 变 换 h(t) H(f) (2.162) 利 用 定 义, 可 以 得 到 下 面 对 应 的 变 换 对 h(at) 1 ( ) f a H 时 间 标 度 (2.163) a ( ) 1 t b h H(bf) 频 率 标 度 (2.164) b h(t t 0 ) H(f)e 2πift 0 时 间 平 移 (2.165) h(t)e 2πif 0t H(f f 0 ) 频 率 平 移 (2.166) 对 于 两 个 函 数 g(t) 和 h(t), 其 对 应 的 付 里 叶 变 换 分 别 为 G(f) 和 H(f), 我 们 可 以 定 义 两 个 合 成 函 数, 一 个 是 卷 积 g h, 由 下 式 定 义 g h g(τ)h(t τ)dτ (2.167)

2.6 快 速 付 里 叶 变 换 65 g h 是 时 间 区 域 上 的 函 数, 其 付 里 叶 变 换 满 足 下 面 的 卷 积 定 理 g h G(f)H(f) h g 卷 积 定 理 (2.168) 另 一 个 是 相 关 函 数 C[g, h], 定 义 为 C[g, h] g(τ + t)h(τ)dτ (2.169) C[g, h] 是 时 间 区 域 上 的 函 数, 其 付 里 叶 变 换 由 下 面 的 相 关 定 理 给 出 C[g, h] G(f)H( f) 相 关 定 理 (2.170) 如 果 g 和 h 是 实 函 数, 则 上 式 可 写 为 C[g, h] G(f)H (f) (2.171) 一 个 函 数 与 其 自 身 的 相 关 函 数 称 为 自 相 关 函 数, 在 此 情 况 下, 方 程 (2.171) 成 为 C[g, g] G(f) 2 (2.172) 自 相 关 函 数 通 常 称 为 功 率 谱, 而 总 功 率 定 义 为 P 上 式 通 常 称 为 Parseval 定 理. h(t) 2 dt = H(f) 2 df (2.173) 2.6.2 离 散 付 里 叶 变 换 为 了 在 计 算 机 上 实 现 付 里 叶 变 换, 需 要 对 付 里 叶 变 换 进 行 离 散 化 处 理. 这 一 节 介 绍 离 散 付 里 叶 变 换, 首 先 介 绍 对 连 续 付 里 叶 变 换 离 散 化 的 抽 样 方 法. 在 非 常 一 般 的 情 况 下, 对 函 数 h(t) 在 时 间 的 等 间 距 上 进 行 取 样. 令 为 取 样 间 隔, 则 对 h(t) 的 取 样 成 为 h n = h(n ) n =, 3, 2, 1, 0, 1, 2, 3, (2.174) 的 倒 数 称 为 取 样 频 率, 它 反 映 了 取 样 所 能 代 表 的 频 率 上 限. 对 于 一 给 定 的 取 样 间 隔, 存 在 一 个 截 止 频 率 f, 由 下 式 给 出, f = 1 2 (2.175) 这 一 频 率 通 常 称 为 Nyquist 临 界 频 率, 如 果 对 一 个 具 有 Nyquist 临 界 频 率 正 弦 ( 或 余 弦 ) 函 数 进 行 取 样, 则 如 果 一 个 取 样 点 位 于 正 的 波 峰, 则 下 一 个 取 样 点 将 位 于 负 的 波 峰, 再 下 一 个 又 位 于 正 的 波 峰,. 与 Nyquist 临 界 频 率 相 连 系, 有 下 面 的 重 要 结 论 :

66 第 二 章 物 理 学 中 的 常 用 数 值 方 法 (1) 如 果 一 连 续 函 数 h(t) 只 有 有 限 带 宽, 且 带 宽 小 于 f, 也 就 是 说, 对 所 有 的 频 率 f > f, 都 有 H(f) = 0, 则 函 数 h(t) 由 其 取 样 值 h n 完 全 决 定. 实 际 上, h(t) 可 由 下 式 显 式 给 出 sin[2πf (t n )] h(t) = h n (2.176) π(t n ) 证 明 如 下, h(t) 与 H(f) 之 间 由 下 式 联 系 H(f) = h(t) = f h(t)e 2πift dt f H(f)e 2πift df (2.177) 上 式 中 的 第 二 个 积 分 限 为 有 限 值, 这 是 由 于 在 积 分 限 外, H(f) = 0. 把 H(f) 延 拓 到 整 个 频 率 域 上, 记 延 拓 后 的 函 数 为 H(f), 满 足 { H(f) = H(f) f f f 则 可 得 到 一 对 新 的 付 里 叶 变 换 (2.179) 的 第 二 式 可 写 为 h(t) = H(f + 2f ) = H(f) = = = H(f) = h(t) = m= H(f)e 2πift df (2m+1)f h(t)e 2πift dt m= (2m 1)f f e 2πi2mf t m= (2.178) H(f)e 2πift df (2.179) H(f)e 2πift df f H(f)e 2πift df e 2πi2mf t h(t) (2.180) 在 得 到 上 式 时, 我 们 利 用 了 式 (2.178), 上 式 中 的 求 和 当 f t = n 2, n = 0, ±1, ±2, 时, 为 无 穷 大, 对 其 它 t 值, 求 和 为 0, 可 以 证 明 ( 请 同 学 作 为 一 个 练 习, 证 明 下 述 关 系 ) e 2πi2mft = δ(t n ) (2.181) m= 在 得 出 上 式 时, 使 用 了 关 系 f = 1 2, 从 而 有 h(t) = n= n= δ(t n )h(t) (2.182)

2.6 快 速 付 里 叶 变 换 67 H(f) = = = h(t)e 2πift dt n= n= 在 区 间 [ f, f ] 内, 上 式 就 等 于 H(f), 于 是 f δ(t n )h(t)e 2πift dt h(n )e 2πifn (2.183) h(t) = H(f)e 2πift df f f = h(n ) e 2πif(t n ) df f = n= n= h(n ) sin[2πf (t n )] π(t n ) (2.184) 这 是 一 个 十 分 重 要 的 定 理, 它 告 诉 我 们, 一 个 有 限 带 宽 的 信 号 所 包 含 的 信 息 较 之 一 个 一 般 的 连 续 函 数 是 非 常 小 的 ( 严 格 的 讲, 二 者 的 信 息 量 之 比 为 零 ). 在 通 常 情 况 下, 物 理 上 遇 到 的 信 号 都 是 有 限 带 宽 的, 在 这 种 情 况 下, 只 要 取 取 样 间 隔 小 于 或 等 于 二 倍 最 大 频 率 的 倒 数, 则 可 以 完 整 的 地 得 到 这 一 信 号 所 包 含 的 信 息. (2) 如 果 一 个 信 号 不 是 有 限 带 宽 的 或 Nyquist 临 界 频 率 f 小 于 信 号 的 最 大 频 率, 则 位 于 [ f, f ] 外 的 付 里 叶 分 量 将 移 动 到 [ f, f ] 区 间 内 并 叠 加 在 这 一 区 间 的 分 量 上 面, 这 一 现 象 称 为 波 形 重 叠. 当 一 个 信 号 进 行 离 散 取 样 后, 消 除 波 形 重 叠 几 乎 是 不 可 能 的. 克 服 这 一 困 难 的 方 法 是, 首 先 找 到 信 号 的 自 然 带 度, 或 者 先 用 某 种 方 法 对 信 号 进 行 滤 波, 把 信 号 限 制 于 一 频 率 间 隔 内, 然 后 由 最 大 频 率 确 定 取 样 间 隔. 现 在, 我 们 来 讨 论 如 何 由 有 限 数 目 的 样 点 来 计 算 其 付 里 叶 变 换. 假 定 我 们 有 N 个 相 继 的 取 样 信 号 h k h(t k ), t k k k = 0, 1, 2,, N 1 (2.185) 为 简 单 起 见, 我 们 进 一 步 假 定 N 为 偶 数. 如 果 h(t) 只 在 有 限 时 间 区 间 内 非 零, 则 h(t) 的 取 样 应 包 括 这 个 非 零 区 间, 如 果 h(t) 在 整 个 时 间 区 间 中 非 零, 则 取 样 应 包 括 足 够 大 的 区 间 以 使 区 间 内 的 h(t) 尽 可 能 好 的 代 表 整 个 时 间 区 间 上 的 h(t). 如 果 我 们 只 有 N 个 数 作 为 输 入, 则 显 然 最 多 只 能 得 到 N 个 独 立 的 数 作 为 输 出. 因 此, 要 从 N 个 样 品 点 计 算 [ f, f ] 内 的 所 有 f 值 的 付 里 叶 变 换 H(f) 是 不 可 能 的, 因 此, 我 们 只 计 算 一 系 列 离 散 点 f n n N, n = N 2, N 2 + 1,, N 2 (2.186) 上 式 中 n 的 上 限 值 正 好 是 Nyquist 临 界 频 率 f, 上 式 中 的 n 的 总 数 实 际 上 为 N + 1 个, 而 不 是 N 个, 但 n 的 上 限 值 和 下 限 值 并 不 独 立, 实 际 上, 它 们 代 表 同 一 个 点, 这 样, 独 立 频 率 的 总 数 为 N 个.

68 第 二 章 物 理 学 中 的 常 用 数 值 方 法 把 (2.160) 中 的 积 分 变 为 一 个 离 散 求 和 H(f n ) = h(t)e 2πift dt N 1 k=0 N 1 h k e 2πifnt k = k=0 h k e 2πikn/N (2.187) 在 最 后 一 个 等 式 中, 使 用 了 式 (2.174) 和 (2.186), 上 式 的 最 后 求 和 称 为 N 个 数 据 点 h k 的 离 散 付 里 叶 变 换. 记 为 H n N 1 k=0 h k e 2πikn/N (2.188) 它 把 N 个 数 h k 映 射 为 N 个 数 H n, 这 一 求 和 不 依 赖 于 任 何 量 纲 参 数 (h k 与 H n 具 有 相 同 的 量 纲 ), 连 续 付 里 叶 变 换 在 离 散 点 上 的 值 与 离 散 付 里 叶 变 换 由 式 (2.187) 给 出 为 H(f n ) = H n (2.189) 到 此 为 此, 我 们 总 是 取 (2.188) 中 的 n 的 取 值 范 围 为 N/2 到 N/2. 实 际 上, 从 (2.188) 可 知, H n 对 于 n 具 有 周 期 N, 即 H n = H N n, 因 此, 我 们 也 可 以 取 n = 0, 1, 2,, N 1, 这 样, n 和 k 的 变 化 范 围 完 全 相 同. 在 这 种 取 法 下, 0 < f < f 对 应 于 1 n N/2 1, 负 频 率 f < f < 0 对 应 于 N/2 + 1 n N 1, 而 f 和 f 均 对 应 于 n = N/2. 离 散 付 里 叶 变 换 的 逆 变 换 由 下 式 给 出 h k = 1 N N 1 n=0 H n e 2πikn/N (2.190) 这 一 表 达 式 与 (2.188) 的 差 别 在 于 改 变 e 指 数 上 的 符 号 并 把 结 果 除 以 N, 因 此 计 算 离 散 付 里 叶 变 换 的 方 法 ( 或 程 序 ) 只 需 做 微 小 修 改 便 可 用 来 计 算 离 散 付 里 叶 变 换 的 逆 变 换. 离 散 付 里 叶 变 换 具 有 与 连 续 付 里 叶 变 换 几 乎 完 全 相 同 的 性 质, 例 如 表 2.1 中 所 列 的 对 称 性 质 对 于 离 散 付 里 叶 变 换 也 成 立, 只 是 此 时 h k 对 应 于 h(t), h N k 对 应 于 h( t), H n 对 应 于 H(f), 而 H N n 对 应 于 H( f). 例 如 说 H n 为 偶 时, 我 们 是 指 H n = H N n, 等 等. 2.6.3 快 速 付 里 叶 变 换 首 先, 让 我 们 看 一 下 对 N 个 数 据 点 作 一 次 离 散 付 里 叶 变 换 所 需 的 计 算 次 数, 定 义 则 (2.188) 可 写 为 W e 2πi/N (2.191) H n = N 1 k=0 W nk h k (2.192) 即 如 果 把 H n 和 h k 看 作 矢 量, 则 上 式 相 当 于 一 矩 阵 与 矢 量 的 乘 积, 矩 阵 的 第 (n, k) 个 分 量 等 于 W 的 nk 次 方. 显 然, 矩 阵 与 矢 量 的 乘 积 需 要 做 N 2 次 乘 法, 总 的 计 算 量 等 于 N 2

2.6 快 速 付 里 叶 变 换 69 次 乘 法 加 上 形 成 矩 阵 所 需 的 计 算 次 数, 其 阶 为 N 2. 直 到 1960 年 中 期, 这 是 通 常 的 看 法. 1965 年, IBM 公 司 的 J. W. Cooley 和 J. W. Tukey 提 出 了 一 个 离 散 付 里 叶 变 换 的 快 速 算 法, 把 计 算 量 从 N 2 降 低 到 N log 2 N. 为 了 看 出 这 一 改 进 的 重 要 意 义, 考 虑 一 个 N = 524288 的 离 散 付 里 叶 变 换, 这 一 变 换 用 快 速 方 法 在 一 个 486/33 计 算 机 上 约 需 60 秒, 而 如 果 用 (2.192) 直 接 计 算, 则 需 要 大 约 20 天. 事 实 上, 离 散 付 里 叶 变 换 的 快 速 算 法 可 以 追 溯 到 1903 年, 当 时, Runge 提 出 了 12 点 和 24 点 的 算 法. 1942 年, Danielson 和 Lanzos 提 出 了 一 种 最 优 算 法, 但 因 为 当 时 还 没 有 电 子 计 算 机, 因 而 没 有 引 起 重 视, 只 是 在 J. W. Cooley 和 J. W. Tukey 提 出 后, 才 引 起 了 广 泛 的 注 意. 下 面 我 们 给 出 这 一 算 法 的 一 个 推 导, 首 先 我 们 证 明, 一 个 N 点 (N 为 偶 数 ) 的 离 散 付 里 叶 变 换 可 以 写 为 二 个 N/2 点 的 离 散 付 里 叶 变 换 之 和, 其 中 一 个 由 处 于 原 来 N 个 点 的 偶 数 位 置 的 点 构 成, 另 一 个 则 由 处 于 原 来 N 个 点 的 奇 数 位 置 的 点 构 成, 这 一 结 论 称 为 Danielson Lanzos 定 理. 证 明 如 下 : H n = = = N 1 k=0 N/2 1 k=0 N/2 1 k=0 e 2πink/N h k e 2πin(2k)/N h 2k + N/2 1 k=0 N/2 1 e 2πink/(N/2) h 2k + W n e 2πin(2k+1)/N h 2k+1 k=0 e 2πink/(N/2) h 2k+1 = H e n + W n H o n (2.193) 上 式 称 为 Danielson Lanzos 公 式. 在 上 式 中, W 由 式 (2.191) 给 出, H e n 表 示 由 长 度 为 N/2, 由 原 h k 的 偶 分 量 组 成 的 数 据 序 列 的 离 散 付 里 叶 变 换 ; 而 H o n 表 示 由 长 度 为 N/2, 由 原 h k 的 奇 分 量 组 成 的 数 据 序 列 的 离 散 付 里 叶 变 换. 请 注 意 上 式 中 最 后 一 行 中 n 的 取 值 仍 然 是 0 到 N, 但 H e n 和 H o n 的 周 期 为 N/2, 因 此 实 际 上 只 要 各 计 算 N/2 个 分 量, 另 外 N/2 个 由 周 期 性 得 到. 在 有 了 上 述 结 果 后, 我 们 可 以 分 别 对 H e n 和 H o n 进 行 同 样 的 变 换, 即 代 替 计 算 长 度 为 N/2 的 离 散 付 里 叶 变 换, 我 们 可 以 计 算 两 个 长 度 为 N/4 的 离 散 付 里 叶 变 换, 分 别 对 应 于 N/2 序 列 中 的 偶 数 分 量 序 列 和 奇 数 分 量 序 列. 也 就 是 说, 我 们 可 以 定 义 H ee n, H eo n, 分 别 为 由 顺 次 划 分 中 的 偶 偶 序 列, 偶 奇 序 列, 的 离 散 付 里 叶 变 换. 为 了 这 一 划 分 可 以 一 直 进 行 下 去, 我 们 要 求 N 应 为 2 的 某 个 幂 次, 如 果 在 实 际 工 作 中 得 到 的 数 据 不 是 2 的 幂 次, 则 可 在 原 数 据 上 增 加 若 干 个 0 使 分 量 的 总 数 成 为 2 的 幂 次 以 便 使 用 快 速 方 法. 在 N 为 2 的 幂 次 的 条 件 下, 这 种 划 分 可 以 一 直 进 行 到 长 度 为 1 的 变 换, 而 长 度 为 1 的 离 散 付 里 叶 变 换 就 是 该 数 本 身. 这 样, 我 们 得 到 N 个 一 点 离 散 付 里 叶 变 换, 每 一 个 对 应 于 一 种 log 2 N 个 e 和 o 的 排 列, 即 H eeoe oo n = h k (2.194)

70 第 二 章 物 理 学 中 的 常 用 数 值 方 法 实 际 上, 对 于 一 点 变 换, 其 周 期 为 1, 因 而 上 式 左 边 的 下 标 n 是 多 余 的. 上 式 右 边 的 下 标 k 与 左 边 的 上 标 对 应, 对 于 一 个 给 定 的 e 和 o 的 排 列, 唯 一 地 确 定 了 方 程 右 边 的 下 标 k. 下 面 的 问 题 是 给 出 k 与 e 和 o 的 排 列 之 间 的 对 应 关 系, 这 个 关 系 是 十 分 简 单 的, 首 先, 令 e = 0, o = 1, 则 e 和 o 的 一 种 排 列 与 一 个 2 进 制 数 相 对 应, 我 们 把 这 个 2 进 制 数 前 后 颠 倒, 其 结 果 就 给 出 k 的 2 进 制 表 示. 例 如, 对 于 N = 2 3, eee 000 k = (000) 2 = 0 eeo 001 k = (100) 2 = 4 eoe 010 k = (010) 2 = 2 eoo 011 k = (110) 2 = 6 oee 100 k = (001) 2 = 1 oeo 101 k = (101) 2 = 5 ooe 110 k = (011) 2 = 3 ooo 111 k = (111) 2 = 7 (2.195) 为 了 说 明 这 个 结 果, 我 们 仍 然 以 N = 2 3 为 例, 下 面 是 每 一 步 变 换 步 骤 另 一 方 面, H n = H e n + W n H o n = (H ee n = (H eee n W n (H oee n + W 2n Hn eo ) + W n (Hn oe + W 2n Hn oo ) + W 4n Hn eeo ) + W 2n (Hn eoe + W 4n Hn eoo ) + + W 4n Hn oeo ) + W 3n (Hn ooe + W 4n Hn ooo ) (2.196) H n = h 0 + W n h 1 + W 2n h 2 + W 3n h 3 + W 4n h 4 + W 5n h 5 + W 6n h 6 + W 7n h 7 (2.197) 比 较 (2.196) 和 (2.197) 可 知, k 与 e 和 o 的 排 列 之 间 的 关 系 由 前 面 的 论 断 给 出, 我 们 在 此 仅 仅 对 N 的 一 个 特 殊 值 给 出 了 验 证, 但 可 以 一 般 地 证 明 它 的 正 确 性. 式 (2.196) 也 给 出 了 一 个 计 算 步 骤, 利 用 关 系 W 0 = 1 及 W N/2 = 1, 我 们 看 到, 如 果 把 h k 按 照 0, 4, 2, 6, 1, 5, 3, 7 的 次 序 排 列 ( 这 一 排 列 方 式 正 好 是 k 的 2 进 制 表 示 前 后 颠 倒 后 的 数 的 顺 序 排 列 ), 则 第 一 步 可 对 相 邻 的 数 作 二 点 变 换, 如 式 (2.196) 中 最 后 一 行 的 每 一 个 括 号 所 示, 在 这 一 步, 只 需 计 算 n = 0 和 n = 1,n = 2,, 7 由 周 期 性 条 件 给 出, 需 要 做 2 4 = 8 次 乘 法 ; 第 二 步 由 式 (2.196) 的 第 二 行 给 出, 此 时 需 计 算 n = 0, 1, 2, 3, 需 要 做 4 2 = 8 次 乘 法 ; 最 后 一 步 由 (2.196) 的 第 一 行 给 出, 需 要 做 8 1 = 8 次 乘 法. 因 此, 总 的 乘 法 数 为 8 3 = 8 log 2 8 次. 上 面 的 算 法 可 立 即 推 广 到 一 般 N( 为 2 的 幂 次 ), 我 们 给 出 计 算 离 散 付 里 叶 变 换 的 算 法 如 下 (1) 把 h k 按 照 k 的 2 进 制 表 示 前 后 颠 倒 后 的 数 的 顺 序 重 新 排 列 ; (2) 对 max = 2, 4, 8,, 2 i,, N; 对 于 m = 0, 1,, max; 对 于 相 邻 的 一 对 数 做 二 点 离 散 付 里 叶 变 换.

2.7 附 录 : 特 殊 函 数 的 计 算 71 0.8 0.6 0.4 0.2 0 0.2 10 5 0 5 10 图 2.4: Runge 函 数 的 付 里 叶 变 换 到 此 为 止, 我 们 讨 论 了 N = 2 γ, γ 为 一 整 数 的 快 速 算 法 ( 在 一 般 文 献 中 称 为 基 2 算 法 ), 在 实 现 时, 我 们 先 对 数 据 进 行 二 进 位 次 序 颠 倒, 再 使 用 Danielson Lanzos 公 式. 当 然, 我 们 也 可 以 先 使 用 Danielson Lanzos 公 式, 再 做 二 进 位 次 序 颠 倒. 除 了 基 2 算 法 外, 也 可 以 进 行 基 4 算 法, 基 8 算 法 等, 也 可 以 通 过 推 广 Danielson Lanzos 公 式, 建 立 以 小 的 素 数 为 基 的 算 法. 对 于 绝 大 多 数 问 题, 基 2 算 法 应 作 为 首 选 算 法, 如 前 面 已 经 指 出 过 的, 若 原 始 数 据 的 个 数 不 是 2 的 幂 次, 则 可 通 过 补 零 的 办 法 凑 齐. 给 出 作 为 例 子, 我 们 来 考 虑 区 间 [ 1, 1] 上 Runge 函 数 的 付 里 叶 变 换. Runge 函 数 由 下 式 h(x) = 1 1 + 25x 2 把 h(x) 延 拓 到 整 个 实 轴 上, 成 为 周 期 为 2 的 周 期 函 数, 为 了 使 用 前 面 的 程 序, 考 虑 区 间 [0, 2], 由 于 已 经 进 行 了 延 拓, 因 此 [ 1, 1] 和 [0, 2] 均 为 一 个 周 期, 其 付 里 叶 变 换 是 相 同 的. 图 (2.4) 给 出 付 里 叶 变 换 的 计 算 结 果 关 于 快 速 付 里 叶 变 换, 已 有 不 少 专 著 对 其 进 行 讨 论, 希 望 进 一 步 了 解 的 同 学 可 参 看 这 些 书 籍. 但 对 于 大 部 分 实 际 应 用, 本 章 的 内 容 应 已 够 用. 2.7 附 录 : 特 殊 函 数 的 计 算 Γ 函 数, B 函 数, 不 完 全 Γ 函 数 的 计 算 Γ 函 数 由 下 面 的 积 分 定 义 : Γ(z) = 0 t z 1 e t dt (2.198)

72 第 二 章 物 理 学 中 的 常 用 数 值 方 法 如 果 z 为 一 整 数, 则 有 Γ 函 数 满 足 如 下 递 推 关 系 : n! = Γ(n + 1) (2.199) Γ(z + 1) = zγ(z) (2.200) 如 果 已 经 知 道 了 Γ 函 数 在 Re(z) > 1 时 的 值, 则 可 利 用 下 述 关 系 求 得 Re(z) < 1 时 的 值. Γ(1 z) = π Γ(z) sin(πz) = πz Γ(1 + z) sin(πz) (2.201) Γ(z) 在 0, 1, 2,, 上 有 单 极 点, 在 复 平 面 的 其 它 地 方 解 析. Lanzos 方 法 似 乎 是 计 算 Γ 函 数 的 数 值 的 最 漂 亮 的 方 法, 对 于 一 定 的 整 数 γ 和 N 以 及 一 定 的 系 数 1, 2,, N, Lanzos 的 近 似 公 式 由 下 式 给 出 : ( Γ(z + 1) = z + γ + 1 ) z+ 1 2 e (z+γ+ 1 2) 2 [ 2π 0 + 1 z + 1 + 2 z + 2 + + ] N z + N + ϵ (Re(z) > 0) (2.202) 这 里 : 0 1, ϵ 代 表 误 差, 对 于 γ = 5, N = 6 可 以 得 到 ϵ < 2 10 10 当 z 较 大 时, Γ 函 数 的 数 值 非 常 大, 极 易 上 溢, 在 实 用 上, 很 多 物 理 公 式 常 常 表 示 为 Γ 函 数 相 除 的 形 式 而 代 表 一 个 合 理 的 数 字. 因 此, 代 替 计 算 Γ 函 数 本 身, 我 们 通 常 计 算 Γ 函 数 的 对 数 ln(γ(z)). 由 上 式 可 得 到 ln(γ(z)) 的 公 式 如 下 : ( ln(γ(z + 1)) = z + 1 ) ( ln z + γ + 1 ) 2 2 这 里 + ln ( z + γ + 1 2 [( 2π(0 + 1 z + 1 + 2 z + 2 + + 0 = 1 1 = 76.18009173 2 = 86.50532033 3 = 24.01409822 4 = 1.231739516 5 = 0.120858003 10 2 6 = 0.536382 10 5 ) N z + N + ϵ )] (2.203) (2.204)

2.7 附 录 : 特 殊 函 数 的 计 算 73 B 函 数 由 下 式 积 分 定 义 : B(z, w) = B(w, z) = 它 与 Γ 函 数 之 间 满 足 如 下 简 单 的 关 系 : 1 0 t z 1 (1 t) w 1 dt (2.205) B(z, w) = Γ(z)Γ(w) Γ(z + w) (2.206) 因 此, 很 容 易 用 Γ 函 数 的 结 果 计 算 B 函 数. 不 完 全 Γ 函 数 定 义 为 : P (a, x) γ(a, x) Γ(a) 1 Γ(a) x 0 e t t a 1 dt (a > 0) (2.207) 它 具 有 下 面 的 极 限 P (a, 0) = 0, P (a, ) = 1 (2.208) P (a, x) 的 补 函 数 Q(a, x) 1 P (a, x) 的 积 分 形 式 为 : Q(a, x) Γ(a, x) Γ(a) 1 Γ(a) x e t t a 1 dt (a > 0) (2.209) γ(a, x) 可 以 用 级 数 表 示 出 来 : γ(a, x) = e x x a n=0 Γ(a) Γ(a + 1 + n) xn (2.210) 实 际 计 算 时, 并 不 需 要 对 每 个 n 都 计 算 Γ(a + 1 + n), 而 通 常 是 利 用 前 一 次 的 值 递 推 计 算. Γ(a, x) 可 以 用 连 分 式 表 示 出 来, Γ(a, x) = e x x a ( 1 x+ 1 a 1+ 1 x+ 2 a 1+ ) 2 x+ (x > 0) (2.211) (2.210) 对 于 较 小 的 x (x < a + 1) 收 敛 较 快, 而 (2.211) 对 于 大 的 x (x > a + 1) 收 敛 较 快, 把 二 个 式 子 结 合 起 来, 就 得 到 计 算 不 完 全 Γ 函 数 的 方 法. 2.7.1 误 差 函 数 的 计 算 误 差 函 数 和 余 误 差 函 数 定 义 为 erf(x) = 2 x e t2 dt (2.212) π 0 erf(x) 1 erf(x) = 2 e t2 dt (2.213) π x

74 第 二 章 物 理 学 中 的 常 用 数 值 方 法 它 们 具 有 下 面 的 极 限 形 式 erf(0) = 0, erf( ) = 1, erf(0) = 1, erf( ) = 0 (2.214) 及 对 称 关 系 erf( x) = erf(x) erf( x) = 2 erf(x) (2.215) 误 差 函 数 可 用 下 面 的 近 似 逼 近 式 计 算 其 值, 误 差 小 于 10 7. erf(x) = (1.061405429t 5 1.453152027t 4 + 1.421413741t 3 t = 0.284496736t 2 + 0.254829592t) exp( x 2 ) 1 1 + 0.3275911x 这 一 函 数 目 前 已 经 在 很 多 计 算 机 上 作 为 内 部 函 数 给 出, 因 此 在 使 用 本 程 序 前, 请 先 检 查 你 的 机 器 上 是 否 有 此 函 数, 如 果 没 有, 再 使 用 本 节 的 算 法 计 算. 误 差 函 数 也 可 作 为 不 完 全 Γ 函 数 的 特 殊 形 式 给 出, ( ) 1 erf(x) = P 2, x2 (x 0) ( ) 1 erf(x) = Q 2, x2 (x 0) (2.216) 例 题 硅 片 置 于 恒 定 杂 质 浓 度 (N 0 ) 的 气 体 中, 试 确 定 其 内 部 浓 度 随 时 间 的 变 化. 解 : 本 问 题 的 定 解 方 程 为 :( 梁 昆 淼, 数 学 物 理 方 法, P259) u t a 2 u xx = 0 u x=0 = N 0 u t=0 = 0 其 解 可 写 为 : x u(x, t) = N 0 erf( 2a t ) 为 了 得 到 解 的 图 形, 可 利 用 本 节 的 程 序 计 算 余 误 差 函 数 的 值. 作 为 练 习, 请 同 学 完 成 具 体 计 算. 2.7.2 指 数 积 分 的 计 算 指 数 积 分 是 指 由 下 式 定 义 的 函 数 E 1 (z) = e t z t dt ( argz < π) (2.217)

2.7 附 录 : 特 殊 函 数 的 计 算 75 这 里 z 为 一 辐 角 小 于 π 的 复 数, 与 此 相 关 的 函 数 还 有 它 们 之 间 满 足 下 面 的 关 系 E n (z) = 对 E n (x), 有 下 面 的 不 等 式 1 e zt dt (n = 2, 3, ; Rez > 0) (2.218) tn E n+1 (z) = 1 n [e z ze n (z)] (n = 1, 2, 3, ) (2.219) 1 x + n < ex E n (x) 1 x + n 1 (2.220) 对 于 实 数 宗 量, 当 0 x 1 时, E 1 (x) 可 用 多 项 式 来 近 似 ; 当 x > 1 时, xe x E 1 (x) 可 用 分 式 有 理 函 数 来 近 似, 下 面 是 有 关 公 式 : E 1 (x) = 0.00107857x 5 0.00976004x 4 + 0.05519968x 3 0.24991055x 2 + 0.99999193x 0.57721566 ln(x) (0 x 1) E 1 = P (t) exp( x) Q(t) x (x > 1) t = 1 x P (t) = 0.2677737343t 4 + 8.6347608925t 3 + 18.0590169730t 2 + 8.5733287401t + 1 Q(t) = 3.9584969228t 4 + 21.0996530827t 3 + 25.6329561486t 2 + 9.5733223454t + 1 2.7.3 整 数 阶 贝 塞 尔 函 数 及 虚 宗 量 贝 塞 尔 函 数 的 计 算 贝 塞 尔 函 数 在 物 理 研 究 中 经 常 遇 到, 对 于 任 意 实 数 ν, 贝 塞 尔 函 数 定 义 为 : ( J ν (z) = ( z 2 )ν k=0 z2 4 ) k k!γ(ν + k + 1) 这 个 级 数 对 于 任 何 z 都 是 收 敛 的, 但 当 z 1 时, 对 于 实 际 计 算 并 无 多 大 用 处. 当 ν 不 是 整 数 时, 第 二 类 贝 塞 尔 函 数 Y ν (z) 由 下 式 定 义 : Y ν (z) = J ν(z) os(νπ) J ν (z) sin(νπ) (2.221) (2.222) 当 ν 为 整 数 n 时, Y n 可 由 下 面 的 极 限 得 到. Y n (z) = lim ν n Y ν (z) (2.223)

76 第 二 章 物 理 学 中 的 常 用 数 值 方 法 图 2.5: J 0 (x),, J 2 (x), Y 0 (x),, Y 2 (x) 的 图 形 1 0.5 0 0.5 1 J 0 (x) J 1 (x) J 2 (x) Y 0 (x) Y 1 (x) Y 2 (x) 0 2 4 6 8 10 对 于 小 的 x, ( 例 如, 当 x ν 时 ), 贝 塞 尔 函 数 具 有 如 下 渐 近 表 达 式 : 1 ( x ) ν J ν (x) (ν 0) Γ(ν + 1) 2 Y 0 (x) 2 ln(x) (2.224) π Y ν (x) Γ(ν) ( x ) ν (ν > 0) π 2 而 对 于 大 的 x, ( 如 x ν), 贝 塞 尔 函 数 定 性 与 三 角 函 数 一 致, 但 其 振 幅 按 照 1/ x 的 方 式 衰 减, 其 渐 近 形 式 为 : J ν (x) Y ν (x) 图 (4.1) 给 出 了 前 几 个 贝 塞 尔 函 数 的 图 形. 贝 塞 尔 函 数 满 足 如 下 的 递 推 关 系 : 2 (x πx os 12 νπ 14 ) π 2 (x πx sin 12 νπ 14 ) π J n(x) = nj n(x) x J n+1 (x) J n+1 (x) = 2n x J n(x) J n 1 (x) (2.225) Y n+1 (x) = 2n x Y n(x) Y n 1 (x) (2.226) 第 一 个 可 用 来 计 算 贝 塞 尔 函 数 的 导 数, 第 三 个 递 推 式 对 于 n 增 加 的 递 推 是 稳 定 的, 第 二 个 递 推 式 当 x > n 时 对 于 n 增 加 的 递 推 是 稳 定 的, 而 当 x < n 时 对 于 n 减 小 的 递 推 是 稳 定 的.

2.7 附 录 : 特 殊 函 数 的 计 算 77 计 算 整 数 阶 贝 塞 尔 函 数 的 任 务 可 由 两 步 来 完 成, 第 一 步 先 计 算 J 0 (x), J 1 (x), Y 0 (x), Y 1 (x) 的 数 值, 然 后 利 用 递 推 关 系 求 得 其 它 n 的 值. 从 小 x 时 的 渐 近 关 系 我 们 知 道, Y n (x) 在 x = 0 附 近 有 奇 异 性, 因 此, 我 们 应 该 计 算 其 正 规 部 分. Y 0 (x) 2 π J 0(x) ln(x) and Y 1 (x) 2 π [ J 1 (x) ln(x) 1 ] x (2.227) 当 0 x 8 时, J 0 (x), J 1 (x), Y 0 (x), Y 1 (x) 可 以 用 分 式 有 理 函 数 来 表 示, 而 当 8 < x < 时, 对 于 (n = 0, 1), 有 下 面 的 近 似 式 : 2 J n (x) = πx 2 Y n (x) = πx 其 中 [ ( ) ( ) ] 8 8 P n os(x n ) Q n sin(x n ) x x [ ( ) ( ) ] 8 8 P n sin(x n ) + Q n os(x n ) x x X n x 2n + 1 π 4 (2.228) P 0, P 1, Q 0 和 Q 1 是 其 宗 量 的 多 项 式. ( 这 里 选 择 8 作 为 两 种 近 似 表 达 式 的 分 界 线 并 无 特 殊 的 原 因, 选 7 或 9 也 可, 当 然 多 项 式 的 系 数 将 会 不 同 ). 代 替 给 出 表 示 式, 这 里 给 出 计 算 程 序, 读 者 应 该 很 容 易 从 程 序 中 看 出 上 述 各 多 项 式 的 形 式 和 系 数. Funtion bessj0(x) Real*8 y,p1,p2,p3,p4,p5,q1,q2,q3,q4,q5,r1,r2,r3,r4,r5,r6, * s1,s2,s3,s4,s5,s6 Data p1,p2,p3,p4,p5 /1.D0,-.1098628627D-2,.2734510407D-4, * -.2073370639D-5,.2093887211D-6/, * q1,q2,q3,q4,q5 /-.1562499995D-1,.1430488765D-3, * -.6911147651D-5,.7621095161D-6,-.934945152D-7/ Data r1,r2,r3,r4,r5,r6 /57568490574.D0,-13362590354.D0, * 651619640.7D0,-11214424.18D0,77392.33017D0, * -184.9052456D0/, * s1,s2,s3,s4,s5,s6 /57568490411.D0,1029532985.D0, * 9494680.718D0,59272.64853D0,267.8532712D0,1.D0/ If(abs(x).LT.8.) Then y=x**2 bessj0=(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6))))) * /(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))) Else ax=abs(x) z=8./ax y=z**2 xx=ax-.785398164 bessj0=sqrt(.636619772/ax)*(os(xx)*(p1+y*(p2+y*(p3+y*(p4+ * y*p5))))-z*sin(xx)*(q1+y*(q2+y*(q3+y*(q4+y*q5))))) Endif Return End C C Funtion bessy0(x)

78 第 二 章 物 理 学 中 的 常 用 数 值 方 法 C C C C Real*8 y,p1,p2,p3,p4,p5,q1,q2,q3,q4,q5,r1,r2,r3,r4,r5,r6, * s1,s2,s3,s4,s5,s6 Data p1,p2,p3,p4,p5 /1.D0,-.1098628627D-2,.2734510407D-4, * -.2073370639D-5,.2093887211D-6/, * q1,q2,q3,q4,q5 /-.1562499995D-1,.1430488765D-3, * -.6911147651D-5,.7621095161D-6,-.934945152D-7/ Data r1,r2,r3,r4,r5,r6 /-2957821389.D0,7062834065.D0, * -512359803.6D0,10879881.29D0,-86327.92757D0, * 228.4622733D0/, * s1,s2,s3,s4,s5,s6 /40076544269.D0,745249964.8D0, * 7189466.438D0,47447.26470D0,226.1030244D0,1.D0/ If(x.LT.8.) Then y=x**2 bessy0=(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))))/(s1+y*(s2+y * *(s3+y*(s4+y*(s5+y*s6)))))+.636619772*bessj0(x)*log(x) Else z=8./x y=z**2 xx=x-.785398164 bessy0=sqrt(.636619772/x)*(sin(xx)*(p1+y*(p2+y*(p3+y*(p4+y* * p5))))+z*os(xx)*(q1+y*(q2+y*(q3+y*(q4+y*q5))))) Endif Return End Funtion bessj1(x) Real*8 y,p1,p2,p3,p4,p5,q1,q2,q3,q4,q5,r1,r2,r3,r4,r5,r6, * s1,s2,s3,s4,s5,s6 Data r1,r2,r3,r4,r5,r6 /72362614232.D0,-7895059235.D0, * 242396853.1D0,-2972611.439D0,15704.48260D0, * -30.16036606D0/, * s1,s2,s3,s4,s5,s6 /144725228442.D0,2300535178.D0, * 18583304.74D0,99447.43394D0,376.9991397D0,1.D0/ Data p1,p2,p3,p4,p5 /1.D0,.183105D-2,-.3516396496D-4, *.2457520174D-5,-.240337019D-6/, * q1,q2,q3,q4,q5 /.04687499995D0,-.2002690873D-3, *.8449199096D-5,-.88228987D-6,.105787412D-6/ If(abs(x).LT.8.) Then y=x**2 bessj1=x*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6))))) /(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))) Else ax=abs(x) z=8./ax y=z**2 xx=ax-2.356194491 bessj1=sqrt(.636619772/ax)*(os(xx)*(p1+y*(p2+y*(p3+y*(p4+y * *p5))))-z*sin(xx)*(q1+y*(q2+y*(q3+y*(q4+y*q5))))) * *sign(1.,x) Endif Return End Funtion bessy1(x)

2.7 附 录 : 特 殊 函 数 的 计 算 79 Real*8 y,p1,p2,p3,p4,p5,q1,q2,q3,q4,q5,r1,r2,r3,r4,r5,r6, * s1,s2,s3,s4,s5,s6,s7 Data p1,p2,p3,p4,p5 /1.D0,.183105D-2,-.3516396496D-4, *.2457520174D-5,-.240337019D-6/, * q1,q2,q3,q4,q5 /.04687499995D0,-.2002690873D-3, *.8449199096D-5,-.88228987D-6,.105787412D-6/ Data r1,r2,r3,r4,r5,r6 /-.4900604943D13,.1275274390D13, * -.5153438139D11,.7349264551D9,-.4237922726D7, *.8511937935D4/, * s1,s2,s3,s4,s5,s6,s7 /.2499580570D14,.4244419664D12, *.3733650367D10,.2245904002D8,.1020426050D6, *.3549632885D3,1.D0/ If(x.LT.8.) Then y=x**2 bessy1=x*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))))/(s1+y*(s2+y* * (s3+y*(s4+y*(s5+y*(s6+y*s7))))))+.636619772 * *(bessj1(x)*log(x)-1./x) Else z=8./x y=z**2 xx=x-2.356194491 bessy1=sqrt(.636619772/x)*(sin(xx)*(p1+y*(p2+y*(p3+y*(p4+y * *p5))))+z*os(xx)*(q1+y*(q2+y*(q3+y*(q4+y*q5))))) Endif Return End 高 阶 第 二 类 贝 塞 尔 函 数 的 值 可 以 通 过 递 推 关 系 求 得, J n (x) 的 计 算 比 较 麻 烦, 对 于 小 n 大 x, 按 照 n 增 加 的 方 向 递 推 是 稳 定 的, ( 实 际 工 作 中 碰 到 的 大 都 是 这 种 情 况 ), 但 对 于 大 n 小 x, 则 必 须 按 照 n 减 小 的 方 向 递 推, 这 就 必 须 选 则 一 个 较 大 的 n, 一 般 取 为 n + Const n, 向 下 递 推 至 0, 再 按 照 恒 等 式 1 = J 0 (x) + 2J 2 (x) + 2J 4 (x) + 2J 6 (x) + 对 计 算 结 果 归 一 化. 下 面 就 是 这 一 想 法 的 实 现. C C Funtion bessy(n,x) If(n.LT.2) Pause'bad argument N in BESSY' tox=2./x by=bessy1(x) bym=bessy0(x) Do 11 j=1,n-1 byp=j*tox*by-bym bym=by by=byp 11 Continue bessy=by Return End Funtion bessj(n,x) Parameter(ia=40,bigno=1.E10,bigni=1.E-10) If(n.LT.2) Pause'bad argument N in BESSJ'

80 第 二 章 物 理 学 中 的 常 用 数 值 方 法 ax=abs(x) If(ax.EQ.0.) Then bessj=0. Elseif(ax.GT.float(n)) Then tox=2./ax bjm=bessj0(ax) bj=bessj1(ax) Do 11 j=1,n-1 bjp=j*tox*bj-bjm bjm=bj bj=bjp 11 Continue bessj=bj Else tox=2./ax m=2*((n+int(sqrt(float(ia*n))))/2) bessj=0. jsum=0 sum=0. bjp=0. bj=1. Do 12 j=m,1,-1 bjm=j*tox*bj-bjp bjp=bj bj=bjm If(abs(bj).GT.bigno) Then bj=bj*bigni bjp=bjp*bigni bessj=bessj*bigni sum=sum*bigni Endif If(jsum.NE.0) sum=sum+bj jsum=1-jsum If(j.EQ.n) bessj=bjp 12 Continue sum=2.*sum-bj bessj=bessj/sum Endif If(x.LT.0..AND.mod(n,2).EQ.1) bessj=-bessj Return End 现 在 我 们 讨 论 虚 宗 量 贝 塞 尔 函 数 的 计 算. 虚 宗 量 贝 塞 尔 函 数 定 义 为 : I n (x) = ( i) n J n (ix) K n (x) = π 2 in+1 [J n (ix) + iy n (ix)] (2.229) 在 小 x 极 限 下, 它 们 具 有 如 下 渐 近 形 式 : I n (x) 1 ( x ) n n 0 n! 2 K 0 (x) ln(x) (n 1)! ( x ) n K n (x) n > 0 (2.230) 2 2

2.7 附 录 : 特 殊 函 数 的 计 算 81 而 在 大 x 极 限 下, 其 渐 近 形 式 为 : I n (x) K n (x) 1 2πx exp(x) π 2πx exp( x) (2.231) 虚 宗 量 贝 塞 尔 函 数 的 递 推 关 系 与 贝 塞 尔 函 数 的 略 有 不 同, 由 下 式 给 出 : 归 一 化 关 系 为 考 虑 到 上 述 改 变, 我 们 给 出 计 算 程 序 如 下 : C C I n(x) = ni n(x) + I n+1 (x) ( x ) 2n I n+1 (x) = I n (x) + I n 1 (x) x ( ) 2n K n+1 (x) = + K n (x) + K n 1 (x) (2.232) x 1 = I 0 (x) 2I 2 (x) + 2I 4 (x) 2I 6 (x) + Funtion bessi0(x) Real*8 y,p1,p2,p3,p4,p5,p6,p7, * q1,q2,q3,q4,q5,q6,q7,q8,q9 Data p1,p2,p3,p4,p5,p6,p7 /1.0D0,3.5156229D0,3.0899424D0, * 1.2067492D0,0.2659732D0,0.360768D-1,0.45813D-2/ Data q1,q2,q3,q4,q5,q6,q7,q8,q9 /0.39894228D0,0.1328592D-1, * 0.225319D-2,-0.157565D-2,0.916281D-2,-0.2057706D-1, * 0.2635537D-1,-0.1647633D-1,0.392377D-2/ If(abs(x).LT.3.75) Then y=(x/3.75)**2 bessi0=p1+y*(p2+y*(p3+y*(p4+y*(p5+y*(p6+y*p7))))) Else ax=abs(x) y=3.75/ax bessi0=(exp(ax)/sqrt(ax))*(q1+y*(q2+y*(q3+y*(q4 * +y*(q5+y*(q6+y*(q7+y*(q8+y*q9)))))))) Endif Return End Funtion bessi1(x) Real*8 y,p1,p2,p3,p4,p5,p6,p7, * q1,q2,q3,q4,q5,q6,q7,q8,q9 Data p1,p2,p3,p4,p5,p6,p7 /0.5D0,0.87890594D0,0.51498869D0, * 0.15084934D0,0.2658733D-1,0.301532D-2,0.32411D-3/ Data q1,q2,q3,q4,q5,q6,q7,q8,q9 /0.39894228D0,-0.3988024D-1, * -0.362018D-2,0.163801D-2,-0.1031555D-1,0.2282967D-1, * -0.2895312D-1,0.1787654D-1,-0.420059D-2/ If(abs(x).LT.3.75) Then y=(x/3.75)**2 bessi1=x*(p1+y*(p2+y*(p3+y*(p4+y*(p5+y*(p6+y*p7)))))) Else

82 第 二 章 物 理 学 中 的 常 用 数 值 方 法 C C C C ax=abs(x) y=3.75/ax bessi1=(exp(ax)/sqrt(ax))*(q1+y*(q2+y*(q3+y*(q4+ * y*(q5+y*(q6+y*(q7+y*(q8+y*q9)))))))) If(x.LT.0.) bessi1=-bessi1 Endif Return End Funtion bessk0(x) Real*8 y,p1,p2,p3,p4,p5,p6,p7, * q1,q2,q3,q4,q5,q6,q7 Data p1,p2,p3,p4,p5,p6,p7 /-0.57721566D0,0.42278420D0, * 0.23069756D0,0.3488590D-1,0.262698D-2,0.10750D-3,0.74D-5/ Data q1,q2,q3,q4,q5,q6,q7 /1.25331414D0,-0.7832358D-1, * 0.2189568D-1,-0.1062446D-1,0.587872D-2,-0.251540D-2, * 0.53208D-3/ If(x.LE.2.0) Then y=x*x/4.0 bessk0=(-log(x/2.0)*bessi0(x))+(p1+y*(p2+y*(p3+ * y*(p4+y*(p5+y*(p6+y*p7)))))) Else y=(2.0/x) bessk0=(exp(-x)/sqrt(x))*(q1+y*(q2+y*(q3+ * y*(q4+y*(q5+y*(q6+y*q7)))))) Endif Return End Funtion bessk1(x) Real*8 y,p1,p2,p3,p4,p5,p6,p7, * q1,q2,q3,q4,q5,q6,q7 Data p1,p2,p3,p4,p5,p6,p7 /1.0D0,0.15443144D0,-0.67278579D0, * -0.18156897D0,-0.1919402D-1,-0.110404D-2,-0.4686D-4/ Data q1,q2,q3,q4,q5,q6,q7 /1.25331414D0,0.23498619D0, * -0.3655620D-1,0.1504268D-1,-0.780353D-2,0.325614D-2, * -0.68245D-3/ If(x.LE.2.0) Then y=x*x/4.0 bessk1=(log(x/2.0)*bessi1(x))+(1.0/x)*(p1+y*(p2+ * y*(p3+y*(p4+y*(p5+y*(p6+y*p7)))))) Else y=2.0/x bessk1=(exp(-x)/sqrt(x))*(q1+y*(q2+y*(q3+ * y*(q4+y*(q5+y*(q6+y*q7)))))) Endif Return End Funtion bessk(n,x) If(n.LT.2) Pause'bad argument N in BESSK' tox=2.0/x bkm=bessk0(x) bk=bessk1(x) Do 11 j=1,n-1

2.7 附 录 : 特 殊 函 数 的 计 算 83 C C bkp=bkm+j*tox*bk bkm=bk bk=bkp 11 Continue bessk=bk Return End Funtion bessi(n,x) Parameter(ia=40,bigno=1.0E10,bigni=1.0E-10) If(n.LT.2) Pause'bad argument N in BESSI' If(x.EQ.0.) Then bessi=0. Else tox=2.0/abs(x) bip=0.0 bi=1.0 bessi=0. m=2*((n+int(sqrt(float(ia*n))))) Do 11 j=m,1,-1 bim=bip+float(j)*tox*bi bip=bi bi=bim If(abs(bi).GT.bigno) Then bessi=bessi*bigni bi=bi*bigni bip=bip*bigni Endif If(j.EQ.n) bessi=bip 11 Continue bessi=bessi*bessi0(x)/bi If(x.LT.0..AND.mod(n,2).EQ.1) bessi=-bessi Endif Return End 练 习 运 行 上 面 的 程 序, 并 与 你 所 能 得 到 的 贝 塞 尔 函 数 的 数 据 表 比 较 例 题 均 匀 圆 柱, 半 径 为 R, 高 为 H, 柱 侧 有 均 匀 分 布 的 恒 定 热 流 进 入, 其 强 度 为 q 0, 圆 柱 上 下 底 面 保 持 为 恒 定 的 u 0 度, 求 解 柱 内 稳 定 温 度 分 布. 这 一 问 题 的 答 案 是 ( 见 梁 昆 淼, 数 学 物 理 方 法, P376) u u 0 = 4Hq 0 kπ 2 1 I 0 (2l + 1) 2 l=0 I 0 ( (2l+1)π H ρ ) ( (2l+1)πR H ) sin (2l + 1)πz H 利 用 I 0(x) = I 1 (x), 由 上 面 给 出 的 贝 塞 尔 函 数 的 计 算 程 序, 可 以 直 接 用 上 式 求 得 u u 0, 由 于 I 0 和 I 1 在 其 宗 量 较 大 时 指 数 上 升, 为 了 避 免 上 溢, 实 际 计 算 时 对 前 面 所 给 程 序 作 了 很 小 的 改 动, 即 把 指 数 上 升 部 分 提 了 出 来. 图 (2.6) 给 出 了 R = 1, H = 2 时 u u 0 与 z 的

84 第 二 章 物 理 学 中 的 常 用 数 值 方 法 2 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 图 2.6: 关 系 的 计 算 结 果. 从 下 至 上, 曲 线 依 次 对 应 于 ρ = 0, 0.2, 0.4, 0.6, 0.8, 1.0, 从 图 中 可 见, 在 柱 的 轴 线 方 向, 中 间 温 度 最 高, 沿 柱 的 径 向, 则 表 面 温 度 最 高, 这 些 特 点, 在 解 析 式 子 中 是 很 难 看 出 来 的. 2.7.4 球 谐 函 数 的 计 算 球 谐 函 数 在 物 理 学 的 各 个 子 领 域 中 都 经 常 遇 到, 它 是 Laplae 方 程 在 球 坐 标 中 分 离 变 量 的 自 然 结 果. 球 谐 函 数 通 常 通 过 连 带 勒 让 德 多 项 式 来 定 义 : 2l + 1 (l m)! Y lm (θ, ϕ) = 4π (l + m)! P l m (os θ)e imϕ (2.233) 利 用 关 系 式 Y l, m (θ, ϕ) = ( 1) m Y lm(θ, ϕ) (2.234) 我 们 总 可 以 把 一 个 任 意 球 谐 函 数 与 m 0 的 连 带 勒 让 德 多 项 式 联 系 起 来. 令 x os θ, 连 带 勒 让 德 多 项 式 定 义 为 : Pl m (x) = ( 1) m (1 x 2 m/2 dm ) dx P l(x) (2.235) m P l (x) 为 l 阶 勒 让 德 多 项 式. 连 带 勒 让 德 多 项 式 有 关 系 式 因 此 我 们 只 需 要 计 算 m > 0 的 情 形. P m m (l m)! l (os θ) = ( 1) (l + m)! P l m (os θ)

2.7 附 录 : 特 殊 函 数 的 计 算 85 且 连 带 勒 让 德 多 项 式 满 足 如 下 的 递 推 关 系 : (l m)pl m (x) = x(2l 1)Pl 1 m (l + m 1)Pl 2 m (2.236) P m m (x) = ( 1) m (2m 1)!!(1 x 2 ) m/2 P m m+1(x) = x(2m + 1)P m m (x) (2.237) 由 此, 我 们 得 到 计 算 连 带 勒 让 德 多 项 式 的 程 序 如 下 : Funtion plgndr(l,m,x) If(m.LT.0.OR.m.GT.l.OR.abs(x).GT.1.) Pause'bad arguments' pmm=1. If(m.GT.0) Then somx2=sqrt((1.-x)*(1.+x)) fat=1. Do 11 i=1,m pmm=-pmm*fat*somx2 fat=fat+2. 11 Continue Endif If(l.EQ.m) Then plgndr=pmm Else pmmp1=x*(2*m+1)*pmm If(l.EQ.m+1) Then plgndr=pmmp1 Else Do 12 ll=m+2,l pll=(x*(2*ll-1)*pmmp1-(ll+m-1)*pmm)/(ll-m) pmm=pmmp1 pmmp1=pll 12 Continue plgndr=pll Endif Endif Return End 当 m = 0 时, 程 序 给 出 勒 让 德 多 项 式 的 值. 球 谐 函 数 则 可 通 过 连 带 勒 让 德 多 项 式 乘 以 一 个 因 子 得 到. 例 题 : 设 半 径 为 a 的 球 面 上 的 势 给 定 为 ( 取 球 坐 标, 坐 标 原 点 取 到 球 心 ) { +V 0 θ < π V (θ) = V 2 π < θ π 2 其 球 外 的 电 势 可 解 出 为 ( 见 D. J. 杰 克 逊, 经 典 电 动 力 学, 朱 培 豫 译, P101) Φ(r, θ) = V ( 1) j 1 (2j 1)Γ ( ) j 1 ( 2 2 a ) 2j P2j 1 (os θ) π j! r j=1 利 用 本 节 提 供 的 计 算 Γ 函 数 和 勒 让 德 多 项 式 的 子 程 序, 直 接 对 上 式 求 和, 就 可 得 到 电 势 的 图 像, 图 (2.7) 是 对 五 个 r, (r = 1.1a, 1.6a, 2.1a, 2.6a, 3.1a) 的 数 值 所 做 的 计 算 结 果.

86 第 二 章 物 理 学 中 的 常 用 数 值 方 法 1 0.5 0 0.5 1 0 0.2 0.4 0.6 0.8 1 图 2.7: 2.7.5 椭 圆 积 分 的 计 算 我 们 知 道, 形 如 dx A(x) + B(x) S(x) C(x) + D(x) S(x) (2.238) 的 积 分 总 可 以 表 示 为 椭 圆 积 分. 这 里 A, B, C, 和 D 为 任 意 多 项 式 而 S 是 一 个 三 次 或 四 次 多 项 式. 为 了 计 算 椭 圆 积 分 的 数 值, 我 们 定 义 广 义 第 二 类 不 完 全 椭 圆 积 分 如 下 : el2(y, k, a, b) y 这 里 y 0, a, b, k 可 以 是 任 何 实 数. 做 变 量 替 换 我 们 得 到 广 义 第 二 类 不 完 全 椭 圆 积 分 的 等 价 表 示 : 0 (a + bx 2 )dx (1 + x 2 ) (1 + x 2 )(1 + k 2 x 2 ) (2.239) x = tan ϕ k 2 = 1 k 2 (2.240) el2(y, k, a, b) = = tan 1 y 0 tan 1 y 0 (a + b tan 2 ϕ)dϕ (1 + tan 2 ϕ) (1 + tan 2 ϕ)(1 + k 2 tan 2 ϕ) a + (b a) sin 2 ϕ dϕ (2.241) 1 k2 sin 2 ϕ 另 一 个 有 用 的 函 数 是 广 义 完 全 椭 圆 积 分, 定 义 为 : el(k, p, a, b) = 0 π/2 0 (a + bx 2 )dx (1 + px 2 ) (1 + x 2 )(1 + k 2 x 2 ) a os 2 ϕ + b sin 2 ϕ (os 2 ϕ + p sin 2 ϕ) dϕ (2.242) os 2 ϕ + k 2 sin 2 ϕ

2.7 附 录 : 特 殊 函 数 的 计 算 87 利 用 上 述 两 个 函 数, 则 第 一 类 勒 让 德 椭 圆 积 分 可 表 示 为 : F (ϕ, k) = ϕ 0 dϕ x 1 k2 sin 2 ϕ = dx (1 + x2 )(1 + kx 2 2 ) = el2(x, k, 1, 1) (2.243) 0 这 里 x = tan ϕ, k 2 = 1 k 2 第 一 类 完 全 椭 圆 积 分 可 表 示 为 : 第 二 类 勒 让 德 椭 圆 积 分 可 表 示 为 : E(ϕ, k) = ϕ 0 1 k 2 sin 2 ϕdϕ = 第 二 类 完 全 椭 圆 积 分 可 表 示 为 : K(k) F ( π 2, k) = el(k, 1, 1, 1) (2.244) x 0 1 + k 2 x 2 (1 + x 2 ) (1 + x 2 ) dx = el2(x, k, 1, k 2 ) (2.245) E(k) E( π 2, k) = el(k, 1, 1, k 2 ) (2.246) 这 里 不 给 出 算 法, 讲 义 所 附 计 算 el2 和 el 的 程 序 可 作 为 一 个 黑 匣 子 来 使 用. 例 题 : 考 虑 一 个 单 摆, 由 一 质 量 为 m 的 重 锤 和 一 长 为 l 的 轻 绳 构 成, 平 衡 时 重 锤 坚 直 向 下, 取 摆 绳 偏 离 平 衡 位 置 的 夹 角 为 θ, 则 摆 的 运 动 方 程 为 θ = g l sin θ 其 中 g 为 重 力 加 速 度, 当 θ << 1 时, sin θ θ, 上 面 方 程 可 容 易 解 出, 由 此 可 求 得 单 摆 的 周 期 为 为 了 求 得 一 般 结 果, 把 原 方 程 改 写 为 上 式 两 边 乘 以 θ 并 积 分 得 : l T 0 = 2π g T 2 0 θ = (2π) 2 sin θ dθ dt = ±2π T 0 2(os θ os α) 式 中 α 为 一 积 分 常 数, 代 表 单 摆 的 最 大 摆 角, + 号 表 示 θ 增 加 方 向, 号 表 示 θ 减 小 方 向. 上 式 可 进 一 步 化 为 dt = ± T 0 4π dθ sin 2 α 2 sin2 θ 2

88 第 二 章 物 理 学 中 的 常 用 数 值 方 法 1.2 1.15 T/T 0 1.1 1.05 1 0 0.1 0.2 0.3 0.4 0.5 α/π 图 2.8: 单 摆 的 周 期 与 最 大 偏 角 之 间 的 关 系 若 设 t = 0 时, θ = 0, 考 虑 0 t T /4, 0 θ α 之 间 的 运 动, 作 代 换 sin θ 2 = sin α 2 sin ϕ, 则 1 ϕ t = T 0 2π 0 dϕ 1 sin 2 α 2 1 = T 0 2π F (ϕ, k) = T 1 0 2π el2(x, k, 1, 1) 其 中 k = sin α, x = tgϕ, k 2 = 1 k 2, 当 θ = α 时, ϕ = π, 由 此 得 摆 的 严 格 周 期 为 2 1 T = 4T 0 2π F (2π 2, k) = T 2 0 π el(k, 1, 1, 1) 图 (2.8) 是 按 照 上 式 求 出 的 T α 关 系. 2.8 附 录 : 高 斯 积 分 的 节 点 和 权 重 这 里 给 出 若 干 常 用 的 高 斯 积 分 的 节 点 和 权 重 表, 更 多 的 数 表 可 在 M. Abramowitz & A. Stegun 编 写 的 Handbook of Mathematial Funtions 中 找 到.

2.8 附 录 : 高 斯 积 分 的 节 点 和 权 重 89 表 2.2: 高 斯 勒 让 德 积 分 的 节 点 和 权 重 ±x i w i n=2 0.57735 02691 89626 1.00000 00000 00000 n=3 0.00000 00000 00000 0.88888 88888 88889 0.77459 66692 41483 0.55555 55555 55556 n=4 0.33998 10435 84856 0.65214 51548 62546 0.86113 63115 94055 0.34785 48451 37454 n=5 0.00000 00000 00000 0.56888 88888 88889 0.53846 93101 05683 0.47862 86704 99366 0.90617 98459 38664 0.23692 68850 56189 n=6 0.23861 91860 83197 0.46791 39345 72691 0.66120 93864 66265 0.36076 15730 48139 0.93246 95142 03152 0.17132 44923 79170 n=7 0.00000 00000 00000 0.41795 91836 73469 0.40584 51513 77397 0.38183 00505 05119 0.74153 11855 99394 0.27970 52914 89277 0.94910 79123 42759 0.12948 49661 68870 n=8 0.18343 46424 95650 0.36268 37833 78362 0.52553 24099 16329 0.31370 66458 77887 0.79666 64774 13627 0.22238 10344 53374 0.96028 98564 97536 0.10122 85362 90376

90 第 二 章 物 理 学 中 的 常 用 数 值 方 法 表 2.3: 等 权 重 切 贝 雪 夫 积 分 的 节 点 n ±x i n ±x i n ±x i 2 0.57735 02692 5 0.83249 74870 7 0.88386 17008 0.37454 14096 0.52965 67753 0.00000 00000 0.32391 18105 0.00000 00000 3 0.70710 67812 0.00000 00000 9 0.91158 93077 0.60101 86554 6 0.86624 68181 0.52876 17831 4 0.79465 44723 0.42251 86538 0.16790 61842 0.18759 24741 0.26663 54015 0.00000 00000

2.8 附 录 : 高 斯 积 分 的 节 点 和 权 重 91 表 2.4: 高 斯 拉 盖 尔 积 分 的 节 点 和 权 重, 表 示 形 式 为 (E)B = B 10 E x i w i w i e x i n=2 0.58578 64376 27 (-1)8.53553 390593 1.53332 603312 3.41421 35623 73 (-1)1.46446 609407 4.45095 733505 n=5 0.26356 03197 18 (-1)5.21755 610583 0.67909 40422 08 1.41340 30591 07 (-1)3.98666 811083 2.04810 243845 4.53662 02969 21 (-2)7.59424 496817 2.76944 324237 7.08581 00058 59 (-3)3.61175 867992 4.31565 690092 12.64080 08442 76 (-5)2.33699 723858 7.21918 635435 n=6 0.22284 66041 79 (-1)4.58964 673950 0.57353 55074 23 1.18893 21016 73 (-1)4.17000 830772 1.36925 259071 2.99273 63260 59 (-1)1.13373 382074 2.26068 459338 5.77514 35691 05 (-2)1.03991 974531 3.35052 458236 9.83746 74183 83 (-4)2.61017 202815 4.88682 680021 15.98287 39806 02 (-7)8.98547 906430 7.84901 594560 n=7 0.19304 36765 60 (-1)4.09318 951701 0.49647 75975 40 1.02666 48953 39 (-1)4.21831 277862 1.17764 306086 2.56787 67449 51 (-1)1.47126 348658 1.91824 978166 4.90035 30845 26 (-2)2.06335 144687 2.77184 863623 8.18215 34445 63 (-3)1.07401 014328 3.84124 912249 12.73418 02917 98 (-5)1.58654 643486 5.36067 820792 19.39572 78622 63 (-8)3.17031 547900 8.40543 248683 n=8 0.17027 96323 05 (-1)3.69188 589342 0.43772 34104 93 0.90370 17767 99 (-1)4.18786 780814 1.03386 934767 2.25108 66298 66 (-1)1.75794 986637 1.66970 976566 4.26670 01702 88 (-2)3.33434 922612 2.37692 470176 7.04590 54023 93 (-3)2.79453 623523 3.20854 091335 10.75851 60101 81 (-5)9.07650 877336 4.26857 551083 15.74067 86412 78 (-7)8.48574 671627 5.81808 336867 22.86313 17368 89 (-9)1.04800 117487 8.90622 621529

92 第 二 章 物 理 学 中 的 常 用 数 值 方 法 表 2.5: 高 斯 厄 米 积 分 的 节 点 和 权 重, 表 示 形 式 为 (E)B = B 10 E ±x i w i w i e x2 i n=2 0.70710 67811 86548 (-1)8.86226 92545 28 1.46114 11826 611 n=5 0.00000 00000 00000 (-1)9.45308 72048 29 0.94530 87204 829 0.95857 24646 13819 (-1)3.93619 32315 22 0.98658 09967 514 2.02018 28704 56086 (-2)1.99532 42059 05 1.18148 86255 360 n=6 0.43607 74119 27617 (-1)7.24629 59522 44 0.87640 13344 362 1.33584 90740 13697 (-1)1.57067 32032 29 0.93558 05576 312 2.35060 49736 74492 (-3)4.53000 99055 09 1.13690 83326 745 n=7 0.00000 00000 00000 (-1)8.10264 61755 68 0.81026 46175 568 0.81628 78828 58965 (-1)4.25607 25261 01 0.82868 73032 836 1.67355 16287 67471 (-2)5.45155 82819 13 0.89718 46002 252 2.65196 13568 35233 (-4)9.71781 24509 95 1.10133 07296 103 n=8 0.38118 69902 07322 (-1)6.61147 01255 82 0.76454 41286 517 1.15719 37124 46780 (-1)2.07802 32581 49 0.79289 00483 864 1.98165 67566 95843 (-2)1.70779 83007 41 0.86675 26065 634 2.93063 74202 57244 (-4)1.99604 07221 14 1.07193 01442 480

第 三 章 数 值 线 性 代 数 在 这 一 章 里, 我 们 将 讨 论 物 理 学 中 非 常 重 要 的 一 类 计 算 问 题, 即 关 于 线 性 代 数 的 计 算 问 题. 线 性 代 数 计 算 也 是 计 算 数 学 中 研 究 的 最 透 彻 的 问 题 之 一, 目 前 已 经 有 一 些 十 分 完 整 的 程 序 包 运 行 在 从 微 机 到 大 型 机 的 各 种 不 同 档 次 的 计 算 机 上, 其 中 最 著 名 的 是 Linpak 和 Eispak, 第 一 个 是 求 解 线 性 方 程 组 的 通 用 软 件 包, 第 二 个 是 求 解 各 种 矩 阵 本 征 值 和 本 征 向 量 的 通 用 软 件 包. 1 目 前, 这 两 个 包 已 经 合 并 为 LAPACK 软 件 包, 与 基 本 线 性 代 数 包 BLAS 联 合, 可 以 解 决 几 乎 所 有 的 线 性 代 数 问 题. 这 些 软 件 包 可 在 http://www.netlib.org 免 费 获 得, 在 校 园 里 十 分 流 行 的 工 具 软 件 Matlab 为 上 述 软 件 包 做 了 很 好 的 界 面, 可 以 帮 助 方 便 使 用. 但 另 一 方 面, 大 型 软 件 包 由 于 包 含 的 程 序 多, 调 用 路 径 复 杂, 对 于 一 些 较 为 简 单 的 问 题, 使 用 起 来 颇 有 牛 刀 杀 鸡 之 感. 因 此, 在 这 一 章 里, 我 们 将 介 绍 几 种 常 见 的 线 性 代 数 问 题 的 计 算 方 法, 对 于 在 研 究 中 碰 到 的 较 为 复 杂 的 问 题, 强 烈 建 议 使 用 前 面 所 提 软 件 包 中 的 标 准 程 序. 3.1 主 元 消 去 法 解 线 性 代 数 方 程 组 一 个 n 元 线 性 代 数 方 程 组 记 为 A X = B (3.1) 这 里, A = a 11 a 12 a 1n a 21 a 22 a 2n.... a n1 a n2 a nn 为 一 n n 矩 阵, X = [x 1, x 2,, x n ] T, B = [b 1, b 2,, b n ] T 1 国 内 最 早 对 这 两 个 软 件 包 进 行 系 统 介 绍 的 是 郭 富 印, 冯 国 环, 石 中 岳 和 朱 耀 祖 所 编 FORTRAN 算 法 汇 编, 第 三 分 册, 并 对 软 件 包 做 了 一 些 扩 充, 但 所 附 程 序 有 个 别 印 刷 错 误.

94 第 三 章 数 值 线 性 代 数 为 列 向 量. 显 然, 方 程 (3.1) 的 解 可 形 式 地 写 为 X = A 1 B 但 这 一 形 式 对 于 实 际 计 算 没 有 什 么 用 处. 一 个 实 用 的 算 法 是 消 去 法, 其 计 算 过 程 是 相 当 简 单 的, 首 先, 用 矩 阵 A 的 第 一 行 分 别 乘 以 某 一 适 当 的 数 与 其 它 各 行 相 加, 使 得 矩 阵 A 的 第 一 列 除 a 11 外 全 为 0, 同 时, 对 列 矩 阵 B 施 行 同 样 的 运 算, 由 线 性 代 数 知 道, 这 样 的 运 算 相 当 于 用 第 一 个 方 程 分 别 乘 以 某 一 数 值 与 其 它 方 程 相 加, 而 这 样 的 运 算 并 不 改 变 原 方 程 组 的 解. 用 A 的 第 二 行 分 别 乘 以 某 一 适 当 数 值 与 其 它 各 行 相 加, 同 时 对 B 施 行 同 样 的 运 算, 便 可 以 把 A 的 第 二 列 除 a 22 外 的 元 素 化 为 0, 这 一 过 程 可 以 一 直 (?) 进 行 下 去, 最 后 得 到 一 个 对 角 矩 阵 的 方 程, 其 解 可 直 接 写 出. 然 而, 上 述 过 程 并 不 总 是 能 够 成 功, 事 实 上, 直 接 用 这 一 方 法 计 算 的 话, 大 部 分 问 题 都 无 法 求 解, 一 个 极 端 的 例 子 是, 如 果 a 11 = 0, 则 显 然 第 一 步 就 完 不 成. 解 决 这 一 问 题 的 方 法 自 然 是 十 分 简 单 的, 只 要 交 换 第 一 个 方 程 和 另 一 个 x 1 的 系 数 不 为 0 的 方 程 就 行 了, 实 际 上, 应 该 选 择 x 1 的 系 数 的 绝 对 值 最 大 的 方 程 与 之 交 换, 这 样 可 使 舍 入 误 差 最 小. 既 然 如 此, 对 于 a 11 0 的 情 形, 我 们 也 可 以 作 这 样 一 个 交 换, 把 x 1 的 系 数 的 绝 对 值 最 大 的 方 程 放 在 第 一 个, 这 一 过 程 称 为 选 列 主 元. 当 然, 我 们 对 于 其 后 的 运 算 也 要 进 行 选 主 元 计 算. 完 成 选 列 主 元 的 过 程 等 价 于 交 换 矩 阵 A 的 二 行, 这 一 过 程 并 不 改 变 原 方 程 的 解, 所 以 无 需 保 留 任 何 交 换 的 信 息. 也 许 大 家 可 能 已 经 想 到, 如 果 在 每 一 个 方 程 内, 在 计 算 的 每 一 步 把 系 数 最 大 的 那 一 项 放 在 第 一 个, 可 能 数 值 性 态 会 更 好. 事 实 确 是 如 此, 实 现 这 一 过 程 称 为 选 行 主 元, 可 以 通 过 交 换 矩 阵 的 两 列 来 实 现. 由 于 选 行 主 元 改 变 了 原 方 程 的 结 构, 所 以 在 计 算 的 每 一 步 都 要 保 留 行 主 元 的 信 息, 在 最 后 恢 复 到 原 方 程 的 解. 这 一 过 程 叫 做 全 主 元 高 斯 消 去 法. 我 们 立 刻 可 以 看 到, 这 一 过 程 对 于 求 解 一 组 方 程 和 求 解 A 相 同 而 方 程 右 边 不 同 的 数 组 方 程 一 样 容 易, 更 进 一 步, A 的 逆 矩 阵 也 可 同 时 求 出 ( 如 何 求?). 3.2 LU 分 解 法 前 节 讲 述 的 方 法 基 本 可 以 满 足 一 般 问 题 的 需 要, 但 也 有 一 个 严 重 的 缺 点, 这 就 是 必 须 事 先 知 道 方 程 的 右 边 B, 有 时 候, 我 们 需 要 求 解 这 样 一 类 方 程 组, 其 系 数 矩 阵 是 给 定 的, 但 B 随 问 题 而 变 且 事 先 并 不 知 道. 对 这 样 一 类 问 题, LU 分 解 法 提 供 了 最 好 的 解 决 办 法. 假 定 我 们 可 以 把 矩 阵 A 分 解 为 L U = A (3.2)

3.2 LU 分 解 法 95 这 里 L 为 一 下 三 角 矩 阵, U 是 一 个 上 三 角 矩 阵, 其 形 式 为 α 11 0 0 α 21 α 22 0 L =.... α n1 α n2 α nn β 11 β 12 β 1n 0 β 22 β 2n U =.... 0 0 β nn 利 用 (3.2), 方 程 (3.1) 可 写 为 (3.3) (3.4) A X = L U X = B (3.5) 定 义 一 个 矢 量 Y 为 下 面 方 程 的 解 则 L Y = B (3.6) U X = Y (3.7) 的 解 即 为 原 方 程 (3.1) 的 解. 方 程 (3.6) 和 (3.7) 的 求 解 是 平 庸 的, (3.6) 可 用 所 谓 向 前 代 入 法 求 解, 即 y 1 = b 1 α 11 y i = 1 α ii 而 (3.7) 可 用 向 后 代 入 法 求 解, [ ] i 1 b i α ij y i j=1 i = 2, 3,, n (3.8) x n = y n β nn x i = 1 β ii [ y i n j=i+1 β ij x j ] i = n 1, n 2,, 2 (3.9) 上 述 计 算 是 直 接 了 当 的, 因 此, 只 要 有 了 矩 阵 A 的 LU 分 解, 对 于 任 一 B, 我 们 只 需 按 (3.8) 和 (3.9) 作 简 单 计 算 便 可 求 得 其 解. 现 在 的 问 题 是 要 找 出 矩 阵 A 的 LU 分 解, 为 此, 我 们 写 出 方 程 (3.2) 的 分 量 形 式 α i1 β 1j + α i2 β 2j + + α ii β ij = a ij 当 i < j α i1 β 1j + α i2 β 2j + + α ii β jj = a ij 当 i = j α i1 β 1j + α i2 β 2j + + α ij β jj = a ij 当 i > j (3.10)

96 第 三 章 数 值 线 性 代 数 上 式 共 有 n 2 个 方 程, 而 有 n 2 + n 个 末 知 数, 由 于 末 知 数 的 数 目 大 于 方 程 的 数 目, 我 们 可 以 任 意 指 定 n 个 条 件, 然 后 求 解 这 组 方 程. 如 果 指 定 α ii = 1 i = 1, 2,, n (3.11) 则 方 程 (3.10) 可 以 十 分 方 便 的 求 出. 其 算 法 通 常 称 为 Crout 算 法, 可 表 述 为 : 对 每 一 个 j = 1, 2, 3,, n, 作 如 下 两 步 运 算 : 1. 对 i = 1, 2,, j, 利 用 (3.10) 的 一, 二 两 式 及 (3.11) 求 解 β ij, 即 β 1j = a 1j i 1 β ij = a ij α ik β kj i = 2, 3,, j (3.12) 2. 对 i = j + 1, j + 2,, n, 利 用 (3.10) 的 第 三 式 求 解 α ij, 即 k=1 α i1 = 1 a i1 β 11 [ ] α ij = 1 j 1 a ij α ik β kj β jj k=1 请 读 者 用 铅 笔 和 纸 按 照 上 面 的 算 法 做 几 步, 以 验 证 : 方 程 (3.12) 和 (3.13) 右 边 的 诸 α, β 在 需 要 时 已 经 算 出. i = 2, 3,, j (3.13) 每 一 个 a ij 只 使 用 一 次 且 用 过 后 不 再 需 要, 也 就 是 说, α ij 或 β ij 可 以 取 代 a ij 以 节 约 存 储 空 间. 当 完 成 LU 分 解 之 后, 矩 阵 A 变 为 如 下 形 式 : β 11 β 12 β 1n α 21 β 22 β 2n... α n1 α n2 β nn (3.14) 在 描 述 Crout 算 法 时, 我 们 有 意 回 避 了 选 主 元 的 问 题. 这 并 不 意 味 着 主 元 的 选 取 不 重 要, 而 是 为 了 表 述 清 楚. 因 为 这 是 本 讲 义 中 很 少 的 几 个 给 出 详 细 描 述 的 算 法 之 一. 在 Crout 算 法 中, 只 选 列 主 元, 因 为 这 样 做 并 不 会 改 变 原 方 程 组, 而 仅 仅 是 交 换 方 程 而 已. 因 此, 选 列 主 元 后, 我 们 得 到 的 实 际 上 是 A 的 进 行 了 某 些 行 交 换 之 后 的 矩 阵 的 LU 分 解. 练 习 请 证 明, 在 LU 分 解 下, 矩 阵 A 的 行 列 式 由 下 式 给 出 det(a) = Π n j=1β jj 如 何 利 用 LU 分 解 计 算 矩 阵 A 的 逆 矩 阵? 请 给 出 关 键 程 序 段

3.3 三 对 角 方 程 组 的 求 解 97 3.3 三 对 角 方 程 组 的 求 解 前 面 两 节 的 方 法 可 以 解 决 任 何 线 性 代 数 方 程 组 的 求 解 问 题, 但 在 实 际 工 作 中 常 常 遇 到 一 些 特 殊 形 式 的 方 程 组, 这 些 方 程 组 当 然 可 以 利 用 前 面 的 一 般 方 法 求 解, 但 如 果 我 们 充 分 利 用 它 们 的 特 殊 性, 则 可 以 更 快 地 得 到 结 果, 或 者 在 同 样 的 计 算 条 件 下 求 解 更 大 的 问 题. 三 对 角 方 程 组 是 最 常 见 的 特 殊 形 式 的 方 程 组 之 一, 它 在 后 面 将 要 讲 到 的 微 分 方 程 求 解 问 题, 在 固 体 物 理 的 紧 束 缚 近 似 方 程 中 均 会 出 现, 因 此 我 们 在 此 给 出 其 求 解 方 法. 三 对 角 方 程 组 是 指 由 下 式 给 出 的 方 程 组 b 1 1 0 a 2 b 2 2 a n 1 b n 1 n 1 u 1 u 2 u n 1 = r 1 r 2 r n 1 (3.15) 0 a n b n u n r n 对 上 面 方 程 利 用 高 斯 消 去 法 求 解, 就 可 以 得 到 所 谓 的 追 赶 法, 描 述 如 下, 1. 令 u 1 = r 1 /b 1, γ 1 = 0, 对 j = 2, 3,, n, 作 运 算 γ j = j 1 b j 1 a j 1 γ j 1 u j r j a j u j 1 b j a j γ j (3.16) 2. 对 j = n 1, n 2,, 1, 作 运 算 u j u j γ j+1 u j+1 (3.17) 练 习 试 证 明 上 面 的 算 法 确 实 给 出 (3.15) 的 解 在 这 一 算 法 中, 我 们 没 有 施 行 选 主 元 的 运 算, 因 为 主 元 的 选 取 将 破 坏 原 方 程 的 结 构, 而 原 方 程 的 特 殊 结 构 正 是 我 们 构 造 上 述 算 法 的 基 础, 在 大 部 分 实 际 问 题 中, 三 对 角 方 程 组 的 对 角 线 元 素 本 身 已 经 是 主 元. 因 此, 这 一 缺 陷 对 大 部 分 应 用 不 会 有 影 响, 如 果 在 某 一 问 题 的 求 解 中 上 述 方 法 失 败, 则 建 议 改 用 LU 分 解 方 法, 全 主 元 消 去 法 可 作 为 最 后 的 选 择.

98 第 三 章 数 值 线 性 代 数 3.4 实 对 称 矩 阵 的 本 征 值 和 本 征 向 量 计 算 矩 阵 本 征 值 问 题 的 最 佳 办 法 是, 首 先, 把 矩 阵 约 化 为 一 简 单 形 式, 然 后 用 能 够 保 持 这 一 简 单 形 式 的 叠 代 方 法 计 算. 常 用 的 约 化 方 法 有 Givens 方 法 和 Householder 方 法. 常 用 的 叠 代 方 法 有 QR 方 法 和 QL 方 法 等. 这 一 节 我 们 介 绍 Householder 方 法 和 QL 方 法. 本 节 给 出 的 程 序 均 取 自 Eispak, 这 是 一 个 经 过 多 年 考 验 的 软 件 包. 3.4.1 Householder 方 法 Householder 方 法 通 过 n 2 步 正 交 变 换 把 一 n n 实 对 称 矩 阵 A 约 化 为 三 对 角 形 式, 即 除 了 主 对 角 线 和 次 对 角 线 外 的 元 素 均 为 0. 这 一 变 换 的 最 基 本 的 部 分 是 Householder 矩 阵 P, 它 具 有 下 面 的 形 式 P = 1 2w w T (3.18) 这 里 w 为 一 实 矢 量 且 满 足 w 2 w T w = 1. 矩 阵 P 是 正 交 的, 这 可 以 简 单 证 明 如 下 P 2 = (1 2w w T ) (1 2w w T ) = 1 4w w T + 4w (w T w) w T = 1 因 此 P = P 1. 由 (3.18) 可 知 P T = P, 所 以 P 1 = P T 即 P 为 一 正 交 矩 阵. 把 P 写 为 P = 1 u ut H 此 处 H 1 2 u 2, u 为 一 任 意 非 零 实 矢 量. 如 果 x 是 由 A 的 第 一 列 构 成 的 矢 量, 选 择 (3.19) u = x x e 1 (3.20) 这 里 e 1 = [1, 0, 0,, 0] T 为 一 单 位 矢 量, 正 负 号 的 选 择 在 后 面 给 出. 则 P x = x u H (x x e 1 )T x = x 2u ( x 2 x x 1 ) 2 x 2 2 x x 1 = x u = ± x e 1 (3.21) 这 一 结 果 证 明, 当 把 P 作 用 在 定 义 P 的 给 定 矢 量 x 上 时, 将 把 x 的 除 第 一 个 元 素 外 的 所 有 元 素 变 为 0.

3.4 实 对 称 矩 阵 的 本 征 值 和 本 征 向 量 99 为 了 把 实 对 称 矩 阵 A 变 换 为 三 对 角 形 式, 我 们 选 择 构 成 第 一 个 Householder 矩 阵 的 矢 量 x 为 A 的 第 一 列 的 后 n 1 个 元 素, 即 取 x = [0, a 21, a 31,, a n1 ] T (3.22) 于 是 P 1 具 有 形 式 P 1 = 1 0 0 0 0 0. P [n 1] 1 0 (3.23) 这 里 P [n 1] 1 为 一 (n 1) (n 1) 维 的 Householder 矩 阵. 用 P 对 A 进 行 变 换, 得 到 a 11 k 0 0 k A = P 1 A P = 0 (3.24). A [n 1] 0 式 中 k 为 (3.22) 给 出 的 矢 量 x 的 模 的 正 值 或 负 值, A [n 1] 为 一 (n 1) (n 1) 维 实 对 称 矩 阵. 现 在, 选 择 构 成 第 二 个 Householder 矩 阵 的 矢 量 x 为 A [n 1] 的 第 一 列 的 后 n 2 个 元 素, 于 是 P 1 具 有 形 式 1 0 0 0 0 1 0 0 P 2 = 0 0.. P [n 2] 2 0 0 (3.25) 左 上 角 的 单 位 矩 阵 保 证 了 第 一 步 所 得 到 的 三 对 角 形 式 不 会 在 这 一 步 的 变 换 中 被 改 变. 用 P 2 对 A 进 行 变 换 将 产 生 第 二 个 三 对 角 输 出. 显 然, 经 过 n 2 步 这 样 的 变 换, 我 们 将 得 到 一 个 三 对 角 矩 阵. 于 是 实 际 计 算 P A P 时, 并 不 需 要 做 两 次 矩 阵 乘 法, 而 用 下 面 的 技 巧, 计 算 矢 量 p A u H A P = A (1 u ) ut = A p u T H P A P = A p u T u p T + 2Ku u T (3.26)

100 第 三 章 数 值 线 性 代 数 这 里 K 由 下 式 定 义 为 记 则 K = ut p 2H (3.27) q p Ku (3.28) P A P = A q u T u q T (3.29) 这 是 实 际 使 用 的 计 算 公 式. 下 面 将 要 给 出 的 程 序 使 用 了 与 上 面 的 描 述 稍 有 不 同 的 次 序, 即 从 A 的 第 n 列 开 始 计 算. 用 到 的 公 式 列 出 如 下, 读 者 应 能 根 据 前 面 的 介 绍 读 懂 每 一 步 的 内 容. 在 第 m 步, (m = 1, 2,, n 2), u 具 有 下 述 形 式 u = [a i1, a i2,, a ii 1, ± σ, 0,, 0] (3.30) 这 里 i n m + 1 = n, n 1,, 3 (3.31) σ = (a i1 ) 2 + (a i2 ) 2 + + (a ii 1 ) 2 (3.32) 在 (3.30) 中, 我 们 选 择 σ 的 符 号 与 a ii 1 的 符 号 一 致 以 减 小 舍 入 误 差. 各 个 变 量 以 下 面 的 次 序 计 算, σ, u, H, p, K, q, A. 在 第 m 步, A 对 于 其 后 面 的 m 1 行 和 列 是 三 角 的. 如 果 最 终 的 三 对 角 矩 阵 的 本 征 矢 量 可 以 求 得, 则 A 的 本 征 矢 量 可 以 通 过 作 用 下 面 的 变 换 矩 阵 而 得 到 Q = P 1 P 2 P n 2 (3.33) 如 果 在 计 算 的 某 一 步 x 的 模 为 0, 则 这 一 步 变 换 无 需 进 行, 为 此, 可 引 入 如 下 判 据, 定 义 i 1 ϵ = a ik (3.34) k=1 如 果 在 机 器 精 度 级 ϵ = 0, 则 跳 过 这 一 次 变 换, 否 则, 把 a ik 换 为 a ik /ϵ, 并 利 用 新 的 a ik 进 行 变 换, 因 为 Householder 变 换 只 与 元 素 的 相 对 大 小 有 关. 3.4.2 QL 算 法 QL 算 法 的 基 本 思 想 是, 任 何 实 矩 阵 可 以 分 解 为 A = Q L (3.35)

3.4 实 对 称 矩 阵 的 本 征 值 和 本 征 向 量 101 其 中 Q 为 一 正 交 矩 阵, 而 L 是 一 下 三 角 矩 阵. 现 在 把 上 式 中 前 后 两 项 互 换 相 乘, 则 有 A = L Q (3.36) 方 程 (3.35) 意 味 着 L = Q T A, 于 是 A = Q T A Q (3.37) 即 A 是 A 的 一 个 正 交 变 换. 对 于 一 般 实 矩 阵, 可 以 证 明, 如 果 反 复 进 行 上 述 变 换, 则 A 将 依 不 同 情 况 最 终 收 敛 于 下 面 的 形 式 : (i), 如 果 A 的 本 征 值 的 绝 对 值 λ i 各 不 相 同, 则 A 收 敛 于 一 下 三 角 矩 阵, 其 本 征 值 按 绝 对 值 大 小 沿 对 角 线 排 列. (ii), 如 果 A 的 某 一 本 征 值 的 绝 对 值 λ i 具 有 简 并 度 p, 则 除 了 一 个 p 阶 的 位 于 对 角 位 置 的 方 阵 外, A 收 敛 于 一 下 三 角 矩 阵, 且 对 角 方 阵 的 本 征 值 趋 于 λ i. 这 一 定 理 的 证 明 较 繁, 这 里 不 亦 给 出. 对 于 实 对 称 矩 阵, 则 A 收 敛 于 一 对 角 矩 阵 及 代 表 相 同 本 征 值 的 对 角 块. 上 三 角 元 素 趋 于 零 的 速 度 为 a (s) ij ( ) s λi 这 里 上 标 s 代 表 叠 代 次 数. 尽 管 λ i < λ j, 但 当 λ i 与 λ j 很 接 近 时, 收 敛 将 是 很 慢 的. 为 了 解 决 这 一 问 题, 可 采 用 移 位 叠 代 的 方 法. 我 们 不 在 此 讨 论 这 种 方 法. 针 对 对 称 矩 阵, 可 以 采 用 隐 式 位 移 叠 代 方 法. 关 于 这 些 方 法 的 介 绍, 请 参 看 J. H. Wilkinson and C. Reinsh Linear Algebra 一 书. λ j 物 理 中 常 见 的 另 一 种 矩 阵 是 厄 米 矩 阵, 这 在 量 子 力 学 问 题 中 经 常 出 现. 如 果 C 为 一 厄 米 矩 阵, C = A + i B, 则 显 然 有, A T = A, B T = B, 因 此, 矩 阵 C 的 本 征 值 问 题 可 以 转 化 为 一 个 实 对 称 矩 阵 的 问 题. C 的 本 征 值 问 题 是 (A + i B)(u + i v) = λ(u + i v) (3.38) 代 替 上 面 的 方 程, 我 们 考 虑 下 面 的 本 征 值 问 题 [ ] [ A B u ] [ u ] B A v = λ v (3.39) 这 是 一 个 实 对 称 矩 阵 的 本 征 值 问 题, 若 C 的 本 征 值 为 λ 1, λ 2,, λ n, 本 征 向 量 为 u + i v, 则 方 程 (3.39) 的 本 征 值 为 λ 1, λ 1, λ 2, λ 2,, λ n, λ n, 本 征 向 量 为 [u, v] T 和 [ v, u] T, 因 此, 由 上 述 对 应 关 系 及 我 们 已 经 知 道 的 实 对 称 矩 阵 问 题 的 解 法, 就 可 以 求 得 厄 米 矩 阵 的 本 征 值 问 题. 练 习 请 证 明 前 段 的 论 断

102 第 三 章 数 值 线 性 代 数

第 四 章 电 磁 场 的 计 算 4.1 Maxwell 方 程, 边 值 问 题 电 磁 场 的 分 析 和 计 算 在 物 理 和 工 程 应 用 中 都 占 有 重 要 的 地 位. 它 的 基 础 是 Maxwell 方 程 组. 从 数 学 上 看, 电 磁 场 的 分 析 和 计 算 问 题 归 结 为 偏 微 分 方 程 边 值 问 题 的 求 解. 具 体 的 计 算 方 法 可 以 分 为 两 大 类, 一 类 是 解 析 方 法, 另 一 种 是 数 值 方 法. 解 析 方 法 就 是 把 要 求 的 解 表 示 成 解 析 形 式 或 无 穷 级 数, 它 只 适 用 于 边 界 形 状 比 较 简 单 ( 如 球, 柱 等 ) 的 问 题, 应 用 范 围 相 当 有 限. 这 一 方 法 在 数 学 物 理 方 法 课 程 中 已 经 做 了 详 细 讨 论. 数 值 方 法 是 解 决 实 际 问 题 最 有 效 最 普 遍 的 方 法, 随 着 电 子 计 算 机 的 高 速 发 展, 它 已 成 为 工 程 中 的 一 种 常 规 分 析 方 法. 这 一 章 将 以 静 电 场 的 计 算 为 例, 简 单 介 绍 有 限 差 分 法 和 有 限 元 方 法, 这 是 目 前 应 用 最 多 的 两 种 方 法. 电 磁 场 计 算 的 理 论 基 础 是 Maxwell 方 程, 它 的 微 分 形 式 为 : E = B t D = ρ H = J + D t B = 0 (4.1) 式 中, E 为 电 场 强 度, D 为 电 位 移 矢 量, B 为 磁 感 应 强 度, H 为 磁 场 强 度, ρ 和 J 分 别 为 电 荷 密 度 和 电 流 密 度. 对 于 各 向 同 性 的 线 性 介 质, 上 式 中 各 量 之 间 满 足 下 面 的 本 构 方 程 D = εe B = µh J = σe (4.2) 其 中 ε, µ, σ 分 别 为 介 质 的 介 电 常 数, 导 磁 系 数 和 电 导 率. 在 两 种 介 质 的 分 界 面 上, 介 质 的 特 性 系 数 如 ε, µ, σ 将 发 生 突 变. 在 这 种 情 况 下 将 出 现 面 电 荷, 面 电 流 的 分 布, 从 而 使 场 矢

104 第 四 章 电 磁 场 的 计 算 量 也 发 生 突 变, 这 种 突 变 由 下 面 的 联 接 条 件 给 出 n (D 2 D 1 ) = ρ s n (E 2 E 1 ) = 0 n (B 2 B 1 ) = 0 n (H 2 H 1 ) = J s n (J 2 J 1 ) = dρ s dt (4.3) 式 中 n 为 界 面 上 从 介 质 1 指 向 介 质 2 的 单 位 矢 量, ρ s 为 自 由 面 电 荷 密 度, J s 为 自 由 面 电 流 密 度. 在 静 电 场 的 情 况 下, Maxwell 方 程 组 简 化 为 E = 0 E = ρ ε 由 于 (4.4) 的 第 一 式, 可 以 引 进 一 标 量 势 函 数 ϕ. 令 (4.4) E = ϕ (4.5) 则 (4.4) 的 第 一 式 自 动 满 足, 代 入 (4.4) 的 第 二 式 可 得 ϕ 满 足 的 偏 微 分 方 程 为 这 时 介 质 分 界 面 上 的 联 接 条 件 为 2 ϕ = ρ ε ϕ 1 = ϕ 2 ϕ 1 ε 1 n ε ϕ 2 2 n = ρ s (4.6) (4.7) 对 于 静 电 场, 通 常 考 虑 下 面 三 种 边 界 条 件 : 1. 给 定 整 个 场 域 边 界 Γ 上 的 电 势 值 ϕ Γ. 这 通 常 称 为 第 一 类 边 值 问 题 或 Dirihlet 边 值 问 题. 2. 给 定 边 界 Γ 上 电 势 的 法 向 导 数 问 题. ϕ n Γ, 这 通 常 称 为 第 二 类 边 值 问 题 或 Neumann 边 值 3. 在 边 界 的 一 部 分 给 定 电 势 值 ϕ Γ1, 另 一 部 分 边 界 上 给 定 电 势 的 法 向 导 数 常 称 为 混 合 边 值 问 题. ϕ n Γ 2. 这 通 可 以 证 明, 静 电 问 题 的 上 述 三 种 边 值 问 题 的 解 是 存 在 而 且 唯 一 的 ( 例 如 见 D. J. Jakson Classial Eletrodynamis John Wiley & Sons, In., 1975, P42)

4.2 差 分 和 差 商 105 4.2 差 分 和 差 商 这 一 节 简 单 复 习 一 下 差 分 和 差 商 的 概 念. 这 些 内 容 在 前 面 的 章 节 中 曾 分 散 地 出 现 过, 这 里 则 综 合 起 来 理 一 下. 设 有 函 数 f(x), 若 其 宗 量 的 增 量 为 x = h, 则 对 应 函 数 的 增 量 为 f(x) = f(x + h) f(x) (4.8) 称 为 函 数 f(x) 在 x 点 的 一 阶 向 前 差 分, 或 简 称 为 差 分. 差 分 也 可 定 义 为 f(x) = f(x) f(x h) (4.9) 称 为 函 数 f(x) 在 x 点 的 一 阶 向 后 差 分 及 ( f(x) = f x + h ) f 2 ( x h ) 2 (4.10) 称 为 函 数 f(x) 在 x 点 的 一 阶 中 心 差 分. 一 阶 差 分 除 以 增 量 h 称 为 一 阶 差 商, 根 据 不 同 的 差 分 定 义, 我 们 有 一 阶 向 前 差 商 : f f(x + h) f(x) = x h 一 阶 向 后 差 商 : f f(x) f(x h) = x h 一 阶 中 心 差 商 : f f(x + h/2) f(x h/2) = x h (4.11) df 当 h 趋 向 于 零 时, 上 述 三 种 差 商 均 趋 于 微 商 因 此, 一 阶 差 商 在 实 际 计 算 中 常 常 做 为 一 dx 阶 微 商 的 近 似 值. 下 面 我 们 来 分 析 一 下 用 差 商 代 替 微 商 的 近 似 程 度. 由 Taylor 展 开 式 f(x + h) = f(x) + hf (x) + h2 2! f (x) + h3 3! f (x) + f(x h) = f(x) hf (x) + h2 2! f (x) h3 3! f (x) + 可 以 得 到 : f(x + h) f(x) f (x) h = h 2! f (x) + = O(h) f(x) f(x h) f (x) h = h 2! f (x) + = O(h) f(x + h/2) f(x h/2) f (x) = h2 h 3! f (x) + = O(h 2 ) (4.12) 由 上 式 可 知, 中 心 差 商 的 截 断 误 差 与 h 2 同 阶, 比 向 前 差 商 和 向 后 差 商 高 一 阶, 因 而 精 度 最 高. 同 一 阶 差 商 类 似, 我 们 还 可 定 义 二 阶 差 商 和 高 阶 差 商. 例 如 二 阶 中 心 差 商 定 义 为 2 f(x) h 2 f(x + h/2) f(x h/2) h 2 = f(x + h) 2f(x) + f(x h) h 2 (4.13) 容 易 验 证 2 f(x) = f (x) + O(h 2 ) h 2 用 有 限 差 分 方 法 求 微 分 方 程 的 解 的 过 程 就 是 用 有 限 差 分 代 替 微 分, 从 而 把 微 分 方 程 化 为 差 分 方 程, 然 后 对 所 得 差 分 方 程 进 行 数 值 求 解.

106 第 四 章 电 磁 场 的 计 算 4.3 二 维 Possion 方 程 的 五 点 差 分 格 式 这 一 节 以 二 维 Possion 方 程 的 第 一 类 边 值 问 题 为 例 来 具 体 说 明 有 限 差 分 方 法 的 原 理 和 实 现 方 法. 定 解 问 题 为 2 ϕ = ρ ε (4.14) ϕ Γ = f 对 于 平 面 问 题, 在 直 角 坐 标 系 中, (4.14) 中 的 第 一 个 式 子 为 2 ϕ x + 2 ϕ 2 y = ρ 2 ε (4.15) 对 于 具 有 旋 转 对 称 的 静 电 问 题, 可 以 采 用 柱 坐 标 系 (z, r, θ), 由 于 对 称 性, 电 势 与 θ 无 关, 因 此 Posion 方 程 成 为 2 ϕ z + 2 ϕ 2 r + 1 ϕ 2 r r = ρ (4.16) ε 三 维 问 题 退 化 成 一 个 二 维 问 题. 如 果 引 进 一 个 参 量 α, 则 可 把 (4.15) 和 (4.16) 写 成 下 面 的 统 一 形 式, 从 而 可 进 行 统 一 处 理. 2 ϕ z + 2 ϕ 2 r + α ϕ 2 r r = ρ ε (4.17) 当 α = 1 时, 对 应 于 旋 转 对 称 的 场, 此 时 (r, z) 是 圆 柱 坐 标 系 中 的 径 向 和 轴 向 坐 标 ; 当 α = 0 时, 相 应 于 二 维 平 面 问 题, 此 时 (r, z) 对 应 于 直 角 坐 标 系 中 的 (y, x). 假 定 我 们 的 求 解 区 域 如 图 4.1, 则 我 们 可 用 两 族 平 行 于 坐 标 轴 的 直 线 对 区 域 进 行 划 分, 如 图 4.1 所 示. 对 于 上 述 划 分 的 每 一 个 网 格 点, 可 以 建 立 其 差 分 方 程, 为 具 体 起 见, 考 虑 图 4.2 所 示 一 个 网 格 点 ( 记 为 0) 及 其 近 邻 点 ( 记 为 1,2,3,4), 则 点 1,2,3,4 的 电 势 值 可 以 用 0 点 的 电 势 值 表 示 出 来, 对 1,2,3,4 点 的 电 势 作 Taylor 展 开, 有 由 上 式 可 解 得 : ( ) ϕ ϕ 1 = ϕ 0 h 1 z ( ) ϕ ϕ 2 = ϕ 0 + h 2 z ( ) ϕ ϕ 3 = ϕ 0 h 3 r ( ) ϕ ϕ 4 = ϕ 0 + h 4 r ( ) 2 ϕ z 2 ( ) 2 ϕ 0 r 2 ( ) α ϕ r r 0 0 0 0 0 0 + h2 1 2 + h2 2 2 + h2 3 2 + h2 4 2 ( ) 2 ϕ z 2 ( ) 2 ϕ z 2 ( ) 2 ϕ r 2 ( ) 2 ϕ r 2 0 0 0 0 + + + = 2 h 2ϕ 1 + h 1 ϕ 2 h 1 h 2 (h 1 + h 2 ) 2ϕ 0 h 1 h 2 + O(h 2 ) = 2 h 4ϕ 3 + h 3 ϕ 4 h 3 h 4 (h 3 + h 4 ) 2ϕ 0 h 3 h 4 + O(h 2 ) = + (4.18) α r 0 (h 3 + h 4 ) (ϕ 4 ϕ 3 ) + O(h 2 ) (4.19)

4.3 二 维 POSSION 方 程 的 五 点 差 分 格 式 107 r z 图 4.1: 二 维 空 间 的 网 格 划 分 在 得 出 上 式 时, 我 们 假 定 h 1, h 2, h 3, h 4 为 同 阶 小 量, 且 任 二 者 之 差 为 高 一 阶 的 小 量, 其 阶 统 一 记 为 O(h). 代 入 Possion 方 程, 并 略 去 O(h 2 ) 以 下 的 小 量, 我 们 得 到 2 h 2ϕ 1 + h 1 ϕ 2 h 1 h 2 (h 1 + h 2 ) + 2 h 4ϕ 3 + h 3 ϕ 4 h 3 h 4 (h 3 + h 4 ) 2ϕ 0 2ϕ 0 α + h 1 h 2 h 3 h 4 r 0 (h 3 + h 4 ) (ϕ 4 ϕ 3 ) = ρ 0 ε 整 理 后 得 其 中 C 1 ϕ 1 + C 2 ϕ 2 + C 3 ϕ 3 + C 4 ϕ 4 C 0 ϕ 0 = ρ 0 ε C 1 = C 2 = C 3 = C 4 = 2 h 1 (h 1 + h 2 ) 2 h 2 (h 1 + h 2 ) 2 h 3 (h 3 + h 4 ) 2 h 4 (h 3 + h 4 ) + α r 0 (h 3 + h 4 ) α r 0 (h 3 + h 4 ) C 0 = C 1 + C 2 + C 3 + C 4 = 2 h 1 h 2 + 2 h 3 h 4 (4.20) (4.21)

r 108 第 四 章 电 磁 场 的 计 算 4 h 4 1 0 h 2 2 h 1 h 3 3 图 4.2: z 式 (4.20) 与 (4.21) 一 起 称 为 Possion 方 程 的 五 点 差 分 格 式. 对 于 旋 转 对 称 场, 在 原 点 (r 0 = 0), 方 程 (4.20) 不 成 立. 注 意 到 如 果 电 荷 密 度 在 原 点 ϕ 没 有 奇 异 性, 则 在 r = 0 时 趋 于 0, 因 而 当 r 0 时, 有 r ( ) 1 ϕ 2 lim r 0 r r = ϕ r 2 因 此, 在 r = 0 附 近, 旋 转 对 称 场 的 Possion 方 程 为 0 在 r = 0 点, ( 见 图 4.3) 2 ϕ z 2 + 2 2 ϕ r 2 = ρ ε ( ) 2 ϕ (4.22) r 2 = 2 ϕ 0 h 2 4 2 ϕ 4 h 2 0 4 从 而 得 到 轴 上 的 与 式 (4.20) 形 式 相 同 的 差 分 公 式, 但 其 系 数 为 2 C 1 = h 1 (h 1 + h 2 ) 2 C 2 = h 2 (h 1 + h 2 ) C 3 = 0 (4.23) C 4 = 4 h 2 4 C 0 = C 1 + C 2 + C 3 + C 4 = 2 h 1 h 2 + 4 h 2 4

4.4 差 分 方 程 的 求 解 109 r 4 h 4 1 h 1 0 h 2 2 图 4.3: z 对 于 求 解 区 域 的 每 个 内 节 点 ( 指 不 在 区 域 边 界 上 的 点 ), 都 可 建 立 类 似 的 差 分 方 程, 方 程 中 的 C 0, C 1, C 2, C 3, C 4 是 决 定 于 步 长 的 已 知 函 数, 而 各 个 ϕ 0, ϕ 1, ϕ 2, ϕ 3, ϕ 4 是 待 求 的 未 知 量. 每 个 内 节 点 有 一 个 方 程, 一 个 未 知 量, 因 此 未 知 量 的 数 目 等 于 方 程 的 数 目. 邻 近 边 界 的 节 点 的 差 分 方 程 中, 包 含 有 边 界 点 的 电 势 值, 这 是 已 知 的 边 界 条 件. 这 样, 如 果 有 n 个 内 节 点, 我 们 就 建 立 了 n 个 线 性 代 数 方 程, 可 以 一 般 地 写 为 A ϕ = B (4.24) 通 过 求 解 上 面 的 方 程 便 可 得 到 所 需 的 各 ϕ 值. 这 一 节 我 们 建 立 了 二 维 问 题 的 五 点 差 分 格 式, 这 一 方 法 很 容 易 推 广 到 三 维, 其 差 分 格 式 称 为 七 点 差 分 格 式. 同 样 的 方 法 也 可 用 来 处 理 一 维 问 题, 为 三 点 差 分 格 式. 4.4 差 分 方 程 的 求 解 在 上 一 节, 我 们 得 到 了 Possion 方 程 的 差 分 方 程, 这 一 节 讨 论 其 解 法. 方 程 (4.24) 是 一 线 性 代 数 方 程 组, 原 则 上 可 以 用 前 面 介 绍 过 的 求 解 线 性 代 数 方 程 组 的 一 般 方 法 求 解, 但 是, 由 于 此 方 程 的 一 些 特 殊 的 性 质, 一 般 解 法 将 会 遇 到 困 难. 为 此, 我 们 先 分 析 一 下 方 程 (4.24) 的 系 数 矩 阵 A, 它 具 有 下 面 的 性 质 : 1. A 是 一 个 稀 疏 矩 阵, 事 实 上, A 的 每 一 行 或 每 一 列 的 非 零 元 素 数 目 最 多 只 有 五 个. 2. A 是 一 个 高 阶 矩 阵, 由 于 每 个 内 点 有 一 个 方 程, 因 此 A 的 阶 数 为 为 内 点 的 数 目, 如 果 内 点 的 数 目 为 n, 则 A 为 一 n n 矩 阵, 一 般 在 计 算 中 为 了 提 高 精 度, 网 格 分 得 较 细, 内 点 数 目 较 多, 因 而 A 的 阶 数 也 就 较 高.

110 第 四 章 电 磁 场 的 计 算 由 于 A 的 上 述 性 质, 用 通 常 的 解 法 在 时 间 和 存 储 空 间 都 是 十 分 浪 费 的, 更 严 重 的 是, 由 于 A 的 阶 数 较 高, n n 个 元 素 可 能 根 本 无 法 放 入 内 存. 根 据 A 的 性 质, 一 般 用 迭 代 法 求 解. 下 面 介 绍 三 种 常 用 的 迭 代 方 法 4.4.1 简 单 迭 代 法 Jaobi 方 法 直 接 利 用 差 分 方 程 (4.20), 把 其 改 写 为 ϕ 0 = C 1 C 0 ϕ 1 + C 2 C 0 ϕ 2 + C 3 C 0 ϕ 3 + C 4 C 0 ϕ 4 ρ 0 C 0 ε (4.25) 上 式 就 可 作 为 一 迭 代 格 式, 为 明 确 起 见, 把 迭 代 格 式 写 为 ϕ (k+1) 0 = C 1 C 0 ϕ (k) 1 + C 2 C 0 ϕ (k) 2 + C 3 C 0 ϕ (k) 3 + C 4 C 0 ϕ (k) 4 ρ 0 C 0 ε (4.26) 给 定 初 始 的 ϕ (0), 利 用 上 式 对 每 一 个 内 点 进 行 迭 代, 直 到 迭 代 前 后 的 值 小 于 某 一 给 定 的 的 误 差 限 为 止. 可 以 证 明, 不 论 ϕ (0) 如 何 选 取, 当 k 时, ϕ (k) 必 收 敛 于 差 分 方 程 的 解. 由 式 (4.26) 可 知, 计 算 第 k + 1 次 的 某 一 点 的 电 势 值 时 所 用 的 其 邻 近 点 的 电 势 是 第 k 次 迭 代 的 结 果, 因 此 只 有 当 第 k 次 的 n 个 内 点 计 算 完 后, 才 可 开 始 第 k + 1 次 的 计 算, 这 样, 就 必 须 为 每 个 内 点 分 配 两 个 存 储 单 元, 以 储 存 相 邻 两 次 迭 代 的 电 势 值. 另 外, 实 际 计 算 表 明, 这 种 迭 代 方 法 的 收 敛 速 度 也 很 慢. 4.4.2 逐 次 迭 代 法 Gauss Seidal 迭 代 方 法 这 是 对 简 单 迭 代 的 一 种 直 接 的 改 进, 在 迭 代 中, 如 果 对 某 一 格 点 作 第 k + 1 次 迭 代 时, 如 果 相 邻 格 点 中 部 分 点 的 第 k + 1 次 电 势 值 已 算 出, 则 利 用 新 的 数 值. 对 于 如 图 4.1 所 示 的 网 格, 如 果 在 z 方 向 的 计 算 顺 序 是 从 左 到 右, 在 r 方 向 的 计 算 顺 序 是 从 下 到 上, 则 Gauss Seidal 迭 代 公 式 为 ϕ (k+1) 0 = C 1 C 0 ϕ (k+1) 1 + C 2 C 0 ϕ (k) 2 + C 3 C 0 ϕ (k+1) 3 + C 4 C 0 ϕ (k) 4 ρ 0 C 0 ε (4.27) 逐 次 迭 代 法 的 收 敛 速 度 比 简 单 迭 代 法 要 快, 同 时 可 以 节 省 计 算 机 存 储 量, 因 为 每 个 格 点 只 需 存 储 一 套 电 势 值. 4.4.3 逐 次 超 松 弛 迭 代 法 (Suessive Over-Relaxation) 逐 次 超 松 弛 迭 代 法 是 加 快 收 敛 的 一 种 方 法, 它 介 于 前 述 两 种 方 法 之 间. 具 体 作 法 是, 把 第 k + 1 次 Gauss Seidal 迭 代 的 结 果 与 第 k 次 迭 代 的 结 果 进 行 加 权 平 均 作 为 新 的 第 k + 1 次 的 迭 代 值. 记 k + 1 次 Gauss Seidal 迭 代 的 结 果 为 ϕ, 则 有 ϕ 0 = C 1 C 0 ϕ (k+1) 1 + C 2 C 0 ϕ (k) 2 + C 3 C 0 ϕ (k+1) 3 + C 4 C 0 ϕ (k) 4 ρ 0 C 0 ε (4.28) ϕ (k+1) 0 = ω ϕ 0 + (1 ω)ϕ (k) 0 (4.29)

4.4 差 分 方 程 的 求 解 111 将 (4.28) 代 入 (4.29), 得 到 ϕ (k+1) 0 = (1 ω)ϕ (k) 0 + ω ( C1 ϕ (k+1) 1 + C 2 ϕ (k) 2 + C 3 ϕ (k+1) 3 + C 4 ϕ (k) 4 ρ ) 0 C 0 C 0 C 0 C 0 C 0 ε (4.30) 当 ω = 1 时, 上 式 就 成 为 Gauss Seidal 迭 代. ω 称 为 迭 代 松 弛 因 子, 又 叫 阻 尼 因 子. 可 以 证 明, 当 0 < ω < 2 时, 迭 代 (4.30) 是 收 敛 的. 当 1 < ω < 2 时, 迭 代 (4.30) 称 为 超 松 弛 迭 代, 相 应 地 ω 称 为 超 松 弛 迭 代 因 子. 迭 代 因 子 的 选 取 对 收 敛 速 度 的 影 响 很 大, 一 般 它 与 网 格 形 式, 节 点 数 目, 迭 代 次 序 等 因 素 有 关. 在 计 算 数 学 的 理 论 书 中, 对 最 佳 因 子 的 选 取 有 不 少 讨 论, 这 里 介 绍 一 种 选 取 的 方 法.( 证 明 见 南 京 大 学 数 学 系 计 算 数 学 专 业 编 偏 微 分 方 程 数 值 解 法, 科 学 出 版 社, 1979) 记 ϕ (k) i 为 第 i 个 内 节 点 第 k 次 迭 代 的 电 势 值 ( 这 里 i = 1, 2, n 代 表 n 个 内 节 点, 请 与 前 面 i = 0, 1, 2, 3, 4 代 表 一 点 及 其 近 邻 相 区 别 ), 取 相 邻 两 次 迭 代 的 误 差 的 平 均 为 ϵ (k) = 1 n ϕ (k) i ϕ (k 1) i (4.31) n 记 i=1 λ (k) = ϵ(k+1) ϵ (k) (4.32) 若 第 k 次 迭 代 所 用 的 超 松 弛 因 子 为 ω (k), 定 义 µ 2 = (λ(k) + ω (k) 1) 2 (λ (k) ω (k) ) 2 (4.33) 则 第 k + 1 次 迭 代 的 超 松 弛 因 子 为 ω (k+1) 可 取 为 ω (k+1) 2 = (1 + 1 µ 2 ) (4.34) 一 般 可 取 ω (0) 为 1.5 左 右, 利 用 上 述 过 程 不 断 改 进 ω 的 取 值, 当 ω (k+1) ω (k) 小 于 某 一 误 差 限 ( 例 如 10 2 ) 时, 就 用 所 得 的 ω 作 为 最 隹 迭 代 因 子, 进 行 计 算. 当 相 邻 两 次 迭 代 的 误 差 小 于 某 一 事 先 给 定 的 误 差 限 时, 就 可 终 止 计 算. 通 常 误 差 可 选 为 平 均 相 对 误 差 ϕ (k) 或 最 大 绝 对 误 差 n i=1 ϕ (k+1) i n i=1 ϕ(k) i { ϕ (k+1) Max i i } ϕ (k) 最 后 需 要 指 出 的 是, 为 了 达 到 较 高 的 计 算 精 度, 减 小 截 断 误 差, 就 要 减 小 步 长 h, 从 而 增 加 节 点 数, 增 大 计 算 量. 但 随 着 计 算 量 的 增 加, 舍 入 误 差 将 随 之 增 加, 因 此, 对 于 实 际 的 计 算, 并 非 网 格 分 得 越 小 越 好, 对 具 体 问 题, 应 根 据 问 题 本 身 的 特 点 和 计 算 要 求, 选 则 合 适 的 网 格. 有 限 差 分 方 法 概 念 清 楚, 方 法 简 单, 计 算 量 也 较 小. 但 对 边 界 的 处 理 不 够 灵 活, 对 于 复 杂 的 边 界 条 件, 很 难 处 理, 另 外 对 于 部 分 求 解 区 域 电 势 变 化 比 较 大 而 另 外 的 区 域 变 化 比 较 平 缓 的 问 题, 处 理 起 来 也 不 灵 活. 这 些 困 难, 在 我 们 后 面 要 讲 的 有 限 元 方 法 中 可 以 得 到 较 好 的 处 理. i

112 第 四 章 电 磁 场 的 计 算 1 2 3 4 A x 1 2 3 B 4 y 图 4.4: 4.5 变 分 方 法 复 习 为 了 给 下 一 节 的 有 限 元 方 法 作 准 备, 这 一 节 复 习 一 下 变 分 方 法. 考 虑 一 个 满 足 一 定 条 件 的 函 数 的 集 合 F : {y(x)} 和 一 个 实 数 的 集 合 R. 如 果 存 在 一 个 对 应 关 系 J, 使 得 对 于 F 中 的 每 一 个 元 素 y(x), 有 R 中 的 一 个 数 J 与 之 对 应, 则 称 J 为 函 数 y(x) 的 泛 函, 记 为 J = J[y(x)] (4.35) 我 们 来 看 一 个 泛 函 的 例 子, 如 图 4.4 所 示, 一 质 点 沿 曲 线 y = y(x) 以 初 速 度 0 从 A 降 落 到 B, 其 所 需 的 时 间 为, T = B A dt = B A ds B 1 + y v = 2 dx (4.36) A 2gy 当 A, B 固 定 时, 对 于 不 同 的 轨 道 y(x), 将 有 不 同 的 时 间 T, 因 此, T 是 轨 道 y(x) 的 泛 函, T = T [y(x)]. 对 于 泛 函 J[y(x)], 如 果 函 数 y(x) 改 变 δy(x), 则 其 对 应 的 泛 函 的 改 变 为 J = J[y(x) + δy(x)] J[y(x)] (4.37) 当 δy(x) 0 时, 式 (4.37) 的 极 限 称 为 泛 函 J[y(x)] 的 变 分, 记 为 δj. 类 似 于 函 数 的 微 分, 泛 函 的 变 分 可 写 为 δj δj = δy(x)dx (4.38) δy(x)

4.5 变 分 方 法 复 习 113 δj 其 中 称 为 泛 函 J 的 变 分 导 数, 它 既 是 y(x) 的 泛 函, 又 是 x 的 函 数. 如 果 泛 函 在 δy(x) y(x) = y 0 (x) 时 取 极 值, 则 δj = 0 (4.39) δy(x) y(x)=y0 (x) 下 面 看 几 个 例 子. 例 一 : J = y(x 0 ), 泛 函 为 x = x 0 点 上 函 数 y(x) 的 值. 为 了 计 算 变 分, 注 意 到 J 可 写 为 其 变 分 为 δj = + J = y(x 0 ) = (y(x) + δy(x))δ(x x 0 )dx + + y(x)δ(x x 0 )dx y(x)δ(x x 0 )dx = + δ(x x 0 )δy(x)dx 与 (4.38) 比 较 得 例 二 : 其 变 分 为 δy(x 0 ) δy(x) = δ(x x 0) J = b a y(x) n dx δj = b (y(x) + δy(x)) n dx b y(x) n dx = b a a a ny(x) n 1 δy(x)dx + O(δy(x) 2 ) 而 变 分 导 数 为 例 三 : 其 变 分 为 δj δy(x) = ny(x)n 1 J = b a e y(x) dx δj = 而 变 分 导 数 为 b a e (y(x)+δy(x)) dx b a e y(x) dx = b δj δy(x) = ey(x) a e y(x) δy(x)dx + O(δy(x) 2 ) 从 这 些 例 子 我 们 看 到, 泛 函 与 函 数 有 很 多 相 似 的 性 质, 有 兴 趣 更 进 一 步 了 解 泛 函 及 其 性 质 的 同 学 可 研 读 专 门 的 书 籍. 下 面 我 们 研 究 一 种 特 殊 的 泛 函 积 分 泛 函, 并 指 出 求 其 极 值 的 方 法. 这 种 泛 函 在 物 理 的 各 个 领 域 都 有 重 要 应 用. 为 了 下 面 的 应 用, 我 们 考 虑 定 义 在 多 元 函 数 空 间 上 的 积 分 泛 函 J = F ( x 1, x 2,, x n, y, y x 1, y x 2,, y x n ) dx 1 dx 2, dx n (4.40)

114 第 四 章 电 磁 场 的 计 算 这 里, y = y(x 1, x 2,, x n ) 是 一 n 元 函 数. 本 节 开 始 处 质 点 沿 不 同 路 径 的 时 间 就 是 这 种 类 型 泛 函 的 一 个 例 子. 现 在, 我 们 来 求 泛 函 (4.40) 的 极 值. 所 谓 极 值, 就 是 要 在 函 数 y 的 集 合 F 中 寻 找 一 个 特 殊 的 函 数 y, 使 得 泛 函 取 极 大 值 或 极 小 值. 这 通 常 有 两 种 方 法, 一 种 是 直 接 法, 另 一 种 是 微 分 方 程 方 法, 分 别 介 绍 如 下. 一, 直 接 法 : 在 集 合 F 中 构 造 一 个 完 备 的 函 数 集 合 {φ i (x 1, x 2,, x n )}, 一 般 这 是 一 个 无 穷 集 合, 取 其 前 N 个 函 数 展 开 y, 我 们 得 到 y = N i φ i (4.41) i=1 把 上 式 代 入 (4.40) 并 完 成 积 分, 则 泛 函 成 为 N 个 变 量 1, 2,, N 的 函 数, 而 计 算 泛 函 极 值 的 问 题 就 转 化 为 求 多 元 函 数 极 值 的 问 题. 对 于 给 定 的 N, 求 得 的 与 J 的 极 值 对 应 的 y 记 为 y N, 则 y(x 1, x 2,, x n ) = lim y N(x 1, x 2,, x n ) (4.42) N 就 趋 于 极 值 问 题 的 解. 二, 微 分 方 程 法 : 由 于 泛 函 的 极 值 由 其 变 分 为 0 给 出, 所 以 我 们 求 J 的 一 阶 变 分. 对 于 式 (4.40), δj = F n ( ) y δy + F y ( dx 1 dx 2 dx n (4.43) y x i i=1 x i )δ 若 取 δy 在 积 分 区 域 的 边 界 上 固 定 为 0, 对 上 式 分 部 积 分 得 到 δj = F n y F ( δydx 1 dx 2 dx n (4.44) y i=1 如 果 y 使 得 J 取 极 值, 则 此 y 必 使 δj = 0, δy 除 要 求 在 边 界 上 为 0 外 是 任 意 的, 因 而 必 有 F n y ( F x i y = 0 (4.45) i=1 这 一 方 程 称 为 Euler 方 程, 一 般 是 一 偏 微 分 方 程. 这 样, 泛 函 极 值 问 题 就 变 为 微 分 方 程 的 求 解 问 题. 这 一 过 程 也 可 以 反 过 来 进 行, 如 果 要 求 某 一 微 分 方 程 的 解, 而 这 一 微 分 方 程 是 某 一 泛 函 的 Euler 方 程, 我 们 就 可 以 把 微 分 方 程 的 求 解 问 题 转 化 为 泛 函 的 极 值 问 题. 对 于 本 节 开 始 处 的 问 题, 其 Euler 方 程 为 1 + y 2 2 2gyy d dx ( x i ) x i ) ) y 2gy(1 + y 2 ) = 0 注 意 到 d dx = y d dy, 上 式 可 改 写 为 1 + y 2 y 3/2 ( ) + 2y d y = 0 dy y(1 + y 2 )

4.6 有 限 元 方 法 的 理 论 基 础 115 乘 以 y 3/2 (1 + y 2 ) 3/2, 并 整 理 得 dy 2y + y dy 1 + y 2 = 0 其 解 为, x = 2 1 y y 2 + 1 aros 1 y 1 + 2 1, 2 为 二 积 分 常 数, 由 A, B 二 点 决 定, 上 式 给 出 了 所 用 时 间 最 短 的 轨 迹. 4.6 有 限 元 方 法 的 理 论 基 础 这 一 节 以 二 阶 椭 圆 型 偏 微 分 方 程 为 例, 讲 述 有 限 元 方 法 的 理 论 基 础. 考 虑 如 下 的 边 值 问 题, { 2 ϕ = f (4.46) ϕ Γ = 0 这 一 边 值 问 题 是 泛 函 F [ϕ] = 1 ( ϕ ϕ 2fϕ) dv (4.47) 2 Ω 的 Euler 方 程. 这 里 Ω 为 边 界 Γ 所 包 围 的 区 域. 求 解 边 值 问 题 (4.46) 与 (4.47) 给 出 的 泛 函 的 极 值 问 题 等 价. 因 此, 代 替 求 解 边 值 问 题 (4.46), 我 们 可 以 用 直 接 法 求 (4.47) 给 出 的 泛 函 的 极 值 问 题, 其 结 果 就 是 原 问 题 的 解. 为 了 用 直 接 法 计 算 泛 函 极 值, 就 需 要 构 造 一 组 完 备 函 数 集. 有 限 元 方 法 的 原 理 就 是 把 待 求 解 区 域 分 为 有 限 个 小 的 单 元, 在 每 个 单 元 上 构 造 插 值 函 数, 再 通 过 总 体 合 成 得 到 函 数 集 合 {φ i }, 把 待 求 的 函 数 ϕ 用 {φ i } 展 开, 用 函 数 求 极 值 的 方 法 求 出 展 开 系 数, 得 到 问 题 的 解. 下 面 以 二 维 问 题 为 例 具 体 说 明 有 限 元 方 法 的 基 本 思 路, 图 4.5 给 出 了 一 个 具 体 的 二 维 求 解 区 域 及 单 元 划 分. 在 图 中, 我 们 使 用 了 三 角 形 划 分, 这 是 实 际 计 算 中 最 常 使 用 的 分 法, 但 有 限 元 方 法 并 不 限 定 单 元 的 划 分 方 法, 使 用 别 的 分 法 也 是 可 以 的. 不 过, 下 节 我 们 将 看 到, 三 角 形 分 法 正 好 可 以 决 定 线 性 插 值 函 数, 简 单 易 行. 三 角 形 分 法 的 三 维 推 广 是 四 面 体 划 分 方 法. 假 定 我 们 把 求 解 区 域 划 分 为 m 个 单 元, 现 在 拿 出 其 中 任 一 单 元 ( 假 定 为 第 e 个 单 元 ) 进 行 分 析. 在 这 一 单 元 上, 取 一 组 插 值 函 数 {w i (p), i = 1, 2,, k}, 其 中 k 为 单 元 的 顶 点 数, 对 于 三 角 形 单 元, k = 3, p 为 单 元 中 的 坐 标. 则 单 元 e 中 的 待 求 函 数 可 写 为 k ϕ (e) (p) = a i w i (p) (4.48) i=1 这 里, w i 具 有 一 定 的 选 择 自 由 度. 在 单 元 的 k 个 顶 点 上, 其 坐 标 值 分 别 为 p 1, p 2,, p k, 设

116 第 四 章 电 磁 场 的 计 算 y 图 4.5: x 对 应 的 待 求 函 数 值 为 ϕ (e) 1, ϕ (e) 2,, ϕ (e), 于 是 有 k ϕ (e) 1 = ϕ (e) 2 = k a i w i (p 1 ) i=1 k a i w i (p 2 ) i=1 k ϕ (e) k = a i w i (p k ) i=1 (4.49) w i (p j ) 是 已 知 的, 反 解 上 式, 就 可 以 把 系 数 a i 用 待 求 函 数 ϕ 在 单 元 顶 点 ( 网 格 节 点 ) 上 的 值 表 示 出 来. k a 1 = 1i ϕ i=1 (e) i k a 2 = 2i ϕ (e) i (4.50) i=1 k a k = ki ϕ (e) i i=1

4.6 有 限 元 方 法 的 理 论 基 础 117 再 把 上 式 代 回 到 (4.48), 得 到 ϕ (e) (p) = = = k i=1 j=1 k j=1 i=1 ij ϕ (e) j w i (p) (4.51) ( k k ) ij w i (p) ϕ (e) j (4.52) k j=1 ϕ (e) j N (e) j (p) (4.53) 这 里, 可 以 把 N (e) j, j = 1, 2,, k 作 为 第 e 个 单 元 ( 记 为 e ) 上 的 基 函 数. 对 于 每 一 个 单 元, 都 可 以 得 到 一 组 k 个 基 函 数, 可 以 把 这 些 基 函 数 从 每 个 个 别 单 元 推 广 到 整 个 区 域 上. { (e) N Nj e j (p) p e (p) = (4.54) 0 p e 注 意 整 个 区 域 上 的 基 函 数 用 不 带 括 号 的 上 标. 在 每 个 顶 点 上 ϕ (e) (p i ) = k j=1 ϕ (e) j N e j (p i ) (4.55) 因 此, N e j (p i ) = δ ij (4.56) 这 样, 我 们 对 每 个 单 元 构 造 了 基 函 数 并 推 广 到 了 整 个 区 域 上, 但 一 般 这 些 基 函 数 并 不 是 自 洽 的, 也 就 是 说, 在 单 元 与 单 元 之 间 的 交 接 线 上, 由 两 个 单 元 分 别 构 造 的 基 函 数 一 般 并 不 连 续. 因 此, 这 样 的 基 函 数 并 不 满 足 作 为 基 函 数 的 要 求 ( 例 如, 当 被 展 开 函 数 取 这 些 交 接 线 上 的 点 时, 基 函 数 是 双 值 的 ). 为 此, 我 们 可 通 过 适 当 选 择 函 数 w(p) 的 形 式 使 得 基 函 数 在 任 何 相 邻 单 元 的 交 接 线 上 连 续, 这 一 过 程 称 为 总 体 合 成. 经 过 合 成 后, 得 到 n 个 独 立 的 基 函 数 N i (p), i, = 1, 2,, n, 此 处 n 为 内 节 点 的 总 数. 这 些 基 函 数 应 满 足 关 系 N i (p j ) = δ ij 这 样, 就 可 以 把 待 求 函 数 用 这 一 基 函 数 展 开 得 到 ϕ = n ϕ i N i (4.57) i=1 代 入 方 程 (4.47) 得 到 F [ϕ] = F (ϕ 1, ϕ 2,, ϕ n ) (4.58) 令 F ϕ i = 0, i = 1, 2,, n 就 得 到 一 组 n 个 确 定 ϕ i 的 方 程, 求 得 诸 ϕ i 后 代 回 (4.57) 就 得 到 了 问 题 的 解.

118 第 四 章 电 磁 场 的 计 算 4.7 用 有 限 元 方 法 求 解 二 维 Laplae 方 程 这 一 节 通 过 一 个 具 体 的 简 单 例 子, 说 明 有 限 元 方 法 计 算 静 电 场 问 题 的 过 程. 我 们 将 要 计 算 的 是 求 解 二 维 Laplae 方 程 的 第 一 边 值 问 题, 其 方 程 为 { 2 ϕ = 0 ϕ Γ = f (4.59) 这 一 方 程 对 应 的 变 分 问 题 为 F [ϕ] = 1 2 Ω [ ( ϕ ) 2 + x ( ) ] 2 ϕ dxdy = Min (4.60) y 这 一 变 分 问 题 具 有 明 确 的 物 理 意 义, 注 意 到 电 场 强 度 为 E = ϕ, 上 式 给 出 的 恰 好 是 电 场 的 能 量, 而 变 分 原 理 在 这 里 则 表 示 真 实 的 解 使 得 电 场 的 能 量 取 极 值 ( 实 际 上 是 极 小 值 ). 有 限 元 方 法 的 计 算 步 骤 如 下 一, 划 分 单 元 : 用 有 限 元 方 法 计 算 时, 先 把 待 求 区 域 划 分 为 有 限 个 互 不 重 叠 的 基 本 单 元. 现 取 为 三 角 形 单 元. 这 些 单 元 的 顶 点 ( 节 点 ) 位 置 的 选 取 原 则 上 是 任 意 的, 一 般 在 需 要 求 解 精 度 较 高 的 区 域 或 电 势 变 化 较 剧 烈 的 区 域 取 得 密 一 些, 反 之 则 可 取 的 疏 一 些. 对 于 大 部 分 情 况, 则 可 按 某 种 规 律 划 分, 以 方 便 编 程. 例 如 可 先 用 平 行 坐 标 轴 的 直 线 族 划 分 成 四 边 形 网 格, 然 后 再 把 每 个 四 边 形 对 分 成 三 角 形, 如 图 4.6 所 示. 对 边 界 上 的 特 殊 点 如 拐 折 点 等 都 应 取 为 节 点, 弯 曲 的 较 历 害 的 边 界, 节 点 应 取 得 密 一 点. 所 有 的 节 点 可 以 分 为 两 类, 一 类 是 内 节 点, 位 于 区 域 内, 其 上 的 电 势 值 未 知 待 求, 另 一 类 是 边 界 点, 其 上 电 势 已 知. 设 有 l 0 个 内 节 点, l 1 l 0 个 边 界 点, 对 节 点 的 编 号 可 以 这 样 进 行, 对 内 节 点 编 号 1, 2,, l 0, 对 外 节 点 编 号 l 0 + 1, l 0 + 2,, l 1. 以 这 些 节 点 为 顶 点 连 成 一 个 由 不 重 叠 的 三 角 形 组 成 的 网. 在 构 成 三 角 形 时, 要 避 免 太 尖 或 太 扁, 而 且 要 求 所 有 的 节 点 都 是 三 角 形 的 顶 点 而 不 能 是 任 何 一 个 三 角 形 的 边 上 的 点. 每 个 三 角 形 称 为 一 个 单 元, 第 e 个 单 元 记 为 e, 节 点 间 的 连 线 称 为 线 元. 区 域 边 界 的 曲 线 只 能 以 线 元 来 近 似, 图 4.6 中 的 三 角 形 ijk 就 是 一 个 典 型 的 单 元. 二, 构 造 单 元 上 的 插 值 函 数 : 下 面 我 们 来 分 析 一 个 典 型 的 单 元, 为 简 单 起 见, 记 三 角 形 的 三 个 顶 点 为 1, 2, 3. 在 单 元 内, 函 数 w 可 选 为 {1, x, y}, 于 是, 单 元 e 中 的 电 势 可 表 为 ϕ (e) (x, y) = α 1 + α 2 x + α 3 y (4.61) 设 单 元 的 三 个 顶 点 1, 2, 3 对 应 的 坐 标 为 (x 1, y 1 ), (x 2, y 2 ), (x 3, y 3 ), 电 势 为 ϕ 1, ϕ 2, ϕ 3, 则 由 (4.61) 得 ϕ(x 1, y 1 ) = α 1 + α 2 x 1 + α 3 y 1 ϕ 1 ϕ(x 2, y 2 ) = α 1 + α 2 x 2 + α 3 y 2 ϕ 2 ϕ(x 3, y 3 ) = α 1 + α 2 x 3 + α 3 y 3 ϕ 3 (4.62)

4.7 用 有 限 元 方 法 求 解 二 维 LAPLACE 方 程 119 y 图 4.6: i j k 由 上 式 可 解 出 其 中 a 1 = x 2 y 3 x 3 y 2 b 1 = y 2 y 3 1 = x 3 x 2 x α 1 = 1 2 (a 1ϕ 1 + a 2 ϕ 2 + a 3 ϕ 3 ) α 2 = 1 2 (b 1ϕ 1 + b 2 ϕ 2 + b 3 ϕ 3 ) α 3 = 1 2 ( 1ϕ 1 + 2 ϕ 2 + 3 ϕ 3 ) (4.63) a 2 = x 3 y 1 x 1 y 3 b 2 = y 3 y 1 2 = x 1 x 3 a 3 = x 1 y 2 x 2 y 1 b 3 = y 1 y 2 (4.64) 3 = x 2 x 1 在 上 式 中, 为 单 元 的 面 积, 其 值 为 = 1 1 x 1 y 1 2 1 x 2 y 2 1 x 3 y 3 = 1 2 (b 1 2 b 2 1 ) (4.65) 把 (4.64) 中 的 α 回 代 到 (4.61) 中, 就 得 到 这 一 单 元 中 的 电 势 的 线 性 插 值 函 数 为 ϕ = 1 2 3 (a i + b i x + i y)ϕ i (4.66) i=1

120 第 四 章 电 磁 场 的 计 算 若 定 义 则 第 e 个 单 元 中 的 电 势 ϕ (e) 可 写 为 N (e) 1 = 1 2 (a 1 + b 1 x + 1 y) N (e) 2 = 1 2 (a 2 + b 2 x + 2 y) (4.67) N (e) 3 = 1 2 (a 3 + b 3 x + 3 y) ϕ (e) = 3 i=1 ϕ i N (e) i (4.68) 在 写 出 此 式 时, 我 们 有 意 加 上 了 上 标 e 以 表 示 是 第 e 个 单 元. 对 每 一 个 单 元 都 可 做 完 全 相 同 的 分 析. 由 于 我 们 在 这 里 使 用 的 是 线 性 插 值 函 数, 因 此 每 个 线 元 上 的 电 势 只 决 定 于 其 两 个 端 点 的 电 势 值, 因 而 自 洽 性 要 求 是 自 动 满 足 的. 三, 单 元 分 析 : 现 在 考 虑 第 e 个 单 元 对 泛 函 (4.60) 的 贡 献. 插 值 函 数 的 导 数 为 ϕ x = 1 2 (b 1ϕ 1 + b 2 ϕ 2 + b 3 ϕ 3 ) ϕ = 1 y 2 ( 1ϕ 1 + 2 ϕ 2 + 3 ϕ 3 ) (4.69) 上 式 右 边 为 常 数, 这 表 明 在 取 线 性 插 值 函 数 时, 每 一 单 元 内 的 电 场 强 度 为 常 数, 这 当 然 只 有 在 单 元 取 得 很 小 时 才 成 立, 同 时 这 也 为 我 们 选 取 网 格 的 大 小 提 供 了 一 个 参 考, 即 网 格 的 选 取 应 使 单 元 的 范 围 比 把 电 场 强 度 可 看 作 常 数 的 范 围 稍 小. 由 (4.69), 可 求 得 第 e 个 单 元 对 泛 函 (4.60) 的 贡 献 为 F (e) = 1 [ ( ϕ ) 2 ( ) ] 2 ϕ + dxdy 2 x y 其 中, = 1 2 e 3 3 p=1 q=1 a (e) pq ϕ p ϕ q (4.70) a (e) pq = 1 4 (b pb q + p q ) (4.71) 为 了 下 面 的 应 用, 我 们 恢 复 单 元 e 的 顶 点 的 本 来 编 号, 把 1, 2, 3 换 为 j 1 [e], j 2 [e], j 3 [e], 于 是, 式 (4.70) 可 写 成 F (e) = 1 2 3 3 p=1 q=1 总 体 合 成 : 把 所 有 的 单 元 对 泛 函 的 贡 献 加 起 来, 就 得 到 了 泛 函 (4.60) 的 值 F [ϕ] = alle F (e) = 1 2 alle a (e) pq ϕ jp[e]ϕ jq[e] (4.72) 3 p,q=1 a (e) pq ϕ jp[e]ϕ jq[e] (4.73)

4.7 用 有 限 元 方 法 求 解 二 维 LAPLACE 方 程 121 上 式 可 以 通 过 以 节 点 的 值 ϕ i 进 行 归 并, 整 理 得 到 F [ϕ] = 1 2 l 1 i,j=1 K ij ϕ i ϕ j (4.74) 为 了 计 算 F [ϕ] 的 极 值, 可 对 上 式 对 ϕ i, = 1, 2,, l 0 求 偏 导 数 并 令 其 为 零, 得 到 l 1 j=1 K ij ϕ j = 0 i = 1, 2,, l 0 或, 把 与 边 界 有 关 的 已 知 项 移 到 右 边 l 0 K ij ϕ j = l 1 j=1 j=l 0 +1 K ij ϕ j u i (4.75) 写 成 矩 阵 形 式, 有 Kϕ = u (4.76) 这 是 一 个 线 性 代 数 方 程 组, 可 用 前 面 介 绍 的 方 法 求 解, 一 旦 求 得 了 诸 ϕ i, 就 可 计 算 出 区 域 中 任 一 点 的 电 势. 在 实 际 计 算 中, 通 常 要 用 一 些 特 殊 的 方 法 求 解 有 限 元 方 程 (4.76). 矩 阵 K 一 般 是 一 个 稀 疏 带 状 距 阵, 且 具 有 正 定, 对 称 的 特 点. 对 于 这 类 矩 阵, 通 常 采 用 一 维 表 示, 使 内 存 要 求 大 大 降 低. 下 面 简 单 介 绍 一 下 一 维 表 示 方 法, 由 于 K 是 对 称 的, 因 此 我 们 只 需 要 存 储 对 角 线 上 的 元 素 和 上 三 角 的 元 素. 在 第 i 列 上 取 出 最 上 面 的 非 零 元 素, 设 其 位 于 第 k i 行, 则 第 i 列 的 带 宽 为 t i = i k i, (i = 1, 2,, l 0 ) (4.77) 显 然, t 1 = 0, 把 矩 阵 K 的 上 三 角 部 分 和 对 角 部 分 先 按 行 再 按 列 排 成 一 个 一 维 数 组, 记 为 A[1 : s], 称 为 带 内 数 据 数 组. 再 建 立 一 个 数 组 N[1 : l 0 ], 其 第 i 个 元 素 定 义 为 : N[i] = (t 1 + 1) + (t 2 + 1) + + (t i + 1), (i = 1, 2,, l 0 ) (4.78) 这 一 数 组 称 为 累 计 带 宽 数 组, N[1] = 1, 它 给 出 了 K 中 元 素 在 数 组 A 中 的 位 置, 例 如 A[N[i]] 为 K 的 第 i 个 对 角 元 素. 一 般 地 K ji = A[N[i] i + j] (4.79) 用 A 和 N 就 可 以 完 整 的 表 示 出 K. 如 果 矩 阵 K 的 最 大 带 宽 (Max{t i }) 为 m, 则 A 的 元 素 数 s ml 0, N 的 元 素 数 为 l 0, 最 多 需 (m + 1) l 0 个 存 储 单 元, 而 直 接 存 储 K 则 需 l 0 l 0 个 单 元, 二 者 在 l 0 较 大 时 相 差 是 很 大 的. 对 于 l 0 = 6 的 一 种 情 形 示 于 (4.80), 其 中 方 块 是 K 中 必 须 存 储 的 的 非 零 元 素, 中 的 元 素 可 以 通 过 对 称 性 得 出, 方 块 中 的 数 字 是 一 维 存 储 时 的 编 号

122 第 四 章 电 磁 场 的 计 算 1 2 4 0 0 0 3 5 0 0 0 K = 6 7 9 0 8 10 12 11 13 14 (4.80) 在 此 表 示 下, 可 以 方 便 地 用 消 去 法 求 解 方 程 (4.76). 最 后, 具 体 说 明 一 下 构 成 矩 阵 K 和 矢 量 u 的 算 法 1. 对 i, j = 1, 2,, l 0 { Kij = 0 u i = 0 (4.81) 2. 对 所 有 的 单 元 e, 令 i = j p [e], j = j q [e], p, q = 1, 2, 3 (a) 如 果 i > l 0, 不 作 处 理 ; (b) 如 果 i l 0 同 时 j l 0, 则 K ij = a (e) pq + K ij () 如 果 i l 0 同 时 j > l 0, 则 u i = a (e) pq ϕ j + u i 在 一 维 表 示 下, 上 面 的 算 法 变 为 1. 对 i = 1, 2,, l 0 { ti = 0 u i = 0 (4.82) 2. 对 所 有 的 单 元 e, 令 i 1 = j 1 [e], i 2 = j 2 [e], i 3 = j 3 [e] (a) 如 果 i p > l 0, p = 1, 2, 3, 不 作 处 理 ; (b) 计 算 t i : 如 果 i 1 l 0 则 t i1 = Max(t i1, i 1 i 2, i 1 i 3 ) 如 果 i 2 l 0 则 t i2 = Max(t i2, i 2 i 3, i 2 i 1 ) 如 果 i 3 l 0 则 t i3 = Max(t i3, i 3 i 1, i 3 i 2 ) (4.83) 3. 计 算 N i : (a) N 1 = 1; (b) 对 i = 2, 3,, l 0, N i = N i 1 + t i + 1 4. 对 所 有 的 单 元 e, 令 i = j p [e], j = j q [e], p, q = 1, 2, 3 (a) 如 果 i > l 0, 不 作 处 理 ;

4.7 用 有 限 元 方 法 求 解 二 维 LAPLACE 方 程 123 (b) 如 果 i l 0 同 时 j l 0, 则 i. 如 果 i > j, 不 作 处 理 ; ii. 如 果 i j, α = N j j + i K α = a (e) pq + K α () 如 果 i l 0 同 时 j > l 0, 则 u i = a (e) pq ϕ j + u i 这 一 节 比 较 详 细 地 处 理 了 有 限 元 方 法 求 解 二 维 Laplae 方 程 的 问 题, 从 讲 解 中 我 们 可 以 看 到, 有 限 元 方 法 节 点 配 置 灵 活, 特 别 适 用 于 处 理 复 杂 边 界 的 问 题, 但 另 一 方 面, 有 限 元 方 法 形 成 的 K 矩 阵 的 形 式 往 往 比 较 复 杂, 当 节 点 较 多 时, 需 要 用 特 殊 的 方 式 储 存 和 运 算, 增 加 了 求 解 的 复 杂 性. 在 实 际 工 作 中, 应 学 会 根 据 具 体 问 题 选 择 合 适 的 方 法. 本 章 没 有 给 出 具 体 程 序, 这 是 因 为 这 里 只 是 对 电 磁 场 的 计 算 做 了 非 常 初 等 的 介 绍. 如 果 要 作 实 际 计 算, 还 必 须 考 虑 很 多 细 节 问 题. 同 学 们 在 作 计 算 时 可 参 看 有 关 的 专 著 和 一 些 较 成 熟 的 软 件 包.

124 第 四 章 电 磁 场 的 计 算

第 五 章 Monte Carlo 方 法 数 值 模 拟 方 法 在 计 算 物 理 中 具 有 十 分 重 要 的 地 位, 这 一 章, 我 们 将 从 理 论 物 理 的 角 度 来 介 绍 这 一 方 法. 5.1 随 机 变 量 及 其 分 布 在 这 一 节 中, 我 们 介 绍 随 机 变 量 及 几 个 相 关 的 问 题, 随 机 变 量 ( 以 下 用 ξ 表 示 ) 可 分 为 两 类, 一 类 是 离 散 型 随 机 变 量, 它 可 以 取 一 系 列 分 立 值 x 1, x 2,, x n,, 其 对 应 的 取 某 一 值 的 概 率 为 p 1, p 2,, p n,. p i 称 为 ξ 的 概 率 分 布 ; 另 一 类 是 连 续 型 随 机 变 量, ξ 可 连 续 取 值, 设 ξ 在 区 间 [x, x + δx] 内 取 值 的 概 率 为 p(x ξ < x + δx), 令 p(x ξ < x + δx) f(x) = lim δx 0 δx f(x) 称 为 ξ 的 分 布 概 率 密 度, 而 ξ 处 于 区 间 [a, b] 内 的 概 率 由 下 式 给 出 概 率 应 归 一 化, 即 定 义 分 布 函 数 i=1 p(a ξ < b) = p i = 1 f(x) dx = 1 F (x) = p(ξ x) = 代 表 ξ 处 于 [, x] 的 概 率. 显 然, f(x) = df dx. 随 机 变 量 的 数 学 期 望 定 义 为 b a f(x) dx 对 离 散 型 随 机 变 量 对 连 续 型 随 机 变 量 x f(x) dx E(ξ) = i x i p i 对 离 散 型 随 机 变 量 E(ξ) = xf(x) dx 对 连 续 型 随 机 变 量

126 第 五 章 MONTE CARLO 方 法 α 0.5 0.05 0.02 0.01 1 α 0.5 0.95 0.98 0.99 X α 0.6745 1.9600 2.3263 2.5758 表 5.1: 方 差 定 义 为 D(ξ) = i (x i E(ξ)) 2 p i 对 离 散 型 随 机 变 量 D(ξ) = 下 面 介 绍 两 个 重 要 定 理 : (x E(ξ)) 2 f(x) dx 对 连 续 型 随 机 变 量 大 数 定 理 : 设 ξ 1, ξ 2,, ξ N, 为 一 随 机 变 量 序 列, 相 互 独 立, 具 有 同 样 分 布, 且 E(ξ i ) = a 存 在, 则 对 任 意 小 量 ϵ > 0, 有 lim p N { 1 N } N ξ i a < ϵ = 1 i=1 这 一 定 理 指 出, 不 论 随 机 变 量 的 分 布 如 何, 只 要 N 足 够 大, 则 算 术 平 均 与 数 学 期 望 值 可 无 限 接 近, 也 就 是 说, 算 术 平 均 以 概 率 收 敛 于 其 数 学 期 望 值. 中 心 极 限 定 理 : 设 ξ 1, ξ 2,, ξ N, 为 一 随 机 变 量 序 列, 相 互 独 立, 具 有 同 样 分 布, 且 E(ξ i ) = a, D(ξ i ) = σ 2 存 在, 则 当 N 时, 令 推 论 : 则 当 N 很 大 时, { 1 p N { 1 p N N i=1 } ξ i a < X ασ 1 Xα N 2π } N ξ i a < X ασ N i=1 2 2π Xα 1 N 0 2 2π Xα e x2 /2 dx = 1 α 0 e x2 /2 dx e x2 /2 dx N ξ i a < X ασ (5.1) N i=1 成 立 的 概 率 为 1 α, 1 α 称 为 可 信 水 平. α, 1 α 和 X α 的 数 值 关 系 见 表 5.1: 由 表 可 见, 当 X α = 2.5758 时, 式 (5.1) 成 立 的 概 率 已 经 为 99%, 也 就 是 说, 该 式 的 可 靠 性 已 相 当 高.

5.2 赝 随 机 数 的 产 生 127 5.2 赝 随 机 数 的 产 生 在 数 值 模 拟 中, 总 是 要 用 到 随 机 数, 因 此, 我 们 首 先 讨 论 如 何 产 生 随 机 数. 产 生 随 机 数 的 方 法 一 般 有 两 种, 一 种 是 物 理 的 方 法, 一 种 是 数 学 的 方 法. 我 们 只 讨 论 产 生 随 机 数 的 数 学 方 法. 用 数 学 的 方 法, 在 计 算 机 上 产 生 随 机 数, 这 似 乎 是 不 可 能 的, 因 为 一 个 程 序 在 运 行 中 算 得 的 结 果 完 全 是 确 定 的, 不 具 有 任 何 随 机 性. 但 另 一 方 面, 确 实 可 以 用 确 定 的 程 序, 产 生 出 可 以 重 复 的, 满 足 随 机 数 的 各 个 检 验 要 求 的 数 列, 为 了 与 真 实 的 随 机 数 区 别, 我 们 通 常 把 数 学 方 法 产 生 的 随 机 数 称 为 赝 随 机 数. 由 于 赝 随 机 数 序 列 是 用 确 定 的 方 法 产 生 的, 因 此 它 有 一 定 的 周 期, 即 这 一 序 列 在 它 的 第 N 个 数 开 始 重 复. 从 实 用 的 角 度 讲, 周 期 要 尽 可 能 的 长, 这 样, 在 一 次 数 值 模 拟 中 所 用 的 随 机 数 的 个 数 小 于 其 周 期, 否 则, 如 果 在 一 次 计 算 中 所 用 的 随 机 数 的 数 目 超 过 了 它 的 周 期, 则 可 能 产 生 虚 假 的 结 果. 最 常 用, 最 基 本 的 产 生 赝 随 机 数 的 方 法 是 同 余 法, 即 下 面 的 递 推 关 系 : I j+1 = ai j + (mod m) (5.2) 这 里, a,, m 是 三 个 整 数, 由 上 述 关 系 可 推 出 一 个 序 列 I 1, I 2, I 3,, 对 于 适 当 选 定 的 a,, m, 这 一 序 列 可 以 作 为 赝 随 机 数 使 用 且 具 有 足 够 长 的 周 期. 因 此, 对 于 大 部 分 实 际 应 用, 下 面 两 句 FORTRAN 语 句 放 到 任 何 需 要 随 机 数 的 地 方 就 可 以 满 足 要 求 JRAN = MOD(JRAN*IA+IC, IM) RAN = FLOAT(JRAN)/FLOAT(IM) 这 里 RAN 就 是 一 个 在 区 间 [0,1] 上 的 赝 随 机 数. 关 于 系 数 的 一 个 特 别 的 选 择 是 a = 16807, = 0 于 是, 在 32 位 机 器 上, 下 面 的 语 句 就 可 以 产 生 (1, 2 31 ) 之 间 的 随 机 数 linux=linux*16807 if(linux.lt.0) linux=linux+2147483647+1 对 于 大 型 的 计 算 项 目, 需 要 质 量 较 好 且 与 机 器 无 关 的 随 机 数 发 生 器, 一 种 笔 者 常 用 的 随 机 数 发 生 器 是 Fibonai 发 生 器, 其 新 的 随 机 数 由 前 面 的 两 个 已 经 得 到 的 随 机 数 通 过 加, 减 或 乘 得 到, 一 种 简 单 的 实 现 是 : x k+1 = x k 17 x k 5 当 x < 0 时, x x + 1. 这 一 实 现 称 为 17 位 Fibonai 发 生 器, 可 以 通 过 下 面 的 程 序 段 来 实 现, 使 I 和 J 分 别 初 始 化 为 17 和 5, 并 生 成 17 个 随 机 数 存 在 数 组 U 中

128 第 五 章 MONTE CARLO 方 法 UNI=U(I)-U(J) IF(UNI.LT.0.0) UNI=UNI+1.0 U(I)=UNI I=I-1 J=J-1 IF(I.EQ.0) I=17 IF(J.EQ.0) J=17 这 一 随 机 数 发 生 器 的 周 期 可 以 达 到 10 12, 基 本 能 满 足 大 部 分 实 际 计 算 的 需 要. 目 前 广 泛 使 用 的 一 个 赝 随 机 数 发 生 器 是 Shift-Register 发 生 器, 其 程 序 实 现 称 为 R250, 这 似 乎 是 一 个 质 量 更 高 的 发 生 器 R250 假 定 已 经 有 了 250 个 随 机 整 数 数, 然 后, 第 251 个 为 x 251 = x 1 x 148 或 一 般 的 x k = x k 250 x k 103 这 是 一 类 随 机 数 发 生 器 中 的 一 个, 这 类 发 生 器 均 可 写 为 x k = x k p x k q 这 里 表 示 对 整 数 按 照 二 进 制 位 做 xor 运 算 其 它 的 (p, q) 组 合 有 (98, 27) (1279,216) (1279,418) (9689, 84) (9689,471) (9689, 1836) (9689, 2444) (9689, 4187) 对 于 其 它 分 布 的 赝 随 机 数, 只 要 对 上 面 程 序 产 生 的 序 列 做 变 换 就 可 得 到. 这 里 做 一 个 简 短 的 介 绍 对 于 一 个 给 定 的 分 布 P (y), 我 们 希 望 由 均 匀 分 布 的 随 机 数 x 获 得 满 足 分 布 P (y) 的 随 机 数 即 我 们 需 要 找 到 一 个 x 的 函 数 f (x), 对 于 一 系 列 在 [0, 1] 按 照 均 匀 分 布 的 x, 由 y = f (x) 得 到 按 照 P (y) 分 布 的 y. 注 意 到 y P (y ) dy F (y) = x, 则 显 然 下 面 是 一 个 例 子 : 1, 指 数 分 布 P (y) = y = F 1 (x). { 0, y < 0 λe λy, y > 0.

5.3 用 MONTE CARLO 方 法 计 算 积 分 129 则 F (y) = y P (y ) dy = { 0, y < 0 1 e λy, y > 0, y = f (x) F 1 (x) = 1 ln (1 x). λ 不 幸 的 是, 对 于 绝 大 多 数 分 布 而 言, 上 面 的 积 分 无 法 解 析 积 出, 因 此 变 换 无 法 完 成, 因 此, 需 要 寻 找 其 它 方 法 5.3 用 Monte Carlo 方 法 计 算 积 分 在 第 三 章 中, 我 们 曾 指 出, 高 维 积 分 的 工 作 量 之 大, 是 通 常 积 分 方 法 无 法 完 成 的, 这 是 因 为 计 算 量 对 积 分 重 数 的 依 赖 是 指 数 关 系, 即 为 a N, 这 里 a 是 一 个 数, 大 体 为 计 算 一 重 积 分 的 计 算 量, N 为 积 分 重 数. 如 果 要 求 的 精 度 不 是 很 高, 则 Monte Carlo 方 法 计 算 高 维 积 分 可 以 大 大 减 小 计 算 量. 由 中 心 极 限 定 理 可 知, 如 果 我 们 在 一 个 多 维 体 积 V 中 均 匀 随 机 地 选 N 个 点, x 1, x 2, x 3,, x N, 则 f 2 f fdv V f ± V 2 N V (5.3) 这 里 表 示 取 算 术 平 均, f 1 N N f(x i ) f 2 1 N N f 2 (x i ) i=1 i=1 在 方 程 (5.3) 中, 右 边 第 一 项 是 积 分 的 近 似 值, 而 第 二 项 为 误 差 估 计 ( 取 X α = 1 并 以 f 代 替 数 学 期 望 值 ). 注 意 到 误 差 项 反 比 于 N, 正 比 于 被 积 函 数 的 方 差. 因 此, 为 了 达 到 较 高 的 精 度, 一 种 方 法 就 是 增 大 N, 但 显 然, 为 了 增 加 一 位 有 效 数 字, 就 要 增 加 100 倍 的 计 算 量, 下 面 是 一 个 例 子, 我 们 用 Monte Carlo 方 法 计 算 积 分 1 1 10 dx 1 dx 10 x 2 i 0 0 i=1 这 个 积 分 可 以 解 析 积 出 来, 其 结 果 为 10/3 3.333333, 下 表 是 用 Monte Carlo 方 法 计 算 的 结 果, 可 以 清 楚 地 看 到 其 缓 慢 收 敛 的 过 程. N <f> <f>-10/3 sqrt((<f^2>-<f>^2)/n) 200 3.26346 0.698731E-01 0.659725E-01 2000 3.33163 0.170660E-02 0.209839E-01 20000 3.33331 0.267029E-04 0.667506E-02 200000 3.33352-0.184298E-03 0.210897E-02

130 第 五 章 MONTE CARLO 方 法 另 一 种 提 高 精 度 的 方 法 是 减 小 方 差, 为 此, 考 虑 不 在 积 分 域 内 均 匀 取 点, 而 是 按 照 某 一 分 布 取 点, 用 g(x) 记 这 一 分 布, 则 方 程 (5.3) 成 为 V fdv V f/g ± V (f/g)2 f/g 2 N (5.4) 其 中 为 对 于 按 照 分 布 g(x) 取 样 的 点 所 做 的 平 均 如 果 选 择 g = f V f/g (5.5) 则 方 程 中 的 误 差 项 为 零! 但 仔 细 观 察 上 式 就 会 发 现, 这 实 际 上 是 做 不 到 的, 因 为 上 式 中 包 含 有 待 求 的 项 f/g, 而 在 g 未 给 出 之 前 f/g 根 本 无 法 计 算. 但 另 一 方 面,g(x) 与 被 积 函 数 成 比 例, 如 果 选 择 一 个 形 状 非 常 接 近 于 被 积 函 数 的 分 布, 就 可 能 减 小 方 差 不 过, 还 有 一 个 更 本 质 的 困 难, 一 般 我 们 给 出 的 是 均 匀 分 布 的 随 机 数, 因 此 实 现 均 匀 抽 样 完 全 是 直 接 了 当 的, 但 当 我 们 要 实 现 一 个 指 定 分 布 的 抽 样 时, 就 面 临 把 均 匀 分 布 的 随 机 数 变 为 所 需 分 布 的 问 题, 具 体 地 说, 就 是 要 找 一 变 换 y = y(x) 使 得 对 于 均 匀 分 布 的 x 有 以 g 分 布 的 y, 这 种 变 换 的 寻 找 也 许 比 原 积 分 的 计 算 更 难,( 至 少 对 绝 大 多 数 问 题 是 如 此!). 因 此, 这 一 想 法 似 乎 是 无 用 的. 不 过, (5.5) 毕 竟 给 我 们 一 些 提 示, 由 于 g 正 比 于 f, 这 就 提 示 我 们 在 被 积 函 数 值 较 大 的 地 方 多 选 取 样 点. 因 此 可 以 构 造 一 些 简 单 ( 变 换 容 易 ) 而 又 满 足 上 述 要 求 的 分 布 进 行 取 样. 关 于 这 一 方 面 的 内 容, 需 进 一 步 了 解 者 可 参 看 ( 裴 鹿 成, 张 孝 泽 著, 蒙 特 卡 罗 方 法 及 其 在 粒 子 输 运 问 题 中 的 应 用 ). 下 一 章 我 们 将 介 绍 另 外 一 种 基 于 这 样 一 种 观 察 的 方 法 来 模 拟 统 计 物 理 问 题. 我 们 再 来 看 一 个 例 子, 考 虑 积 分 I = 10 0 dx x 68 exp( 25x) 这 个 积 分 的 精 确 值 是 I exat = 0.86416626117 用 简 单 抽 样 法 计 算, 结 果 如 下

5.3 用 MONTE CARLO 方 法 计 算 积 分 131 N I I I I N I exat I N I I exat I exat I exat I 10 2 1.0757 0.245 2.44 0.235 2.35 10 3 0.83834 0.299 10 1 0.945 0.874 10 1 2.76 10 4 0.84711 0.197 10 1 1.97 0.277 10 1 2.77 10 5 0.86775 0.414 10 2 1.31 0.867 10 2 2.74 10 6 0.86343 0.850 10 3 0.850 0.274 10 2 2.75 10 7 0.86423 0.686 10 4 0.217 0.868 10 3 2.75 10 8 0.86380 0.420 10 3 4.20 0.275 10 3 2.75 10 9 0.86426 0.111 10 3 3.50 0.868 10 4 2.75 10 10 0.86420 0.383 10 4 3.83 0.275 10 4 2.75 其 中, I I 变 量, 由 此 得 到 : 是 相 对 误 差 的 估 计, 一 种 估 算 方 法 是 直 接 把 被 积 函 数 的 抽 样 值 作 为 随 机 I I = f 2 f 2 N f 2 另 一 种 方 法 是 把 总 的 步 数 分 为 若 干 段, 在 每 一 段 计 算 I, 并 把 其 看 做 为 随 机 变 量, 然 后 求 误 差 取 大 约 10 100 段, 所 得 结 果 与 第 一 种 方 法 的 结 果 大 致 相 同 这 里 的 结 果 来 自 第 一 种 方 法 从 最 后 一 列 可 以 看 出, 误 差 估 值 反 比 于 N, 其 比 例 系 数 与 方 差 相 联 系 为 了 减 少 方 差, 我 们 尝 试 用 一 个 与 被 积 函 数 比 较 接 近 的 分 布 来 取 样, 取 此 分 布 为 g(x) = 0.8920620583 exp( 2.5(x 2.8) 2 ) 然 后, 利 用 这 个 分 布 取 样, 并 计 算 x 68 exp( 25x) 0.8920620583 exp( 2.5(x 2.8) 2 ) 的 平 均 值 和 误 差, 计 算 结 果 如 下 注 意 到 最 后 一 列 比 简 单 抽 样 小 差 不 多 一 个 数 量 级 N I I I I N I exat I N I I exat I exat I exat I 10 2 0.86741 0.376 10 2 0.038 0.346 10 1 0.300 10 3 0.86192 0.260 10 2 0.082 0.117 10 1 0.320 10 4 0.86409 0.907 10 4 0.009 0.365 10 2 0.315 10 5 0.86395 0.247 10 3 0.078 0.116 10 2 0.318 10 6 0.86460 0.505 10 3 0.505 0.367 10 3 0.317 10 7 0.86422 0.617 10 4 0.195 0.116 10 3 0.317 10 8 0.86417 0.154 10 5 0.015 0.367 10 4 0.317 10 9 0.86418 0.170 10 4 0.538 0.116 10 4 0.317 10 10 0.86416 0.315 10 5 0.315 0.367 10 5 0.317

132 第 五 章 MONTE CARLO 方 法 为 了 实 现 对 于 g(x) 的 抽 样, 我 们 利 用 如 下 Metropolis 算 法, 关 于 这 一 算 法 的 解 释 将 在 下 一 章 给 出 算 法 如 下 : 1. 任 取 x 0 [0, 10] 2. 设 已 经 得 到 x i, 选 y = x i + δ (ran() 0.5). 其 中 ran() 给 出 (0, 1) 之 间 均 匀 分 布 的 随 机 数,δ 为 一 可 调 参 数 计 算 g(y) 3. 如 果 y < 0 或 y > 10, 则 令 x i+1 = x i. 否 则, 产 生 随 机 数 ξ = ran(), 如 果 g(x)/g(x i ) ξ, 则 x i+1 = x i, 否 则 x i+1 = x i. 这 样 得 到 的 序 列 x 0, x 1,..., x N 满 足 分 布 g(x). 建 议 写 一 个 实 现 上 述 算 法 的 小 程 序, 产 生 一 个 序 列, 做 出 其 分 布 的 直 方 图 并 检 验 上 述 论 断 5.4 自 相 似 性 与 分 形 在 本 章 的 其 余 几 节 我 们 将 介 绍 几 种 与 随 机 数 和 模 拟 有 关 的 物 理 过 程. 这 一 节 先 介 绍 分 形 的 概 念. 对 于 任 一 物 体, 其 形 状 本 身 就 是 一 个 很 有 趣 的 性 质, 我 们 日 常 生 活 中 经 常 遇 到 的 如 圆 形, 椭 圆, 球, 长 方 体 等 都 代 表 某 种 形 状. 与 这 些 形 状 相 关 的 是 其 维 数, 如 我 们 知 道 圆 面, 椭 圆 面, 长 方 形 面 都 是 二 维 的 而 球, 长 方 体 等 则 是 三 维 的. 从 数 学 上 看, 如 果 我 们 把 一 个 二 维 物 体 的 线 度 增 加 倍, 则 其 面 积 将 变 为 原 来 的 四 倍, 即 S R 2. 这 里 S 为 所 研 究 物 体 的 面 积 而 R 是 其 特 征 长 度. 对 于 三 维 物 体, 我 们 有, V R 3. 作 为 一 个 一 般 的 关 系, 我 们 考 虑 所 研 究 的 物 体 具 有 均 匀 面 密 度 或 体 密 度, 于 是 有 M R d 这 里 d 为 所 研 究 物 体 的 维 数. 近 年 来, 人 们 对 于 另 外 一 类 形 状 发 生 了 很 大 的 兴 趣, 这 类 物 体 的 形 状 通 常 都 非 常 复 杂, 自 然 界 如 雪 花, 海 岸 等 数 学 上, 利 用 简 单 的 规 则, 可 以 生 成 很 多 种 复 杂 图 形 物 理 上 如 扩 散 限 制 粘 结 的 图 样 等 这 样 一 类 形 状 被 称 为 分 形. 我 们 以 一 个 直 观 的 简 单 例 子 开 始 讨 论, 考 虑 一 个 正 方 形, 显 然, 它 的 维 数 是 二. 现 把 它 分 为 9 个 相 等 的 小 正 方 形, 并 把 中 心 的 小 正 方 形 拿 掉, 对 剩 下 的 8 个 小 正 方 形 重 复 这 一 过 程 直 到 无 穷, 这 样 得 到 的 形 状 成 为 Sierpinski 地 毯. Sierpinski 地 毯 是 一 种 确 定 性 分 形, 这 是 因 为 产 生 Sierpinski 地 毯 的 规 则 完 全 是 确 定 的, 后 面 我 们 还 会 看 到 随 机 分 形 的 例 子, 这 类 分 形 是 通 过 一 定 的 随 机 过 程

5.4 自 相 似 性 与 分 形 133 图 5.1: Sierpinski 地 毯. 图 5.2: Koh 曲 线. 而 生 成 的. 分 形 的 一 个 显 著 特 点 是 自 相 似 性, 如 果 我 们 从 不 同 的 空 间 尺 度 去 观 察 分 形, 看 到 的 形 状 特 点 都 是 一 样 的, 或 者, 如 果 我 们 仅 仅 只 看 分 形, 则 无 法 知 道 所 看 到 的 部 分 是 否 被 放 大 了, 放 大 了 多 少 倍. Sierpinski 地 毯 就 是 这 样 一 个 典 型 的 例 子. 标 志 分 形 的 关 键 量 是 它 的 维 数, 对 于 规 则 形 状, 直 观 上 很 容 易 给 出 其 维 数, 这 个 维 数 实 际 上 就 是 可 以 把 此 形 状 嵌 入 的 最 小 空 间 维 数, 如 一 个 平 面 物 体 可 以 嵌 入 二 维 空 间, 是 二 维 的, 一 个 空 间 物 体 如 球, 立 方 体 等 可 以 嵌 入 三 维 空 间, 是 三 维 的. 而 分 形 的 另 一 个 特 点 是 很 难 从 直 观 上 给 出 其 维 数, 再 以 Sierpinski 地 毯 为 例, 它 的 维 数 是 多 少? 与 前 一 段 的 分 析 类 似, 我 们 可 以 一 般 地 用 下 述 公 式 M R d f 定 义 一 个 物 体 的 维 数. 对 于 大 多 数 复 杂 形 状, d f 通 常 并 不 是 一 个 整 数, 而 是 一 个 分 数 或 无 理 数, 这 就 是 分 形 这 一 名 称 的 来 源. 对 于 一 个 d f 维 的 形 状, 由 上 面 的 定 义 可 知, 如 果 我 们 用 某 个 长 度 单 位 u 来 量 度 其 特 征 长 度, 则 面 积 的 单 位 为 u 2, 体 积 的 单 位 为 u 3. 一 个 物 体 的 大 小 可 以 用 能 容 纳 该 物 体 的 最 小 正 规 维 数 的 空 间 来 量 度, 如 前 面 的 Sierponski 地 毯 可 容 纳 于 二 维 空 间, 因 此 可 以 用 u 2 来 量 度 其 大 小, 所 谓 大 小, 在 这 一 例 子 中 是 指 至 少 用 多 少 个 单 位 面 积 可 以 完 全 覆 盖 物 体. 设 在 此 选 定 单 位 下 特 征 长 度 的 值 为 L, 或 有 L 个 长 度 单 位. 如 果 我 们 把 所 用 的 长 度 单 位

134 第 五 章 MONTE CARLO 方 法 减 少 到 原 来 的 1/l, 则 显 然 L 变 为 原 来 的 l 倍, 而 面 积 和 体 积 分 别 变 为 原 来 的 l 2 及 l 3 倍. 或 d 维 形 状 的 大 小 变 为 原 来 的 N = l d 倍. 如 果 一 个 维 数 为 d f 的 形 状 嵌 入 d 维 空 间, 此 处 d 称 为 正 规 维 数, 只 能 取 整 数 值. 则 此 形 状 在 单 位 变 换 下 其 大 小 变 为 原 来 的 N = l d f 倍. 于 是 维 数 d f = ln N ln l. 我 们 可 以 用 这 样 一 种 关 系 来 计 算 分 形 的 维 数. 对 于 Sierpinski 地 毯, 设 我 们 取 其 边 长 为 单 位, 则 其 大 小 为 1, 把 长 度 单 位 缩 小 到 原 来 的 1/3, 大 小 成 为 8, 再 缩 小 到 1/3, 大 小 成 为 8 2, 或 一 般 地, 长 度 单 位 每 缩 小 到 原 来 1/3, 则 大 小 增 加 到 8 倍. 这 里 N = 8, l = 3, 于 是 Sierpinski 地 毯 的 分 形 维 数 为 d f = ln 8/ ln 3 = 1.89278. 与 Sierpinski 地 毯 有 关 的 还 有 Koh 曲 线, 它 是 把 一 单 位 长 度 的 线 段 三 等 分, 把 中 间 的 一 段 拿 掉, 连 上 由 长 度 为 1/3 的 线 段 构 成 的 上 翘 三 角 形, 然 后 对 每 一 线 段 重 复 上 述 过 程 至 无 穷, 得 到 的 结 果 即 为 Koh 曲 线. 如 图 所 示. 练 习 : 计 算 Koh 曲 线 的 分 形 维 数.( 提 示, 考 察 Koh 曲 线 的 总 长 度 与 长 度 单 位 改 变 之 间 的 关 系 ). 在 自 然 界 中, 一 个 与 分 形 有 关 的 著 名 例 子 是 英 国 的 海 岸 线 有 多 长? 如 果 我 们 拿 一 张 地 图, 分 别 用 不 同 长 度 的 尺 子 来 量 度 英 国 的 海 岸 线, 则 可 以 得 到 不 同 的 长 度, 随 着 尺 子 不 断 变 短, 则 我 们 的 到 的 海 岸 线 的 长 度 变 长. 一 个 自 然 的 想 法 是 当 尺 子 足 够 短 时, 这 一 长 度 应 该 趋 于 一 个 恒 定 值, 并 可 把 这 一 恒 定 值 定 义 为 英 国 海 岸 线 的 长 度. 然 而, 这 一 直 观 的 想 法 并 不 成 立, 事 实 上, 当 我 们 的 尺 子 越 来 越 短 时, 我 们 可 能 达 到 一 张 地 图 分 辨 率 的 极 限, 此 时 我 们 需 要 一 张 分 辨 率 更 高 的 地 图, 但 我 们 并 不 能 得 到 一 个 确 定 的 长 度, 最 后, 也 许 我 们 需 要 沿 着 英 国 海 岸, 在 距 离 水 边 一 米 处 测 量, 即 便 如 此, 随 着 尺 子 长 度 的 改 变, 我 们 依 然 不 能 得 到 确 定 的 海 岸 线 长 度. 事 实 上, 海 岸 线 的 长 度 并 不 是 一 个 一 维 量, 而 是 一 个 分 形, 它 的 维 数 大 于 一. 为 了 计 算 其 维 数, 我 们 可 以 用 不 同 长 度 的 尺 子 测 量 海 岸 线 的 长 度, 并 把 测 得 的 长 度 的 数 值 的 对 数 与 尺 子 长 度 的 对 数 作 图, 则 可 得 到 一 条 直 线, 直 线 的 斜 率 就 给 出 海 岸 线 的 维 数. 练 习 : 找 一 张 较 大 的 中 国 地 图, 试 测 量 并 计 算 中 国 海 岸 线 的 分 形 维 数. 5.5 扩 散 限 制 粘 结 的 计 算 机 模 拟 扩 散 限 制 粘 结 (Diffusion limited aggregation), 简 称 DLA, 是 近 三 十 年 来 引 起 广 泛 兴 趣, 得 到 大 量 研 究 的 物 理 过 程 其 开 端 是 由 Witten 和 Sander 为 了 充 分 使 用 一 台 当 时 最 新 的 绘 图 仪 而 引 发, 且 一 发 而 不 可 收 拾 (Diffusion-Limited Aggregation, a Kineti Critial Phenomenon, Phys. Rev. Lett. 47, 1400 1403 (1981)) 全 面 介 绍 这 样 一 个 重 要 的 领 域 大 大 超 出 了 本 讲 义 的 范 围, 这 一 节 我 们 介 绍 一 种 用 计 算 机 生 成 DLA 集 团 的 方 法, 同 学 门 可 由 此 体 会 一 点 DLA 的 初 步 知 识.

5.6 高 分 子 的 模 拟 和 无 规 行 走 135 考 虑 一 个 正 方 格 子, 现 在 格 子 的 中 心 放 一 个 粒 子, 作 为 DLA 的 种 子. 从 格 子 的 边 缘 随 机 选 定 一 个 出 发 点, 并 使 一 粒 子 从 该 点 出 发, 在 格 子 上 做 无 规 行 走, 当 此 粒 子 到 达 作 为 种 子 的 近 邻 时, 则 使 其 停 下, 并 随 机 在 格 子 边 缘 选 一 出 发 点, 继 续 这 一 过 程 ; 如 果 粒 子 在 无 规 行 走 中 到 达 边 界, 则 放 弃 这 一 粒 子. 重 复 这 一 过 程 多 次 直 到 生 成 一 个 较 大 的 集 团, 如 果 我 们 把 这 个 集 团 显 示 到 计 算 机 显 示 器 上 或 打 印 出 来, 我 们 就 会 看 到 这 一 图 案 与 很 多 自 然 现 象 有 相 似 之 处, 如 雪 花, 闪 电 的 图 样, 山 上 岩 石 的 裂 纹 等. DLA 图 样 是 随 机 分 形 的 典 型 例 子, 为 了 计 算 其 分 形 维 数, 我 们 可 以 考 虑 以 种 子 所 在 的 点 为 圆 心, 不 断 改 变 半 径 并 数 出 圆 内 所 具 有 的 粒 子 数 M, 则 应 有 M R d f, 作 出 ln M 与 ln R 的 图, 就 可 得 到 分 形 维 数. 计 算 机 实 习 题 : 编 写 生 成 DLA 的 程 序 并 生 成 DLA 集 团, 分 析 其 分 形 维 数. 5.6 高 分 子 的 模 拟 和 无 规 行 走 无 规 行 走 可 以 作 为 高 分 子 链 的 简 单 模 型, 为 了 简 单 直 观 起 见, 这 一 节 我 们 只 考 虑 二 维 空 间 的 无 规 行 走, 推 广 到 三 维 是 直 接 了 当 的 简 单 无 规 行 走 (RW) 考 虑 一 个 二 维 的 正 方 格 子 ( 其 它 格 子 亦 可 ), 从 格 子 上 的 一 个 格 点 出 发, 随 机 地 在 四 个 可 能 的 方 向 上 选 择 一 个 方 向, 前 进 一 步 然 后 以 新 的 位 置 为 出 发 点, 重 复 前 进, 走 N 步 后, 其 所 走 的 轨 迹 构 成 一 个 一 维 链 这 个 链 可 以 看 作 最 简 单 的 高 分 子 链 的 模 型 因 为 每 一 步 有 z = 4 种 等 价 的 选 择, 而 相 邻 的 步 是 独 立 的, 因 此, 无 规 行 走 的 配 分 函 数 ( 总 的 状 态 数 ) 可 以 方 便 写 出 Q = z N 这 里,z 是 格 点 的 最 近 邻 格 点 数, 对 于 正 方 格 子,z = 4. 用 r i 表 示 第 i 步 的 位 移,N 步 后 的 位 移 是 R = R = R 是 起 点 与 终 点 之 间 的 距 离, 称 为 末 端 距 显 然 R = 0 而 末 端 距 的 平 方 的 平 均 为 N i=1 r i N R 2 = r i r j = i,j=1 N ri 2 = Na 2 i=1

136 第 五 章 MONTE CARLO 方 法 这 里 a 是 晶 格 常 数 随 后 将 会 看 到, 这 个 严 格 的 结 果 在 模 拟 计 算 中 非 常 有 用 不 回 头 无 规 行 走 (NRRW) 与 简 单 无 规 行 走 类 似, 除 了 每 一 步 不 容 许 立 即 回 头, 即 只 能 在 z 1 个 可 能 的 方 向 中 选 择 对 于 N 步 行 走, 其 配 分 函 数 为 而 末 端 距 平 方 的 平 均 值 是 Q = (z 1) N R 2 = 4 3 Na2 自 回 避 无 规 行 走 (SAW) N 如 果 考 虑 到 高 分 子 链 具 有 体 积 效 应, 即 每 个 格 点 最 多 只 能 访 问 一 次, 那 么, 在 无 规 行 走 中, 如 果 遇 到 已 经 访 问 过 的 点, 就 必 须 回 避 一 种 实 际 的 计 算 方 法 是, 产 生 NRRW 链, 一 旦 选 择 的 新 格 点 被 占 据, 就 停 止 显 然, 这 样 一 种 方 法 很 难 得 到 N 比 较 大 的 链, 事 实 上, 在 长 度 为 N 的 NRRW 链 中, 自 回 避 链 所 占 的 比 例 由 其 配 分 函 数 的 比 值 给 出 w N = QSAW Q NRRW 这 也 是 计 算 SAW 配 分 函 数 的 一 个 方 法 事 实 上,SAW 的 配 分 函 数 无 法 解 析 得 到, 在 N 时, 可 以 得 到 其 渐 进 形 式 为 Q SAW = N γ 1 z N eff 其 中,γ 是 一 个 临 界 指 数,z eff < z 1 为 有 效 近 邻 数, 通 常 不 是 一 个 整 数 这 连 个 数 一 般 只 能 通 过 数 值 模 拟 求 得, 目 前 已 知 的 结 果 是 : 三 维 空 间 γ 7 6, 二 维 空 间 γ 4 3. 利 用 这 个 结 果, 可 以 得 到 ( ) N ( w N = N γ 1 zeff = exp N ln z 1 ) + (γ 1) ln N z 1 z eff 从 上 式 可 以 看 出, 随 着 N 增 加,SAW 链 出 现 的 概 率 指 数 衰 减, 因 此, 当 N 较 大, 例 如 达 到 100 时, 从 NRRW 中 挑 出 一 个 SAW 是 非 常 难 的 所 以, 直 接 生 成 的 方 法 通 常 限 于 N < 100 的 SAW 链 的 研 究 除 了 自 回 避 外, 如 果 在 最 近 邻 的 占 据 格 点 上 加 上 一 点 吸 引 相 互 作 用, 则 会 得 到 非 常 有 趣 的 结 果 此 时,SAW 链 存 在 一 个 相 变, 其 来 源 是 自 回 避 排 斥 作 用, 熵 和 吸 引 相 互 作 用 的 竞 争 存 在 一 个 临 界 温 度 T, 当 T > T 时,SAW 的 末 端 距 平 方 的 平 均 值 在 大 N 极 限 下 为 R 2 N 2ν, ν 0.59 这 里 ν 是 另 外 一 个 临 界 指 数 当 T < T 时, R 2 N 2/3 而 当 T = T 时 R 2 N

第 六 章 逾 渗 和 统 计 物 理 问 题 6.1 逾 渗 简 介 逾 渗 问 题 本 身 不 是 一 个 物 理 问 题, 但 这 一 问 题 的 研 究 包 含 了 现 代 物 理 的 很 多 重 要 概 念, 如 相 变, 临 界 指 数, 重 整 化 群 等. 由 于 逾 渗 问 题 比 实 际 统 计 物 理 问 题 简 单 很 多, 因 此 成 为 介 绍 这 些 重 要 物 理 概 念 的 一 个 合 适 的 入 门 模 型. 逾 渗 的 很 多 概 念 和 模 型 在 无 序 固 体 及 软 物 质 的 研 究 中 也 有 重 要 应 用. 这 一 节 我 们 简 单 介 绍 点 逾 渗 模 型 及 一 些 概 念, 下 一 节 给 出 一 种 计 算 机 分 析 逾 渗 的 方 法. 为 简 单 起 见, 我 们 考 虑 二 维 问 题, 把 平 面 划 分 为 正 方 格 子, 如 图 所 示. 每 一 个 小 的 方 格 可 以 处 于 占 据 和 空 两 种 状 态, 在 图 中 以 灰 和 白 表 示. 设 每 一 个 格 点 被 占 据 的 概 率 为 p, 这 一 概 率 与 格 点 的 周 围 环 境 无 关. 这 样 一 种 模 型 称 为 点 逾 渗 模 型. 对 于 给 定 的 占 据 概 率 p, 每 一 占 据 格 点 或 者 是 孤 立 的, 或 者 与 最 近 邻 占 据 格 点 形 成 集 团. 我 们 定 义 若 二 格 点 为 最 近 邻 且 均 被 占 据, 则 此 二 格 点 直 接 相 连, 若 二 格 点 之 间 可 以 找 到 一 个 通 路, 沿 通 路 最 近 邻 格 点 相 连, 则 此 二 格 点 间 接 相 连. 集 团 定 义 为 这 样 一 组 占 据 格 点, 其 中 的 任 何 二 个 都 直 接 或 间 接 相 连. 集 团 的 大 小 是 逾 渗 问 题 中 的 一 个 关 键 量. 设 想 若 每 个 占 据 格 点 为 导 体 而 空 格 点 为 绝 缘 体, 则 如 果 存 在 一 个 大 集 团 从 格 子 的 一 边 延 伸 到 另 一 边, 则 逾 渗 样 品 将 导 通, 否 则 为 绝 缘 体. 我 们 可 以 很 容 易 用 计 算 机 生 成 逾 渗 集 团, 对 于 每 一 个 格 点, 产 生 一 个 在 区 间 [0, 1] 上 均 匀 分 布 的 随 机 数 r, 若 p > r, 则 此 格 点 标 记 为 占 据, 否 则 为 空. 如 果 占 据 概 率 p 很 小, 我 们 期 望 只 有 一 些 孤 立 的 小 集 团, 如 图 A 所 示, 如 果 占 据 概 率 p 1, 我 们 期 望 大 多 数 占 据 格 点 形 成 一 个 跨 越 边 界 的 大 集 团, 我 们 称 此 集 团 为 跨 越 集 团. 对 于 中 等 大 小 的 p, 如 p 处 于 0.4 0.7 之 间, 会 发 生 什 么 情 况? 下 面 我 们 将 看 到, 对 于 一 个 无 穷 大 的 格 点, 存 在 一 个 确 定 的 临 界 概 率 p, 当 p > p 时, 存 在 一 个 无 穷 大 的 跨 越 集 团 ; 当 p < p 时, 所 有 集 团 都 是 有 限 的, 不 存 在 跨 越 集 团. 逾 渗 的 本 征 量 是 其 连 通 性, 随 着 格 点 占 据 概 率 的 连 续 变 化, 连 通 性 在 一 个 特 定 值 p 发 生 突 变. 这 种 由 无 跨 越 集 团 到 有 跨 越 集 团 的 变 化 是 一 种 相 变, 现 在 一 般 称 为 几 何 相 变. 逾 渗 并 不 仅 仅 是 一 个 有 趣 的 模 型, 实 际 上 有 很 多 与 之 相 关 的 物 理 问 题. 一 个 有 实 际 意 义 的 问 题 是 随 机 复 合 介 质 问 题, 如 果 我 们 把 金 属 球 和 橡 胶 球 均 匀 的 随 机 放 入 一 个 容 器

138 第 六 章 逾 渗 和 统 计 物 理 问 题 图 6.1: 中, 如 果 金 属 球 没 有 形 成 通 路, 则 样 品 整 体 表 现 出 绝 缘 性, 而 当 金 属 球 形 成 通 路 时, 则 样 品 在 整 体 上 表 现 为 导 体. 我 们 用 金 属 球 在 容 器 中 所 占 的 体 积 与 容 器 的 体 积 之 比, 体 积 分 数 ϕ 来 表 示 金 属 球 的 多 少, 当 ϕ 很 小 时, 样 品 的 电 导 为 0, 在 一 个 临 界 体 积 分 数 ϕ, 电 导 变 为 非 零 并 随 ϕ 的 增 加 而 急 剧 增 加. 这 是 一 个 金 属 绝 缘 体 转 变 的 典 型 例 子. 其 他 的 应 用 还 有 如 磁 性 物 质 的 非 磁 性 掺 杂, 森 林 火 灾 的 扩 展, 流 行 病 的 扩 展 等 等. 为 了 定 量 研 究 逾 渗 问 题, 我 们 定 义 下 面 一 些 量. 集 团 尺 寸 s, 定 义 为 集 团 内 的 格 点 数 ; 平 均 集 团 尺 寸 分 布 n s (p), 定 义 为 尺 寸 为 s 的 集 团 的 数 目 与 总 的 格 点 数 之 比 ( 当 p > p 时, 我 们 排 除 跨 越 集 团 ); 显 然, sn s 为 尺 寸 为 s 的 集 团 所 占 据 的 格 点 的 总 数, 而 w s = sn s s sn s 为 随 机 抽 取 一 个 占 据 格 点 时, 该 格 点 处 于 某 一 尺 寸 为 s 的 集 团 的 概 率, 平 均 集 团 尺 寸 则 由 下 式 给 出 S = s sw s = s s2 n s. s sn s 另 一 个 描 述 逾 渗 问 题 的 重 要 量 是 跨 越 集 团 概 率 P, 定 义 为 跨 越 集 团 内 包 含 的 格 点 总 数 与 占 据 格 点 总 数 之 比. 对 于 一 个 无 穷 大 的 格 点, 当 p < p 时, P = 0 而 当 p = 1 时, P = 1, 在 p = p, P 由 零 变 为 非 零 且 随 p 增 加 而 增 加. 在 热 力 学 统 计 物 理 中 我 们 学 过 热 力 学 相 变 和 临 界 现 象, 一 个 比 较 简 单 但 具 有 代 表 性 的 例 子 是 铁 磁 系 统 的 临 界 现 象, 当 温 度 T 小 于 临 界 温 度 T 时, 系 统 为 铁 磁 体, 具 有 自 发 磁 化, 而 当 T > T 时, 系 统 为 顺 磁 体. 系 统 的 相 变 由 参 数 温 度 引 起, 在 临 界 温 度 附 近, 系 统 具 有 长 程 关 联, 关 联 长 度 在 临 界 点 发 散, 其 宏 观 表 现 为 一 系 列 热 力 学 量 在 临 界 点 的

6.1 逾 渗 简 介 139 非 解 析 性 质. 逾 渗 相 变 与 热 力 学 临 界 现 象 有 很 多 相 似 之 处, 下 面 我 们 给 出 一 些 定 义 和 分 析, 这 些 分 析 对 理 解 更 为 复 杂 和 丰 富 多 采 的 热 力 学 临 界 现 象 可 提 供 帮 助. 首 先 定 义 一 个 与 逾 渗 有 关 的 长 度, 即 平 均 连 接 长 度 ξ(p), 代 表 集 团 的 空 间 尺 寸. 这 一 长 度 可 以 有 多 种 定 义 方 式, 这 里 我 们 考 虑 一 个 大 小 为 s 的 集 团 的 回 转 半 径 R s, 定 义 为 R 2 s = 1 s s (r i r) 2 i=1 其 中 r = 1 s s i=1 r i 而 r i 是 第 i 个 格 点 的 位 置 矢 量. r 是 集 团 的 质 心. 我 们 可 以 把 非 跨 越 集 团 回 转 半 径 的 平 均 值 定 义 为 ξ, 也 可 把 最 大 的 非 跨 越 集 团 的 回 转 半 径 定 义 为 ξ. 当 p < p 时, ξ 随 p 的 增 加 而 增 加, 当 p > p 时, ξ 随 p 的 减 小 而 增 加, 在 p = p 处 ξ 发 散. 当 p p 1 时, 我 们 称 系 统 处 于 临 界 区 域, ξ 的 发 散 行 为 是 非 解 析 的, 满 足 如 下 的 指 数 关 系 ξ(p) p p ν ν 是 我 们 遇 到 的 第 一 个 重 要 的 数, 称 为 关 联 长 度 的 临 界 指 数. 在 临 界 区 域, 我 们 期 望 当 p > p 时, 有 P (p p ) β 在 临 界 区 域, 集 团 的 尺 寸 发 散, 我 们 期 望 其 行 为 是 S(p) p p γ 这 样 我 们 定 义 了 三 个 临 界 指 数, 对 于 二 维 问 题, 这 些 临 界 指 数 可 以 解 析 求 出, 其 值 为 β = 5/36, γ = 43/18, ν = 4/3. 对 于 三 维 问 题, 只 能 用 各 种 近 似 方 法 来 得 到, 其 结 果 为 β 0.4, γ 1.8, ν 0.9. 这 些 指 数 具 有 很 大 的 普 适 性, 与 晶 格 结 构 以 及 与 关 联 长 度 的 不 同 定 义 均 无 关. 除 此 之 外, 它 们 之 间 还 满 足 一 定 的 关 系, 如 2β + γ = νd 式 中 d 为 空 间 维 数, 这 种 关 系 称 为 标 度 关 系. 有 关 这 些 关 系 及 其 在 相 变 和 临 界 现 象 中 的 重 要 意 义 将 在 高 等 统 计 物 理 课 程 中 详 细 讨 论. 有 兴 趣 的 同 学 也 可 参 看 有 关 书 籍 和 文 献. 相 对 于 临 界 指 数, 临 界 点 p 则 不 是 一 个 普 适 量, 对 于 二 维 正 方 格 点, p 0.5927 而 对 于 三 角 格 子 p = 1/2.

140 第 六 章 逾 渗 和 统 计 物 理 问 题 6.2 逾 渗 的 计 算 机 模 拟 和 分 析 上 一 节 我 们 简 单 介 绍 了 逾 渗 的 概 念, 这 一 节 将 讨 论 用 计 算 机 研 究 逾 渗 问 题 的 一 些 方 法. 研 究 逾 渗 问 题 大 体 上 分 为 三 步, 第 一 步 是 生 成 逾 渗 集 团, 这 是 最 简 单 的 一 步, 已 经 在 上 节 介 绍 过 了 ; 第 二 步 是 标 定 集 团, 即 找 出 每 个 集 团 所 包 含 的 格 点, 并 对 集 团 编 号, 以 便 进 一 步 分 析, 这 是 整 个 分 析 中 最 困 难 的 一 步 ; 第 三 步 是 根 据 第 二 步 的 结 果, 具 体 计 算 临 界 概 率, 临 界 指 数 等. 一 种 直 观 的 标 定 集 团 的 算 法 是 从 一 个 占 据 格 点 出 发, 找 出 与 此 格 点 直 接 和 间 接 相 连 的 所 有 格 点, 并 给 这 些 格 点 赋 予 数 1; 然 后 从 剩 下 的 占 据 格 点 中 选 出 一 个, 找 出 所 有 与 这 一 格 点 相 连 的 格 点 并 赋 予 数 2; 重 复 这 一 过 程 直 到 所 有 占 据 过 格 点 全 部 用 完. 请 同 学 试 写 出 这 一 算 法 的 程 序 并 对 从 小 到 大 的 格 点 进 行 试 算, 看 会 有 什 么 结 果? 实 际 上, 随 着 格 点 数 目 的 增 加, 计 算 量 将 指 数 增 加, 从 而 使 计 算 实 际 上 成 为 不 可 能. 下 面 我 们 介 绍 一 种 由 Hoshen 和 Kopelman 发 展 的 算 法. 这 一 算 法 可 通 过 下 面 的 例 子 来 介 绍. 考 虑 图 6.2 所 示 的 一 个 逾 渗 样 本, 我 们 从 左 下 角 开 始, 并 从 左 到 右, 从 下 到 上 进 行 编 号. 因 格 点 (1,1) 被 占 据, 我 们 给 它 赋 予 集 团 标 号 1, 下 一 个 没 有 占 据, 无 需 赋 值, 下 一 个 占 据 格 点 是 (3,1), 由 于 其 左 边 的 格 点 为 空, 我 们 给 它 赋 予 下 一 个 集 团 标 号 2, 格 点 (4,1) 左 边 占 据, 与 其 左 边 的 格 点 同 属 一 个 集 团, 也 赋 予 2, 这 一 行 其 余 格 点 的 分 析 是 直 接 了 当 的. 然 后 我 们 到 第 二 行, 考 察 格 点 (1,2), 由 于 这 一 格 点 被 占 据, 它 的 上 一 行 的 近 邻 (1,1) 的 集 团 标 号 为 1, 因 此 我 们 对 它 赋 值 1, 并 从 左 到 右 检 查 这 一 行, 如 果 一 个 格 点 为 空, 则 跳 过 该 格 点, 如 果 格 点 被 占 据, 则 考 察 其 左 边 和 下 边 的 最 近 邻, 若 此 2 近 邻 均 空, 则 给 此 格 点 赋 予 下 一 个 集 团 标 号, 如 果 只 有 一 个 近 邻 被 占 据, 则 给 此 格 点 赋 予 其 近 邻 的 集 团 标 号, 如 格 点 (2,2) 赋 予 1, 因 为 只 有 其 左 边 的 近 邻 被 占 据 且 具 有 标 号 1. 如 果 格 点 的 左 和 下 两 个 近 邻 均 被 占 据, 则 意 味 着 原 标 定 为 不 同 标 号 的 两 个 集 团 实 际 上 是 一 个 集 团, 我 们 必 需 进 行 合 并 并 重 新 编 号. 如 格 点 (6,2), 其 左 边 格 点 (5,2) 标 号 为 4, 而 其 下 边 格 点 (6,1) 标 号 为 3, 显 然 我 们 应 该 对 (6,2) 赋 予 较 小 的 标 号 3 并 把 (5,2) 的 标 号 更 新 为 3, 但 是 在 后 面 可 能 还 会 有 进 一 步 的 重 复 和 合 并, 我 们 把 这 一 更 新 过 程 推 迟 到 后 面 再 进 行. 为 了 记 录 这 种 合 并 信 息, 我 们 引 入 一 个 正 规 标 定 数 组 n, 数 组 的 每 一 个 元 素 与 一 个 集 团 标 号 相 联 系, 对 独 立 的 集 团 标 号, 数 组 的 对 应 元 素 赋 值 为 该 数 组 的 下 标, 否 则 赋 值 对 应 将 要 合 并 的 集 团 的 标 号. 对 于 本 例, 在 到 达 格 点 (6,2) 前, 分 别 有 np(1) = 1, np(2) = 2, np(3) = 3, np(4) = 4. 而 到 达 格 点 (6,2), 我 们 知 道 标 号 为 4 的 集 团 实 际 上 与 标 号 为 3 的 集 团 是 同 一 集 团, 为 了 记 住 这 一 信 息, 我 们 有 np(4) = 3. 这 一 赋 值 告 诉 我 们 标 号 4 是 非 正 规 的, 而 且 与 正 规 标 号 3 相 连. 这 样 一 个 过 程 仍 然 有 不 确 定 性, 当 我 们 到 达 格 点 (5,4), 此 格 点 的 左 边 标 号 为 5, 下 边 标 号 为 4, 我 们 已 经 知 道 标 号 4 为 非 正 规 标 号 ( 因 为 np(4) 4), 此 时 我 们 并 不 是 按 照 上 面

6.3 正 则 系 综 和 统 计 模 型 141 7 7 7 8 3 3 6 3 3 3 6 6 5 5 3 3 3 5 4 3 3 1 1 4 3 3 1 2 2 3 7 7 7 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 3 3 1 2 2 3 图 6.2: 集 团 的 构 造 算 法 的 规 则 为 (5,4) 标 号 4, 而 是 标 号 为 较 小 标 号 所 指 的 正 规 标 号, 这 里 为 3( 因 为 np(4) = 3), 同 时 我 们 知 道 标 号 5 也 是 非 正 规 的, 其 所 对 应 的 正 规 编 号 为 3, 故 应 令 np(5) = 3. 当 检 查 完 所 有 格 点 后, 我 们 可 以 根 据 数 组 np 的 值 对 非 正 规 标 号 进 行 更 新. 实 际 计 算 时, 我 们 总 是 分 析 有 限 的 格 点, 对 每 一 个 给 定 大 小 的 格 点 和 在 给 定 p 后 生 成 的 逾 渗 样 本, 计 算 得 到 的 P 一 般 并 不 相 同, 因 此 必 需 对 多 个 样 本 进 行 平 均. 这 样 计 算 得 到 的 结 果 与 所 取 样 本 大 小 有 关, 为 了 得 到 无 穷 大 格 点 的 结 果, 应 对 不 同 大 小 的 格 点 进 行 计 算, 然 后 外 推 到 无 穷 大 样 本. 为 了 计 算 临 界 指 数, 我 们 可 在 p 附 近 对 不 同 的 p 计 算 P, 设 P (p p ) β, 则 ln P = β ln(p p ) + C 这 里 C 为 一 个 常 数, 通 过 调 节 p, 使 得 ln P 与 ln(p p ) 成 为 一 条 直 线, 则 直 线 的 斜 率 就 给 出 β. 作 为 一 个 计 算 实 习 题, 请 同 学 根 据 前 面 二 节 的 内 容 分 析 二 维 正 方 格 子 上 的 逾 渗 问 题, 试 通 过 计 算 P, ξ 等 量 来 得 到 临 界 概 率 p 及 临 界 指 数. 6.3 正 则 系 综 和 统 计 模 型 在 热 力 学 与 统 计 物 理 中 我 们 学 过, 如 果 一 个 多 体 系 统 的 Hamiltonian 为 H, 则 对 于 给 定 系 统 的 粒 子 数 N, 体 积 V 和 温 度 T 之 后, 系 统 的 平 衡 分 布 由 正 则 分 布 给 出 为 : P (x) = 1 Z exp[ βh(x)] (6.1) 式 中 x 代 表 系 统 的 任 一 位 形, 而 P (x) 则 给 出 在 平 衡 态 时 系 统 处 于 该 位 形 的 概 率. Z = dx exp( βh(x)) (6.2)

142 第 六 章 逾 渗 和 统 计 物 理 问 题 为 系 统 的 正 则 配 分 函 数 ( 与 标 准 定 义 差 一 因 子 N!, 这 在 Monte Carlo 计 算 中 并 不 重 要, 因 为 后 面 将 会 看 到, Monte Carlo 方 法 几 乎 不 用 来 计 算 配 分 函 数 本 身 ) 在 分 立 变 量 的 情 况 下, 式 (6.2) 中 的 积 分 应 理 解 为 对 各 种 位 形 的 求 和. 物 理 量 是 位 形 的 函 数, 对 于 物 理 量 b(x), 其 平 均 值 B 为 B = dxb(x)p (x) (6.3) 下 面 我 们 看 几 个 具 体 的 例 子. 6.3.1 Ising 模 型 Ising 模 型 的 Hamiltonian 为 H = J nn s i s j h i s i (6.4) 式 中 J 称 为 交 换 积 分, h 为 外 场, s i 可 取 值 ±1, 称 为 自 旋 变 量. Ising 模 型 是 最 简 单 的 非 平 庸 统 计 物 理 模 型, 它 是 由 德 国 物 理 学 家 Lenz 在 二 十 年 代 提 出 的, 这 一 模 型 可 用 来 描 述 单 轴 各 向 异 性 磁 性 系 统, 合 金 等 物 理 体 系, 同 时 也 是 一 个 十 分 有 兴 趣 的 理 论 模 型. Ising 最 早 给 出 了 这 一 模 型 在 一 维 情 况 下 的 严 格 解, 证 明 了 在 一 维 下 这 一 模 型 不 存 在 相 变. Onsager 于 1945 年 做 出 了 零 场 下 这 一 模 型 在 二 维 空 间 的 严 格 解 并 计 算 了 它 的 相 变 温 度, 比 热 在 相 变 点 的 行 为 等 热 力 学 量. 杨 振 宁 在 1952 年 解 出 了 外 场 很 小 时 二 维 空 间 的 Ising 模 型, 求 出 了 序 参 量 的 临 界 行 为. 由 于 对 这 一 模 型 的 很 多 形 为 目 前 了 解 的 比 较 透 彻, 因 此 它 经 常 被 用 来 做 为 检 验 各 种 数 值 方 法 或 解 析 近 似 方 法 的 标 准. 1969 年,A. E. Ferdinand 和 M. E. Fisher(Bounded and Inhomogeneous Ising Models. I. Speifi-Heat Anomaly of a Finite Lattie,Phys. Rev. 185, 832 846 (1969) ) 求 得 了 有 限 尺 寸 2D Ising 模 型 在 周 期 性 边 界 条 件 下 的 严 格 解, 成 为 检 验 模 拟 结 果 的 一 个 有 效 标 准 对 于 Ising 模 型, 人 们 通 常 感 兴 趣 的 热 力 学 量 是 能 量 E = H, 序 参 量 m = 1 N i s i, 能 量 的 涨 落 H 2 H 2, 序 参 量 的 涨 落 m 2 m 2 等. 能 量 的 涨 落 与 系 统 的 比 热 成 正 比, 而 序 参 量 的 涨 落 则 正 比 于 系 统 的 磁 化 率. 与 Ising 模 型 类 似 的 还 有 Heisenberg 模 型 : H = ij (J x S i xs j x + J y S i ys j y + J z S i zs j z) (6.5) 式 中, J x, J y, J z 称 为 交 换 积 分, S = (S x, S y, S z ) 为 自 旋 矢 量. S 可 为 量 子 算 符, 也 可 取 为 经 典 量, 分 别 对 应 于 量 子 Heisenberg 模 型 和 经 典 Heisenberg 模 型. 在 这 里, 我 们 只 讨 论 经 典 问 题. 若 J x = J y = J z J, 则 上 式 成 为 各 向 同 性 的 Heisenberg 模 型 : H = J S i S j (6.6) ij

6.4 统 计 物 理 的 MONTE CARLO 模 拟, METROPLIS 方 法 143 通 过 适 当 调 整 J, 式 中 的 S 可 以 看 作 三 维 空 间 的 单 位 矢 量. 如 果 把 矢 量 S 的 维 数 降 为 二, 我 们 得 到 所 谓 的 XY 模 型 ; 当 矢 量 S 的 维 数 趋 于 无 穷 大 时, 对 应 于 球 模 型, 而 当 矢 量 S 的 维 数 趋 于 零 时, 可 用 来 描 写 高 分 子 溶 液. 在 Ising 模 型 中, 如 果 s 的 取 值 不 是 ±1, 而 可 以 取 多 个 值, 则 对 应 于 所 谓 Potts 模 型. 6.3.2 Lenard-Jones 模 型 在 高 温 下, 量 子 效 应 是 不 重 要 的, 可 以 用 经 典 统 计 物 理 来 描 述. 最 简 单 的 多 粒 子 系 统 是 惰 性 元 素 组 成 的 系 统, 除 了 氦 之 外, 其 它 惰 性 元 素 组 成 的 系 统 在 变 成 固 体 前 的 整 个 温 度 范 围 内 都 可 用 经 典 方 法 来 描 述. 惰 性 元 素 的 电 子 是 满 壳 层 的, 其 相 互 作 用 由 两 部 分 组 成, 一 部 分 是 由 原 子 的 瞬 时 偶 极 矩 导 致 的 与 距 离 如 6 次 方 成 正 比 的 吸 引 相 互 作 用, 另 一 部 分 是 来 源 于 量 子 效 应 的 强 排 斥 芯. 其 Hamiltonian 可 写 为 H = 1 2m N p 2 i + 1 2 i=1 N N u(r ij ) (6.7) i=1 j=1 式 中 第 一 项 为 动 能 项, 第 二 项 是 相 互 作 用, N 为 系 统 的 粒 子 数. r ij = r i r j 为 第 i 个 粒 子 与 第 j 个 粒 子 之 间 的 距 离. [ ( ) 12 ( ) ] 6 σ σ u(r ij ) = 4ϵ r ij r ij 为 Lennard-Jones 相 互 作 用, 其 中 ϵ 为 势 的 极 小 值, σ 是 长 度 的 单 位. 在 粒 子 问 题 中 感 兴 趣 的 热 力 学 量 通 常 是 能 量 E = H, 能 量 的 涨 落 H 2 H 2, 以 及 对 相 关 函 数 g(r), 很 多 热 力 学 量 如 压 强, 化 学 势 等 均 可 用 对 相 关 函 数 g(r) 来 表 示. g(r) 定 义 为 δ(r r ij ) 的 平 均 值. 对 于 相 互 作 用 各 向 同 性 的 系 统, 这 一 平 均 值 只 与 r 的 大 小 有 关. 实 际 的 粒 子 系 统 的 相 互 作 用 常 常 十 分 复 杂, 相 互 作 用 不 仅 与 距 离 有 关, 一 般 也 与 方 向 有 关, 除 了 二 体 相 互 作 用 外, 通 常 还 有 多 体 相 互 作 用. 6.4 统 计 物 理 的 Monte Carlo 模 拟, Metroplis 方 法 由 (6.3) 可 知, 为 了 计 算 热 力 学 量, 我 们 需 要 计 算 一 个 多 重 积 分 ( 对 于 分 立 变 量 的 系 统, 是 一 个 对 各 种 位 形 的 求 和 ), 如 果 所 考 虑 的 系 统 有 N 个 原 子, 就 需 要 计 算 3N 重 的 积 分, N 通 常 是 一 个 较 大 的 数, 例 如, 为 了 得 到 可 靠 的 结 果, N 一 般 取 100 10000 左 右. 为 了 计 算 这 样 高 重 的 积 分, 除 非 可 以 解 析 求 解, 否 则 Monte Carlo 方 法 就 是 唯 一 的 选 择.

144 第 六 章 逾 渗 和 统 计 物 理 问 题 从 第 5.3 可 知, 对 于 (6.3) 式 的 积 分, 可 以 在 积 分 区 域 内 取 一 系 列 均 匀 分 布 的 随 机 点 x 1, x 2, x 3,, x n, 则 积 分 就 成 为 B = n i=1 b(x i) exp( βh(x i )) n i=1 exp( βh(x i)) (6.8) 稍 一 分 析, 我 们 就 可 发 现 这 种 作 法 是 很 难 行 得 通 的. 由 于 指 数 因 子 的 存 在, 整 个 被 积 函 数 在 积 分 区 域 内 剧 烈 变 化, 因 而 其 方 差 是 非 常 大 的, 这 将 导 致 误 差 变 大. 实 际 情 况 比 这 还 要 糟 糕, 因 为 被 积 函 数 相 差 太 大, 对 于 有 限 位 数 的 计 算 机 来 说, 式 (6.8) 的 求 和 根 本 无 法 进 行. 根 据 5.3 的 讨 论, 为 了 减 小 方 差, 可 以 不 在 积 分 区 域 内 均 匀 取 点, 而 是 按 照 某 种 分 布 P (x) 取 点, 此 时 式 (6.8) 成 为 B = n i=1 b(x i) exp( βh(x i ))/P (x i ) n i=1 exp( βh(x i))/p (x i ) (6.9) 如 果 取 P (x i ) = exp( βh(x)) Z 为 正 则 分 布, 方 差 可 大 为 减 小, 且 式 (6.9) 简 化 成 为 (6.10) B = 1 n n b(x i ) (6.11) i=1 过 程. 现 在 的 问 题 在 于, 如 何 实 现 按 正 则 分 布 的 抽 样? 为 此, 我 们 先 简 单 介 绍 一 下 Markov 对 于 一 个 我 们 所 要 研 究 的 统 计 物 理 系 统, 它 可 以 处 于 各 种 微 观 状 态. 例 如 对 于 Ising 模 型, 给 定 了 每 个 自 旋 的 取 值 就 对 应 于 一 种 微 观 状 态, 如 果 系 统 由 N 个 自 旋 构 成, 则 总 的 微 观 状 态 数 就 有 2 N 个 ; 又 如 对 于 一 个 由 N 个 粒 子 组 成 的 系 统, 给 定 了 每 个 粒 子 的 位 置 和 动 量 就 决 定 了 一 个 状 态, 这 可 用 由 3N 维 空 间 和 3N 维 动 量 空 间 构 成 的 6N 维 相 空 间 的 一 个 点 来 表 示. 从 经 典 角 度 来 讲, 系 统 可 有 无 穷 多 个 微 观 状 态, 但 量 子 力 学 的 不 确 定 关 系 限 制 了 相 空 间 一 个 点 最 小 为 h 3N, h 为 Plank 常 数. 因 而 系 统 总 的 微 观 状 态 数 约 为 ( 4π 3 p3 V ) N 1 h 3N N! 式 中 p 为 单 个 粒 子 动 量 大 小 的 平 均 值, V 为 体 积, 分 母 上 的 N! 因 子 是 由 于 考 虑 了 粒 子 的 全 同 性. 我 们 注 意 到, 当 N 较 大 时, 系 统 的 微 观 状 态 数 是 非 常 大 的, 因 而 对 所 有 状 态 的 求 和 也 是 无 法 办 到 的. 现 在 我 们 构 造 一 个 过 程, 从 系 统 的 某 一 微 观 状 态 出 发, 并 在 过 程 的 每 一 步 转 移 到 一 个 新 的 状 态. 为 了 确 定 起 见, 下 面 用 x i 代 表 系 统 的 微 观 状 态, 如 果 从 x 0 出 发, 则 这 一 过 程 产 生 一 系 列 状 态 x 1, x 2,, x i,, 这 一 系 列 状 态 构 成 一 个 链. 所 谓 Markov 过 程, 是 指 这 样 一 种 过 程, 在 过 程 的 每 一 步 所 达 到 的 状 态 只 与 前 一 状 态 有 关, 从 一 状 态 r 到 另 一 状 态 s 的 转 移 通 过 一 转 移 概 率 w(x r x s ) 来 实 现. 由 Markov 过 程 产 生 的 一 系 列 状 态 所 构 成 的 链 称 为 Markov 链.

6.4 统 计 物 理 的 MONTE CARLO 模 拟, METROPLIS 方 法 145 为 了 实 现 按 照 正 则 分 布 抽 样, 我 们 可 以 构 造 这 样 一 个 Markov 链, 使 得 无 论 从 何 状 态 出 发, 存 在 一 个 大 数 M, 在 丢 掉 链 的 前 面 M 个 状 态 后, 链 上 其 余 的 状 态 满 足 正 则 分 布. 现 在 我 们 来 证 明, 只 要 取 w(x r x s ) 满 足 如 下 条 件, 就 可 达 到 我 们 的 要 求. P (x r )w(x r x s ) = P (x s )w(x s x r ) (6.12) 式 中 P (x) 为 正 则 分 布 (6.10). 这 一 式 子 又 称 为 细 致 平 衡 条 件. 为 了 证 明 上 式, 我 们 考 虑 很 多 个 平 行 的 Markov 链, 在 一 个 给 定 的 某 一 步, 有 N r 个 链 处 于 第 r 个 态, N s 个 链 处 于 第 s 个 态. 于 是 在 下 一 步 从 r 态 到 s 态 的 数 目 为 N r s = N r w(x r x s ) 从 s 态 到 r 态 的 数 目 为 N s r = N s w(x s x r ) 从 r 态 到 s 态 的 净 转 移 的 数 目 为 N r s = N r w(x s x r ) 若 w(x r x s ) 满 足 式 (6.12), 则 上 式 成 为 N r s = N r w(x s x r ) [ w(xr x s ) w(x s x r ) N ] s N r [ P (xs ) P (x r ) N ] s N r (6.13) (6.14) 这 是 一 个 十 分 重 要 的 结 果, 上 式 表 明, 如 果 二 个 状 态 之 间 不 满 足 正 则 分 布, 则 这 一 Markov 过 程 的 演 化 结 果 将 总 是 使 其 趋 于 满 足. 这 样, 就 证 明 了 我 们 的 论 断. 有 了 上 面 的 定 理, 就 可 以 实 现 正 则 分 布 的 抽 样 了, 我 们 只 要 选 择 一 个 满 足 细 致 平 衡 条 件 的 转 移 概 率, 产 生 一 个 Markov 链, 丢 掉 链 的 前 而 面 M 个 状 态, 并 用 其 余 状 态 进 行 计 算 即 可. 这 一 算 法 是 五 十 年 代 初 由 Metropolis 提 出 来 的, 因 此 现 在 一 般 称 为 Metropolis 算 法. 考 虑 从 r 态 到 s 态 的 转 移, 若 二 状 态 的 能 量 差 为 δh H(x s ) H(x r ) 则 当 年 Metropolis 选 择 w(x r x s ) w(x s x r ) = exp[ βδh] w(x r x s ) = { exp[ βδh] 如 果 δh > 0 1 如 果 δh 0 (6.15) 目 前 常 用 的 另 一 种 选 择 是 w(x r x s ) = 1 2 [ ( βδh 1 tanh 2 )] (6.16)

146 第 六 章 逾 渗 和 统 计 物 理 问 题 应 当 注 意 的 是, w 的 选 择 并 不 唯 一, 只 要 满 足 (6.12) 的 要 求 即 可, 但 不 同 的 w 收 敛 速 度 往 往 差 别 很 大, 如 何 选 择 合 适 的 w 以 达 到 尽 可 能 快 的 收 敛 速 度 和 尽 可 能 高 的 计 算 精 度 仍 然 是 当 前 Monte Carlo 算 法 研 究 的 前 沿 课 题 之 一. 6.5 Ising 模 型 的 Monte Carlo 模 拟 这 一 节 以 Ising 模 型 为 例, 介 绍 分 立 变 量 模 型 Monte Carlo 模 拟 方 法. 为 了 模 拟 Ising 模 型, 首 先 要 确 定 一 个 晶 格 和 晶 格 的 尺 寸. 例 如, 我 们 可 以 取 一 个 简 单 立 方 格 子, 取 三 个 方 向 的 大 小 均 为 L; 其 次, 我 们 要 指 定 一 个 初 始 位 形, 一 般 来 说, 如 果 在 临 界 温 度 之 下 进 行 计 算, 通 常 取 所 有 自 旋 沿 同 一 方 向 为 初 始 位 形, 而 如 果 在 临 界 温 度 之 上 进 行 计 算, 通 常 取 随 机 分 布 的 自 旋 取 向 为 初 始 位 形, 也 可 取 所 有 自 旋 沿 同 一 方 向 为 初 始 位 形. 这 是 由 于 在 临 界 温 度 之 下 的 平 衡 位 形 是 有 序 的, 若 从 一 无 序 位 形 出 发, 系 统 在 演 变 中 将 形 成 若 干 个 有 序 的 区 域, 相 邻 区 域 的 边 界 上 将 出 现 畴 壁. 当 然, 如 果 计 算 的 目 的 是 为 了 研 究 畴 壁, 则 必 须 从 一 自 旋 取 向 为 随 机 分 布 的 初 始 位 形 出 发 ; 第 三 件 事 是 要 确 定 适 当 的 边 界 条 件, 因 为 计 算 总 是 对 有 限 大 小 的 系 统 进 行 的, 选 择 合 适 的 边 界 条 件 对 于 得 到 好 的 结 果 是 十 分 重 要 的, 如 果 我 们 感 兴 趣 的 是 系 统 的 体 性 质, 则 应 尽 量 消 除 边 界 的 影 响, 此 时 一 般 取 周 期 性 边 界 条 件, 即 在 每 个 方 向 上, 取 s L+1 s 1. 然 而, 周 期 性 边 界 条 件 对 于 写 并 行 计 算 的 程 序 不 太 方 便, 而 并 行 计 算 是 当 前 计 算 机 发 展 的 一 个 重 要 方 向, 因 此, 另 一 种 称 为 螺 旋 周 期 边 界 条 件 得 到 了 较 多 的 应 用, 以 二 维 正 方 格 子 为 例, 这 种 边 界 条 件 是 让 每 一 行 的 最 后 一 个 自 旋 与 其 下 一 行 的 第 一 个 自 旋 相 同 ; 最 后 一 个 需 要 确 定 的 问 题 是 选 取 产 生 一 系 列 状 态 的 方 式, 一 般 来 说, Markov 链 中 的 每 一 个 状 态 与 其 前 一 个 状 态 相 差 应 较 小, 因 为 如 果 两 个 状 态 相 差 过 大, 其 能 量 差 亦 较 大, 从 而 转 移 概 率 太 小, 计 算 很 容 易 陷 入 相 空 间 中 初 态 附 近 一 个 很 小 的 子 空 间 内, 通 常 有 两 种 作 法, 一 种 是 一 次 翻 转 一 个 自 旋, 这 是 一 种 不 保 持 总 自 旋 守 恒 的 计 算, 另 一 种 是 每 次 交 换 一 对 相 邻 自 旋, 这 种 计 算 将 保 持 总 自 旋 守 恒. 有 了 这 些 讨 论, 我 们 给 出 一 个 算 法 如 下 : 重 复 如 下 步 骤 多 次 : 1. 选 择 一 个 格 点 i, 其 自 旋 将 考 虑 作 翻 转 s i s i. 2. 计 算 与 此 翻 转 相 联 系 的 能 量 变 化 δh. 3. 用 式 (6.15) 计 算 这 一 翻 转 的 转 移 概 率 w. 4. 产 生 一 在 [0,1] 之 间 均 匀 分 布 的 随 机 数 z. 5. 如 果 z < w, 则 翻 转 该 自 旋, 否 则, 保 持 不 变. 不 论 何 种 情 况, 其 结 果 都 作 为 一 新 的 状 态.

6.6 经 典 统 计 物 理 复 习 147 6. 分 析 该 状 态, 为 计 算 平 均 值 收 集 数 据. 计 算 平 均 值, 输 出 结 果. 在 具 体 给 出 这 一 算 法 的 实 现 之 前, 我 们 先 作 一 些 讨 论, 关 于 每 一 步 要 翻 转 的 格 点 i 的 选 择, 一 般 来 说 可 有 很 多 种 不 同 的 方 法, 最 常 用 的 有 两 种, 一 种 是 顺 序 取 每 一 个 格 点, 另 一 种 是 随 机 的 选 取. 在 随 机 选 取 时, 应 使 每 个 格 点 平 均 说 来 被 访 问 的 次 数 相 同, 通 常 每 个 格 点 被 访 问 一 次 称 为 一 个 Monte Carlo 步 (Monte Carlo Step or MCS), 一 次 有 价 值 的 计 算 通 常 需 要 做 几 千 或 几 万 个 MCS. 有 时, 为 了 得 到 高 精 度 的 结 果, 甚 至 要 作 百 万 MCS 以 上 的 计 算. 由 于 每 一 个 状 态 与 其 前 导 状 态 最 多 相 差 一 个 自 旋 翻 转, 因 而 其 物 理 性 质 具 有 很 强 的 关 联. 这 样, 上 述 过 程 的 第 6 步 不 必 对 每 次 自 旋 都 进 行, 而 是 每 间 隔 一 个 或 数 个 MCS( 视 问 题 的 关 联 时 间 的 大 小 ) 进 行 一 次. 另 外, 如 在 前 面 已 经 指 出 过 的, 前 面 若 干 个 MCS 应 舍 弃. 计 算 能 量 差 是 最 费 时 的 工 作, 对 于 Ising 模 型, 由 于 能 量 差 只 能 取 很 少 几 个 数 值, 我 们 可 以 予 先 算 好 存 起 来 以 节 省 计 算 量. 这 一 技 巧 不 仅 适 用 于 Ising 模 型, 也 适 用 于 其 它 分 立 变 量 的 模 型 如 Potts 模 型 等. 下 面 我 们 以 三 维 简 单 立 方 格 子 为 例 来 给 出 算 法 的 实 现. 取 一 个 L L L 的 简 单 立 方 格 子, 每 个 格 点 放 一 个 自 旋, 可 取 值 ±1. 对 于 一 个 给 定 的 自 旋, 共 有 6 个 最 近 邻 格 点, 因 此, 对 其 最 近 邻 的 求 和 只 取 7 个 可 能 的 值, 也 就 是 说 s i = { 6, 4, 2, 0, 2, 4, 6} (6.17) <ij> 对 应 于 s i 的 6 个 近 邻 格 点 中 全 与 s i 反 向, 5 个 反 向,, 1 个 反 向, 全 不 反 向. 将 (6.17) 中 的 数 加 7, 可 得 到 {1, 3, 5, 7, 9, 11, 13}, 这 样, 前 面 7 个 数 就 代 表 了 一 格 点 周 围 的 近 邻 自 旋 相 对 于 该 格 点 取 向 的 全 部 信 息. 如 果 我 们 再 规 定 数 的 正 负 号 与 自 旋 的 向 上 和 向 下 相 对 应, 则 {±1, ±3, ±5, ±7, ±9, ±11, ±13} 可 代 表 无 外 场 时 一 个 格 点 的 自 旋 及 其 与 其 近 邻 自 旋 相 对 取 向 的 全 部 信 息. 为 了 计 及 自 旋 与 外 场 的 相 对 关 系, 我 们 利 用 前 面 数 之 间 的 空 档, 例 如, 可 令 上 面 的 数 代 表 与 外 场 平 行 的 情 形, 则 可 取 每 一 数 的 绝 对 值 大 一 的 数 代 表 相 同 位 形 但 自 旋 与 外 场 反 平 行 的 情 形. 对 于 所 有 {±1, ±2, ± 14} 共 28 个 数, 实 际 使 用 的 只 有 一 半, 因 为 若 外 场 沿 自 旋 向 下, 则 负 奇 数 代 表 自 旋 向 下, 正 偶 数 代 表 自 旋 向 上. 6.6 经 典 统 计 物 理 复 习 Statistial mehanis is the studies of many partile systems under external onditions, the number of partiles is typially 10 23.The basis of statistial mehanis is the ensemble theory, there are three very important ensembles, the miro-anonial, anonial and grand anonial,

148 第 六 章 逾 渗 和 统 计 物 理 问 题 orrespond to fixed total energy, temperature and hemial potential respetively, for eah ensemble there exist a distribution funtion P (X) from it the average of physial quantities are alulated by X A (X) P (X) A = X P (X). Where X represents points in the phase spae and = X ( ) 3N 1 d 3 r 1 d 3 r 2 d 3 r N h V d 3 p 1 d 3 p 2 d 3 p N is the summation over the phase spae. 6.6.1 The miro anonial ensemble(nve) In this ensemble the distribution is given by P (X) = δ (H (X) E). The total number of states with energy E is Ω (N, V, E) = 1 δ (H (X) E). N! X The entropy is defined as S (N, V, E) = k B ln Ω (N, V, E). Thermodynami quantities are obtained by ( ) ( ) 1 S S T = µ = T E N,V N V,E P = T ( ) S. V N,E 6.6.2 The anonial ensemble(nvt) In this ensemble the energy is allowed to vary but the system is in ontat with a heat bath at temperature T. The distribution funtion is The anonial partition funtion is P (X) = exp Z (N, V, T ) = 1 N! = E [ H (X) ]. k B T X [ exp H (X) ] k B T e βe Ω (N, V, E).

6.6 经 典 统 计 物 理 复 习 149 Where β = 1/k B T, The free energy F (N, V, T ) = k B T ln Z (N, V, T ), and µ = ( ) F N V,T ( ) F P = V N,T ( ) F S =. T N,V 6.6.3 The NPT ensemble(npt) Here the pressure is fixed while volume is allowed to vary P (V, X) = exp [ β (P V + H (X))]. The partition funtion Q (N, P, T ) = = dv 1 exp [ β (P V + H (X))] N! X dv exp [ βp V ] Z (N, V, T ). Gibbs free energy G (N, P, T ) = k B T ln Q (N, P, T ), with µ = ( ) G N p,t V = ( ) G P N,T ( ) F S =. T N,P 6.6.4 The grand anonial ensemble( µvt) The partile number is not fixed while the hemial potential is fixed, P (N, X) = exp [ β (H (X) µn)], the grand partition funtion Z G (µ, V, T ) = N = N 1 N! exp [ β (H (X) µn)] X exp [βµn] Z (N, V, T ), the grand anonial potential Ω G (µ, V, T ) = k B T ln Z G (µ, V, T ), with N = ( ) ΩG µ V,T P = ( ) ΩG P V,T S = ( ) ΩG. T µ,v

150 第 六 章 逾 渗 和 统 计 物 理 问 题 6.6.5 Thermodynamial relations There are relations between thermodynami potentials F = E T S, G = F + P V = Nµ, Ω G = F µn = P V. There are two kinds of physial quantities, one is the mehanial quantities, whih an be obtained by average with respet to distributions, the typial one is H (X) : E = H (X). The other is thermal quantities whih an only be obtained through the derivatives of the thermodynami potentials, the typial one is hemial potential µ and free energy itself. This kind of quantities are diffiult to alulate in simulations and often obtained through integration of mehani quantities 6.6.6 Correlation funtions F (T, V 1 ) = F (T, V 0 ) F (T 1, V ) = F (T 0, V ) T 1 T 0 V1 V 0 P (T, V ) dv ; T1 E (T, V ) T 0 T 2 A very important quantity in statistial mehanis is the pair orrelation funtion g (r, r ), defined as where g (r, r ) = V 2 Z R = It may also be written as Z R V V g (r, r ) = dt. d 3 r 3 d 3 r 4 d 3 r N exp [ βv N (r, r, r 3,, r N )], d 3 r 1 d 3 r 2 d 3 r N exp [ βv N (r 1, r 2, r 3,, r N )]. V 2 δ (r r i ) δ (r r j ). N (N 1) i,j;i j For a homogeneous system the pair orrelation funtion depends only on the distane between r and r. In this ase we denote it as g (r). The g (r, r ) is proportional to the probability that given a partile at point r and find another partile at point r. At large distanes g (r) tends to 1, we may define the total orrelation funtion h (r) = g (r) 1.

6.6 经 典 统 计 物 理 复 习 151 The Fourier transform of the above funtion gives the stati struture funtion S (k) = 1 + n g (r) e ik r d 3 r. The struture funtion is defined as the orrelation funtion of Fourier omponent of density flutuations S (k) = 1 N n k n k = 1 e ik (r i r j ) + 1 N ij;i j = d 3 rd 3 r e ik (r r ) 1 δ (r r i ) δ (r r j ) + 1 N ij;i j = N 1 d 3 rd 3 r e ik (r r ) g(r r ) + 1 V 2 = 1 + n d 3 rg(r)e ik r = 1 + n d 3 rh(r)e ik r + nδ (k). The struture funtion an be measured diretly by sattering experiments and an also be alulated by simulations. Many physial quantities an be expressed in terms of the pair orrelation funtions, for example the energy in NVT ensemble is E = 3 2 Nk BT + N 2 n d 3 r V (r) g (r). The pressure is βp n = 1 β N ^r i i V N 3N i=1 = 1 β 6 n d 3 r ^r V (r) g (r). The ompressibility ( ) n k B T = 1 + n d 3 r (g (r) 1). p T This expression an be derived from the flutuations of partile numbers N 2 N 2 = k B T ( N µ ) T,V = k B T N 2 V 2 Sine n = N, dv = V 2 dn, so V N ( ) N 2 n N 2 = N k B T. P T ( V P ). T, N

152 第 六 章 逾 渗 和 统 计 物 理 问 题 On the other hand, it an be proved that ( N 2 N 2 = N 1 + n ) d 3 r (g (r) 1). We have the final results. 6.6.7 Time orrelation funtion and transport oeffiients The time orrelation funtion: Consider the orrelations of two physial quantities at different times, C AB (t, t ) = A(t)B(t ). For systems at equilibrium the time orrelation funtion is a funtion of the time differene only and an be written as C AB (t) = A(t)B(0). One example of time orrelation funtion is the veloity auto orrelation funtion of the ith partile C vv (t) = v i (t) v i (0). Transport oeffiients are defined in terms of the response of a system to a perturbation. For example, the diffusion oeffiient relates the partile flux to a onentration gradient, while the shear visosity is a measure of the shear stress indued by an applied veloity gradient. By introduing suh perturbations into the Hamiltonian, or diretly into the equations of motion, their effet on the distribution funtion P may be alulated. Generally, a time-dependent, non-equilibrium distribution P eq + δp (t) is produed. Hene, any non-equilibrium ensemble average may be alulated. By retaining the linear terms in the perturbation and omparing the equation for the response with a marosopi transport equation, we may identify the transport oeffiients. This is usually the infinite time integral of an equilibrium time orrelation funtion of the form γ = 0 dt A (t) A (0) where γ is the transport oeffiient, and A is a physial variable appearing in the perturbation Hamiltonian. There is also an Einstein relation assoiated with this kind of expression (A (t) A (0)) 2 = 2γt whih holds for large t, (t τ, where τ is the orrelation time of A). The diffusion oeffiient D is given by

6.7 液 体 模 型 的 MONTE CARLO 模 拟 153 and the Einstein relation is D = 1 3 0 dt v i (t) v i (0) 1 (ri (t) r i (0)) 2 = 2Dt. 3 Where r i (t) and v i (t) are the position and veloity of the ith partile. The shear visosity η is given by η = V k B T 0 dt P αβ (t) P αβ (0) or Here V k B T Q αβ (t) Q αβ (0) = 2ηt. P αβ = 1 ( ) piα p iβ + r iα f iβ V Q αβ = 1 V i m i r iα p iβ. i The negative of P αβ is often alled stress tensor. 6.7 液 体 模 型 的 Monte Carlo 模 拟 相 对 于 气 体 和 固 体, 液 体 是 最 复 杂 的 一 相 描 写 液 体 的 最 简 单 的 模 型 是 硬 球 模 型, 这 个 模 型 把 每 个 分 子 看 成 直 径 为 σ 的 硬 球, 并 假 定 除 此 之 外 没 有 其 它 相 互 作 用 即 便 是 这 样 一 个 简 单 的 模 型, 也 没 有 找 到 它 的 精 确 解 尽 管 如 此, 通 过 数 十 年 来 大 量 的 研 究, 我 们 对 这 个 模 型 已 经 有 了 非 常 多 的 了 解 硬 球 系 统 的 相 互 作 用 势 只 有 0 或 两 个 可 能 值, 因 此, 模 拟 计 算 非 常 简 单 另 一 个 稍 微 实 际 一 点 的 模 型 是 Lennard-Jones 模 型, 这 个 模 型 假 定 分 子 是 球 形 的, 其 二 体 相 互 作 用 为 : [ (σ ) 12 ( σ ) ] 6 V LJ (r) = ε r r 这 一 模 型 由 两 部 分 构 成, 一 部 分 是 吸 引 相 互 作 用, 与 距 离 的 6 次 方 成 反 比, 来 自 于 中 性 原 子 的 涨 落 偶 极 矩 的 相 互 作 用, 是 一 个 纯 量 子 力 学 效 应, 可 以 通 过 二 阶 微 扰 得 到 ; 另 一 部 分 是 与 距 离 的 12 次 方 成 反 比 的 排 斥 相 互 作 用, 这 一 部 分 主 要 来 自 于 泡 利 不 相 容 原 理, 但 并 没 有 很 好 的 量 子 力 学 计 算, 基 本 上 是 唯 像 引 入 这 一 节 主 要 介 绍 这 两 个 模 型 的 模 拟

154 第 六 章 逾 渗 和 统 计 物 理 问 题 6.7.1 Monte Carlo Simulation of The Lenard -Jones Model Lets onsider the Lenard -Jones model of fluids, we have already met this model before. In this model one onsider a olletion of strutureless partiles interating through the pairwise potentials, Its interation energy is V = [ ( ) 12 ( ) ] 6 σ σ 4ε. (6.18) i,j r ij where r ij = r i r j, σ and ε are two parameters, the summation is over all the pairs of partiles. The onfiguration of the system is speified by the set of all the partile positions. The Monte Carlo simulation by Metropolis algorithm is given by the following steps 1. Initialize the partiles on a FCC lattie. 2. Choose a partile k at random and propose to move: r k = r k + δr k, where δx k = (rand () 0.5) δy k = (rand () 0.5) δz k = (rand () 0.5). (6.19) Here is a pre-speified value and adjusted so that the aeptane ratio(see bellow) will be roughly 0.5(not always true), rand () is any good random number generator generates uniformly distributed random number between 0 and 1. 3. Calulate the energy inrement E = V ({r }) V ({r}). (6.20) r ij 4. Aept the proposed move as the new state if a uniformly distributed random number (between 0 and 1) is less than exp ( β E) ; retain the old onfiguration as the new onfiguration otherwise. 5. Go to 2. In the Monte Carlo simulations using the Metropolis algorithm, the next onfiguration depends on the previous one. Due to this orrelation between Monte Carlo steps, the formula for the statistial error ε = σ N underestimates the true error, and it should be replaed by 1 + 2τ ε = σ N. (6.21)

6.7 液 体 模 型 的 MONTE CARLO 模 拟 155 The quantity τ is alled orrelation time, whih is roughly the number of Monte Carlo steps needed to generate independent onfigurations. We an ompute the orrelation time τ as follows: define the time-dependent orrelation funtion f (t) = A (t ) A (t + t) A 2 A 2 A 2, (6.22) where time t is measured in terms of Monte Carlo steps. A (t ) is the quantity at steps t whose error we want to estimate. The angular brakets denote average over Monte Carlo steps. The orrelation time is defined by τ = f(t). (6.23) t=1 Just as many physial quantities beome singular at the ritial point, the orrelation time is also beomes singular at the ritial point. On an infinite lattie it diverges with a power law τ T T νz. (6.24) Here ν is the orrelation length exponent and z is alled dynami ritial exponent. This phenomena that the orrelation time beomes very large is alled ritial slowing down. It not only happens in omputer simulations but also happens in real systems. On a finite system of linear size L, the orrelation time will not go to infinity, but it will grow with size as Substituting this result into the error formula, we find that τ L z, at T = T. (6.25) ε σlz/2 N (6.26) for large system near T. For the two dimensional Ising model with Metropolis algorithm, z = 2.1, we see typially that inreasing the size leads to a large error in the quantity to be alulated. The Metropolis algorithm makes hanges loally one site at a time, This is the ause of the ritial slowing down. The Swendsen-Wang algorithm and its extensions solved this problem by the luster methods. In 1987, Swendsen and Wang proposed a multi-luster algorithm to solve the problem of the ritial slowing down, their algorithm redued the dynamial exponent z from 2.1 to around 0 for 2D Ising model. The algorithm goes: 1. Start from some arbitrary state {s}. 2. Go through eah nearest neighbor onnetion of the lattie, reate a bond between the two neighboring sites i and j with probability p = 1 exp ( 2βJ) when the two spins are the same. Never put a bond between the sites if the spin values are different.

156 第 六 章 逾 渗 和 统 计 物 理 问 题 3. Identify lusters as a set of sites onneted by bonds, or isolated sites. Two sites are said to be in the same luster if there is a onneted path of bonds joining them. Every site has to belong to one of the lusters. After the lusters are found, eah luster is assigned a new Ising spin hosen with equal probability between +1 and 1. The old spin values now an be forgotten. 4. One MCS finished. Go to step 2 for the next step. The performane of the algorithm in terms orrelation time in omparison with Metropolis algorithm is remarkable. For two dimensional Ising model the dynami exponent is less than 0.3, or possibly 0 (but τ ln L ). In three dimensional it is about 0.5, At and above four dimensions it is 1. In 1989 Wollf proposed a algorithm based on the Swendsen-Wang algorithm, in stead of generate many lusters eah time, Wollf proposed that one piks a site at random, and then generate one single luster by growing a luster from the seed. The neighbors of the seed will belong to the luster if the spins are parallel to the seed and a random number is less than p = 1 exp ( 2βJ). Neighbors of eah new site are tested for membership. The reursive proess will eventually terminate. The spins in the luster are turned over with probability 1. Wollf algorithm is more effiient than the multi-luster Swendsen-Wang algorithm and easier to implement. There are many ways to extend the luster method both to Ising like models and ontinuous models, it seems for Ising like models Wollf algorithm is still the best hoie. 6.7.2 自 由 能 计 算 The alulation of free energy, entropy or hemial potential is muh more diffiult than the alulation of the averages of mehanial quantities in Monte Carlo methods. We give here a very brief disussion of the alulation of free energy by Monte Carlo simulations. The most ommon way is the thermodynamial integration method, whih was disussed in the ontext of moleular dynamis simulations. We give here the Bennett method. In this method one alulates the differene of two systems desribed by potentials U 0 and U 1 respetively. The free energy is β F = βf 1 βf 0 = ln Z 1 Z 0. (6.27)

6.7 液 体 模 型 的 MONTE CARLO 模 拟 157 Where Z 1 = Z 0 = exp ( βu 1 (x)) dx, exp ( βu 0 (x)) dx. (6.28) are partition funtions for potential U 1 and U 0. The ratio may be transformed as Z 1 = Z 1 W (x) exp { β [U0 (x) + U 1 (x)]} dx Z 0 Z 0 W (x) exp { β [U0 (x) + U 1 (x)]} dx = W exp [ βu 1] 0 W exp [ βu 0 ] 1. (6.29) Where the subsript 0 and 1 means average with respet to anonial distributions of potential U 0 and U 1. The W is an arbitrary funtion. Now we hoose ( Z1 W = onst. exp [ βu 0 ] + Z ) 0 exp [ βu 1 ], (6.30) n 1 n 0 where n 0 and n 1 are two arbitrary onstant, we have ( ) 1 Z 1 = Z 1 + Z 1n 0 Z 1n 0 n 1 exp [β (U 1 U 0 )] 0 Z 0 Z 0 n ( ) 1 1 1 + Z 0n 1 Z 1 n 0 exp [β (U 0 U 1 )] If we set then we get 0 1. (6.31) Z 1 n 0 Z 0 n 1 = e C (6.32) Z 1 Z 0 = e C f (βu 1 βu 0 + C) 0 f (βu 0 βu 1 C) 1. (6.33) where f (x) = (1 + e x ) 1 is the Fermi funtion(there is nothing to do with Fermi distribution!). So that the free energy differene is 6.7.3 王 -Landau 方 法 及 其 它 F = ln Z 1 Z 0 = ln f (βu 1 βu 0 + C) 0 f (βu 0 βu 1 C) 1 C. (6.34) 与 自 由 能 计 算 相 关 的 的 是 态 密 度 的 计 算, 在 统 计 物 理 中, 态 密 度 定 义 为 单 位 能 量 间 隔 内 的 微 观 状 态 数, 通 常 记 为 Ω(E). 如 果 已 知 一 个 系 统 的 态 密 度, 那 么, 配 分 函 数 可 以 写 成 Q(β) = 对 Q 求 对 数 并 乘 以 kt 就 得 到 了 自 由 能 Ω(E)e βe de

158 第 六 章 逾 渗 和 统 计 物 理 问 题 1987 年,Ferrenberg 和 Swendsen (Physial Review Letters, 61,2635,1988) 提 出 了 一 个 直 方 图 算 法, 实 际 上 用 到 了 态 密 度 利 用 这 一 方 法, 可 以 通 过 很 少 几 个 点 的 模 拟 而 得 到 整 个 温 区 的 结 果 其 基 本 思 路 非 常 简 单 : 注 意 到 给 定 温 度 下 系 统 按 照 能 量 的 分 布 是 P (β, E) = Ω(E)e βe Q(β) 对 于 一 个 确 定 的 温 度, 由 Metropolis 算 法, 可 以 得 到 这 个 分 布 的 直 方 图 直 方 图 H(β, E) 与 P (β, E) 成 正 比, 或 H(β, E) Ω(E)e βe 于 是 Ω(E) H(β, E)e βe 对 于 另 一 个 温 度 β, 其 分 布 可 由 上 述 Ω(E) 得 到 P (β, E) = Ω(E)e β E Q(β ) = H(β, E)e (β β )E de H(β, E)e (β β )E 这 样, 在 一 个 温 度 下 的 模 拟 结 果, 原 则 上 可 以 用 来 计 算 所 有 温 度 的 平 均 值 而 上 式 的 分 母, 则 可 以 用 来 估 算 配 分 函 数 从 而 估 算 自 由 能 ( 相 差 一 个 任 意 常 数 ) 这 一 方 法 取 得 了 巨 大 成 功, 大 致 可 以 把 Monte Carlo 的 计 算 时 间 减 少 一 个 量 级, 同 时 也 提 供 了 计 算 自 由 能 的 思 路 和 方 法 另 一 个 直 接 针 对 态 密 度 的 计 算 的 方 法 是 由 Berg 在 1992 年 提 出 来 的 多 正 则 系 综 方 法 这 是 一 个 迭 代 算 法, 基 于 如 下 观 察 设 系 统 的 态 密 度 为 Ω(E), 现 在, 如 果 我 们 已 经 知 道 了 态 密 度, 并 利 用 1 Ω(E) 取 样 做 模 拟 计 算, 那 么 我 们 将 得 到 一 个 平 的 分 布, 也 就 是 说 模 拟 结 果 对 能 量 做 直 方 图 H(E), 将 得 到 一 个 常 数 Berg 算 法 的 思 路 是, 先 假 设 一 个 态 密 度 Ω(E), 然 后 由 此 态 密 度 的 导 数 取 样, 得 到 直 方 图 H(E), 然 后, 把 态 密 度 变 为 Ω(E)/H(E), 开 始 一 轮 新 的 迭 代, 知 道 直 方 图 变 平 ( 在 给 定 的 精 度 下 ), 最 后 得 到 的 Ω(E) 就 是 所 求 的 态 密 度 这 一 方 法 思 路 很 清 楚, 但 实 现 起 来 非 常 困 难 首 先, 方 法 本 身 的 稳 定 性 不 好, 对 于 一 个 比 较 任 意 的 初 始 态 密 度, 很 难 得 到 收 敛 的 结 果 其 次, 需 要 认 真 处 理 能 量 的 上 界 和 下 界 处 的 问 题, 在 这 些 地 方, 态 密 度 很 小, 容 易 出 问 题 2005 年 由 王 福 高 和 Landau 提 出 的 算 法, 克 服 了 Berg 算 法 的 缺 点, 这 一 算 法 的 基 本 思 路 与 Berg 的 思 路 相 同, 但 采 取 了 一 个 不 满 足 细 致 平 衡 条 件 的 做 法 在 模 拟 的 每 一 步 都 修 正 态 密 度 其 基 本 步 骤 是 :1, 给 定 一 个 初 始 态 密 度 Ω(E), 从 一 个 初 始 位 形 ( 对 应 于 一 个 确 定 能 量 ) 出 发 ;2, 按 照 1 Ω (E) 取 样, 前 进 一 步, 到 达 新 的 位 形 和 对 应 能 量 ;3, 立 刻 把 这 个 新 的 能 量 对 应 的 态 密 度 乘 以 一 个 放 大 因 子, 继 续 计 算 在 计 算 中 同 时 统 计 直 方 图, 当 直 方 图 基 本 变 平 时, 缩 小 放 大 因 子, 并 把 所 得 态 密 度 作 为 新 的 初 始 态 密 度, 开

6.8 分 子 动 力 学 方 法 159 始 计 算 当 放 大 因 子 缩 的 足 够 小, 且 直 方 图 在 精 度 要 求 下 变 平 时, 得 到 最 终 的 态 密 度 计 算 结 果 这 个 方 法 的 稳 定 性 非 常 好, 几 乎 对 于 所 有 模 型, 任 何 初 始 态 密 度 都 能 得 到 收 敛 的 结 果 这 个 算 法 的 发 现, 被 看 成 是 Monte Carlo 历 史 上 具 有 里 程 碑 意 义 的 事 件 但 是, 这 个 算 法 也 有 比 较 严 重 的 问 题, 虽 然 能 够 保 证 收 敛 且 计 算 非 常 稳 定, 但 收 敛 的 精 度 似 乎 有 一 个 极 限, 到 达 此 极 限 后, 似 乎 无 法 通 过 加 大 计 算 量 来 提 高 精 度 另 外, 一 个 显 而 易 见 的 问 题 是, 即 便 以 精 确 态 密 度 作 为 初 始 态 密 度, 一 旦 开 始 计 算, 也 开 始 引 进 误 差, 最 终 得 到 的 是 有 一 定 误 差 的 态 密 度 6.8 分 子 动 力 学 方 法 6.8.1 General proedure of MD (NVE ensemble) Now I desribe the general proedure of the MD in the ontext of the NVE ensemble. A moleular dynamis simulation inludes the following basi steps: 1. Initialize; 2. Start simulation and let the system reah equilibrium; 3. Continue simulation and store results. Now we disuss these steps in detail. Initialize: The number of partiles and interations between partiles are speified; The simulation box is setup, the total energy of the system is speified, usually temperature is more important than energy so it an be an input parameter, we will see how an we tune the system to a desired temperature. We assign to eah partile its position and momentum. In many ases we assign partiles in a FCC lattie, whih is a losed paking struture and usually the ground state of many systems. If we use ubi unit ell and ube box then the number of partiles per unit ell is 4, and the total number of partiles are 4M 3, M = 1, 2, 3,. That is we may simulation systems with total number of partiles N = 108, 256, 500, 864,. The veloities of partiles are draw from a Maxwell distribution with the speified temperature. This is aomplished by drawing the three omponents of the veloity from the Gaussian distribution, for example, the distribution of the x-omponent is [ ] exp mv2 x. 2k B T

160 第 六 章 逾 渗 和 统 计 物 理 问 题 Draw numbers from a Gaussian distribution may be done in this way, onsider the distribution [ ] [ ] [ P (v x, v y ) exp mv2 x exp mv2 y = exp m ( )] vx 2 + vy 2. 2k B T 2k B T 2k B T Then P (v x, v y )dv x dv y = P (v)vdvdϕ, where v 2 = v 2 x + v 2 y and ] P (v) exp [ mv2. 2k B T So the distribution of v x and v y may be obtained from v and ϕ, whih has distribution v exp and uniform in the interval [0, 2π]. Sine ] v exp [ mv2 dv = 2k BT 2k B T m ] [ exp mv2 + C. 2k B T [ ] mv2 2k B T If we draw random numbers x uniformly distributed in the interval [0, 1], then v = 2k BT ln (x) m [ ] will has distribution v exp mv2 2k B, now if we draw random numbers ϕ uniformly distributed T in the interval [0, 2π]. We an get two random numbers v x = v os ϕ, v y = v sin ϕ satisfy the Gaussian distribution. Another method of draw random numbers in the Gaussian distribution is through the following empirial methods. Consider the distribution ] exp [ x2. 2 Aording to the enter limit theorem, if we draw uniform random numbers r i in interval [0, 1], and define a variable ξ = 1 n n i=1 r i 1 2, 1 12n when n the distribution of ξ is the Gaussian distribution exp [ ] of ξ = ξσ is exp ξ 2. If we take n = 12, we get 2σ 2 12 ξ = r i 6. i=1 [ ] ξ2. And the distribution 2 That is we may generate eah random number distributed aording to Gaussian from 12 random numbers in an uniform distribution.

6.8 分 子 动 力 学 方 法 161 Homework: 1, Write programs for the two methods to generate Guassian random numbers. 2, Compare the two methods for effiieny and quality. After the generation of the veloity of eah partile, we may shift the veloity so that the total momentum is zero Start simulation and let the system reah equilibrium: The system we prepared in the way desribed above are not in the equilibrium state, we now use an algorithm to integrate it. There are many methods used in moleular dynamis simulations, we use a very simple one to desribe the onepts here and desribe the algorithms in the leture follows. The standard Verlet algorithm is the first suessful method in history and still wide used today in different forms. It is r (t + h) = 2r (t) r (t h) + h 2 F (r (t)) /m. Where r (t) is the position of partile at time t = nh. To start the integration we need r (h), given by r (h) = r (0) + hv (0) + h 2 F (r (0)) /m. During the integration, the veloity an be alulated by v (t) = r (t + h) r (t h). 2h Variations of this method are v (t + h/2) = v (t h/2) + hf (r (t)) r (t + h) = r (t) + hv (t + h/2). And r (t + h) = r (t) + hv (t) + h 2 F (r (t)) v (t + h) = F (r (t + h)) + F (r (t)) v (t) + h. 2 Both of these variations are mathematially equivalent to the original one but more stable under finite preision arithmeti. The PBC are usually treated in two ways, one is the minimum image method, that is, in eah diretion, we only sum the fore due to partiles whih is not farther than L/2 in that diretion. The other is the ut off method, one simply ut the interation at a distane r utoff and

162 第 六 章 逾 渗 和 统 计 物 理 问 题 neglet interations beyond this distane. In this method the disontinuity at r utoff may ause inauraies in the integration, this may be solved by shift the potential in the way as V sh (r) = V (r) V (r utoff ). For long range interations like eletrostati interations, speial method should be used, we will disuss it latter. The temperature of the system is given by the equal partition theorem, that is the average of kineti energy of eah degree of freedom is half k B T, that is 3 2 k BT D = 1 N 1 N i=1 1 2 mv2 i. The N 1 is due to the onservation of the total momentum redue the degree of freedom by 3. To reah the desired temperature we may sale the veloity at every few steps of integration and the saling fator λ is hosen as λ = v i (t) λv i (t), (N 1) 3k B T N. i=1 mv2 i Continue simulation and store results: After the system reahes equilibrium the integration ontinue in the same way as above without saling of veloity. The data are stored or aumulated for the alulating physial properties. The stati properties of physial quantity A is given by a time average Ā = 1 n A ν, n n 0 ν>n 0 here A ν is the value of A at νth time step. Usually the data stored in eah step inlude: 1, the kineti energy N 1 i=1 2 mv2 i ; 2, the potential energy U = i,j V (r ij) ; 3, the virial i,j r ij V (r ij) r ij. We also needs data to alulate the pair orrelation funtion, this is done by divide the interval [0, r max ] into sub intervals [i r, (i + 1) r], at eah stage of updating, add the number of pairs with separation in the interval to an array n (i) and find the average value after simulation, the pair orrelation funtion is given by Tail orretions: g (r) = V n (r) N (N 1) /2 4πr 2 r.

6.8 分 子 动 力 学 方 法 163 U = U utoff + 4π N r 2 drv (r) g (r) V r utoff P k B T = 1 1 V r ij N 3Nk B T r ij 6k B T V i,j utoff r utoff r 3 dr V r g (r). The pair orrelation funtion in the above expression may be taken to be the asymptoti value g (r) = 1. 6.8.2 Simulation of Lennard-Jones liquids Consider the system of partiles interat by the potential [ (σ ) 12 ( σ ) ] 6 V (r) = 4ε r r whih are good approximation for inert gases. Some values of ε and σ are Ar Kr Xe CH 4 N 2 CO 2 C 2 H 4 τ = ε/k B (K) 120 165 230 143 85 216 202 σ (A) 3.43 3.72 4.05 3.77 3.72 3.88 4.26 We may use ε/k B as the unit of temperature, energy in unit of ε, length in unit of σ, and mσ 2 ε be set to 2.5σ. Homework: as the unit of time. A good time step is about h = 0.004. The ut off distane may 1, Write a MD program use the ut off potential to simulate LJ system. 2, Calulate the pressure and energy of Ar at 3-5 different densities from, say 0.9 to 1.2 under temperature 1. (note: the averaged temperature may be slightly different to the desired value).. 6.8.3 Simulation of Hard-sphere systems The simulation of hard sphere systems historially was the first Moleular simulation on digital omputers(alder and Wainwright, J. Chem. Phys, 27, 1208(1957); 31,459(1959)). It onsists of the following steps: 1, Loate the next ollision; 2, Move all partiles forward until ollision ours; 3, Implementing the ollision dynamis of the ollision pair(usually elasti); 4, Calulate quantities interest.

164 第 六 章 逾 渗 和 统 计 物 理 问 题 We desribe the steps, onsider two spheres, i and j, of diameter σ, whose positions at time t are r i and r j, and veloities are v i and v j, respetively. If these partiles are to ollide at time t + t ij then the following equation will be satisfied r (t + t ij ) = r ij (t) + v ij t ij = σ where r ij = r i r j, v ij = v i v j. If we define b ij = r ij v ij, then this equation beomes vijt 2 2 ij + 2b ij t ij + rij 2 σ 2 = 0. ( There will be no real positive solution of this equation if b ij > 0, or b 2 ij vij 2 r 2 ij σ 2) < 0. Otherwise we have t ij = b ij ( ( b 2 ij vij 2 r 2 ij σ 2)) 1/2. v 2 ij This is the time that partile i and j will ollide. For eah pair we may get a time t ij, or never ollide, the ollide time is then t + min (t ij ). The ollision dynamis of smooth hard spheres is the onservation of kineti energy and linear momentum, whih for two spheres i and j having the same mass we obtain Where δv i is given by v new i = v old i + δv i v new j = v old j δv i. δv i = b ij σ 2 r ij. b ij is evaluated at the moment of ollide. Homework Write (or find) a program for the hard-sphere MD simulations and alulate the pair orrelation funtion of the system. 6.9 Simulation of Langevin dynamis The motion of Brownian partiles are desribed by the Langevin equation m dv dt = γv (t) + F (t) + R (t), the differene between Langevin dynamis and the ordinary partile dynamis is the random fore R (t). This fore is a result of random ollisions by moleules of solvent to Brownian partiles, it satisfy the following orrelation assumption R i (t) R j (0) = qδ (t).

6.9 SIMULATION OF LANGEVIN DYNAMICS 165 Here q = 2k B T γ from Einstein relation. To simulate this dynamis, we need a way to treat the random fore, usually the method of verlet method may be used in the integration of the equation, i.e. v (t + h/2) = v (t h/2) + hf (r (t)) + v r (t + h) = r (t) + hv (t + h/2). Where v is the ontribution from random fore and an be alulated in the following way, the orrelation of R(t) indiates that the distribution of random fore R is Guassian(in the following we onsider only one omponent), P (R(t)) exp ) ( R2. 2 R 2 If we solve for the Langevin equation without external fore we obtain ( v (t) = v (0) exp γt ) + 1 t ( ) (t τ) γ exp R (τ) dτ. m m m When t m/γ the first term is zero, sine m/γ is typially 10 11 s (for example, onsider a Brownian partile of diameter 1µ suspended in water, m 4π/3 (d/2) 3 ρ 0.5 10 18, γ = 6πη (d/2) 6π 0.01 0.5 10 6 10 7, m/γ 10 11 s), so if we use a time step muh larger than this value, the above ondition is satisfied. The mean square of veloity is v (t) 2 ( = v (0) 2 exp 2γt ) + q ( ( 1 exp 2γt )), m 2γm m whih for large t tends to v ( ) 2 = q 2γm k BT m. The last equality omes from definition of temperature. This gives 0 q = 2k B T γ. Sine the veloity v is linear in the random fore R, so the distribution of v is also a Gaussian ) P (v) exp ( mv2. 2k B T We may just sample v aording to the above distribution. If the time step is small enough so that the term exp ( ) 2γt m is not 0 in a pratial alulation, we may simply replae the k B T in the distribution to k B T ( 1 exp ( )) 2γt m to obtain ( ) mv 2 P (v) exp 2k B T ( 1 exp ( 2γt m However,this replaement is a little bit inonsistent with the above treatment sine we ignored the ontribution of the initial veloity v(0) part. A onsistent way of the simulation is to use a time step muh larger than the m/γ. )).

166 第 六 章 逾 渗 和 统 计 物 理 问 题 6.10 Long range fore and Ewald summation In the ase of Coulomb interations the interation potential in the PBC is given by U = R ij q i q j r i r j + R ; with i q i = 0. Cut off the above potential will result large errors, one way to avoid the diffiulty of the long range interation is through the use of the urved spae, that is, we may onsider our finite system is the surfae of a four dimension hypersphere, this method involves the use of non- Eulidean geometry in alulating distanes. The traditional method is to use the so alled Ewald summation and its variants. The derivation of the method for Coulomb interation and higher order multipole interations is given separately, we quote here only the results ( ) U P BC = 2π 2 exp K2 4α q i exp (ik r i ) V K 2 K 0 i + erf ( αr ij ) ( α ) 1/2 q i q j qi 2. r ij π ij i

第 七 章 原 子 结 构 的 计 算 7.1 原 子 结 构 问 题 原 子 由 原 子 核 和 在 原 子 核 周 围 运 动 的 电 子 构 成, 在 原 子 核 静 止 的 坐 标 系 中 原 子 的 Hamiltonian 为 H = Z i=1 ħ 2 2 i 2µ Ze2 Z i=1 1 + e2 r i 2 i,j;i j 1 r i r j (7.1) 式 中 µ 为 电 子 质 量, e 为 基 本 电 荷, ħ 为 Plank 常 数 除 以 2π. 原 子 的 Shödinger 方 程 为 Hψ = Eψ 式 中 ψ 是 Z 个 电 子 的 多 体 波 函 数. 由 量 子 力 学 我 们 知 道, 一 旦 求 得 了 系 统 的 波 函 数, 则 任 何 力 学 量 都 可 求 出. 在 数 值 计 算 中, 通 常 需 要 将 表 示 物 理 问 题 的 方 程 无 量 纲 化, 在 原 子, 分 子 以 及 固 体 的 电 子 结 构 的 计 算 中, 通 常 采 用 原 子 单 位. 下 面 就 介 绍 一 下 原 子 单 位. 对 于 原 子 系 统 来 说, 长 度 用 Bohr 半 径 为 单 位 来 量 度 时, 所 出 现 的 数 字 一 般 为 1 的 数 量 级, 因 此, 我 们 自 然 选 择 Bohr 半 径 作 为 长 度 的 单 位, 基 于 同 样 的 理 由, 我 们 选 择 氢 原 子 的 电 离 能 作 为 能 量 的 单 位, 通 常 称 为 Rydberg, 也 有 选 Rydberg 的 两 倍 作 为 能 量 单 位 的, 称 为 Hartree, 而 质 量 的 单 位 就 选 为 电 子 的 质 量. 由 于 在 定 态 问 题 中 不 出 现 时 间, 所 以 选 质 量, 长 度 和 能 量 作 为 三 个 基 本 单 位. 这 些 单 位 与 基 本 物 理 常 数 的 关 系 及 其 数 值 为 : Bohr 半 径 :a 0 = ħ2 µe 2 = 0.5292 Rydberg:Rydberg = µe4 2ħ 2 = 13.606eV Hartree:Hartree = 2Rydberg = 27.21eV (7.2) 电 子 质 量 :µ = 9.1095 10 28 g

168 第 七 章 原 子 结 构 的 计 算 对 式 (7.1) 表 示 的 Hamiltonian 作 代 换 r = (ħ 2 /µe 2 ) r, 得 提 出 因 子 Hamiltonian 为 : H = Z i=1 + e2 2 ħ 2 2 i 2µ i,j;i j 1 Ze 2 ħ 2 µe 2 Z i=1 1 r i µe 2 ħ 2 1 r i r j µe 2 ħ 2 (7.3) µe 4 2ħ 2 并 令 其 为 1 ( 单 位 能 量 ), 略 去 r 上 面 的, 得 到 以 原 子 单 位 表 示 的 H = Z 2 i 2Z i=1 Z i=1 在 原 子 单 位 下, 定 态 Shrödinger 方 程 取 如 下 形 式 : ( Z Z 2 1 i 2Z + r i i=1 i=1 1 + r i i,j;i j i,j;i j 1 r i r j (7.4) ) 1 Ψ = EΨ (7.5) r i r j 原 子 结 构 计 算 的 任 务 就 是 求 解 上 述 Shrödinger 方 程, 求 得 本 征 值 和 本 征 函 数, 由 此 便 可 计 算 电 荷 密 度, 电 离 能, 各 种 跃 迁 距 阵 元 等 物 理 上 感 兴 趣 的 量. 7.2 变 分 法 直 接 求 解 上 节 导 出 的 原 子 物 理 问 题 几 乎 是 不 可 能 的, 而 且, 能 够 用 Shrödinger 方 程 来 严 格 求 解 的 问 题 也 是 不 多 的. 大 多 数 问 题 要 依 靠 近 似 方 法 来 解 决. 变 分 法 就 是 一 种 有 效 的 近 似 方 法. 1 定 态 Shödinger 方 程 可 以 从 变 分 原 理 导 出. 考 虑 泛 函 I[f] = f Ĥfdq f fdq (7.6) 其 中 Ĥ 是 所 研 究 的 系 统 的 Hamiltonian, dq 表 示 对 系 统 的 全 体 独 立 坐 标 积 分 ( 或 求 和, 假 如 有 这 样 的 情 况 的 话 ). 我 们 要 证 : 当 函 数 f 满 足 Shödinger 方 程 时, I 有 极 值. 证 明 如 下 : 设 f = ψ 时, I 有 极 值 E E = ψ Ĥψdq ψ ψdq (7.7) 则 对 于 任 何 与 ψ 相 差 微 小 变 分 的 函 数 f = ψ + δψ, 应 有 δi = I[ψ + δψ] I[ψ] = 0 (7.8) 1 本 节 几 乎 全 部 取 之 于 蔡 建 华 先 生 所 著! 量 子 力 学 一 书 第 26 节

7.2 变 分 法 169 略 去 二 阶 小 项, 并 注 意 Ĥ 是 厄 密 的 而 且 E 是 实 数, 由 (7.6) 和 (7.7) 式 有 δi = = = (ψ + δψ ) Ĥ (ψ + δψ) dq ψ Ĥψdq (ψ + δψ ) (ψ + δψ) dq ψ ψdq ψ Ĥψdq + δψ Ĥψdq + ψ Ĥδψdq ψ ψdq + δψ ψdq + ψ δψdq ψ Ĥψdq + δψ Ĥψdq + ψ Ĥδψdq ψ ψdq [ 1 ψ Ĥψdq ψ ψdq δψ ψdq + ] ψ δψdq ψ ψdq ψ Ĥψdq ψ ψdq = = δψ Ĥψdq + ψ Ĥδψdq ψ ψdq ψ Ĥψdq ψ ψdq δψ (Ĥ E ) ψdq + ψ (Ĥ E ) δψdq ψ ψdq δψ ψdq + ψ δψdq ψ ψdq 由 于 δψ 是 任 意 变 分, 并 且 ψ 是 复 数, δψ 和 δψ 互 相 独 立, 因 此 (7.8) 要 求 Ĥψ = Eψ 根 据 上 述 变 分 原 理, 就 有 了 一 个 决 定 能 量 本 征 值 和 定 态 波 函 数 的 近 似 方 法. 假 如 用 某 个 试 探 函 数 f 代 入 (7.6) 式 中 计 算 I, 则 当 f 与 严 格 的 定 态 波 函 数 ψ 有 差 别 时, 所 得 的 I 数 值 与 准 确 的 能 量 本 征 值 之 差 至 多 是 2 的 量 级. 如 果 我 们 选 择 的 试 探 函 数 含 有 若 干 个 参 数 α 1, α 2,, α t, 代 入 积 分 后, 得 到 I = I(α 1, α 2,, α t ), 设 当 α k = αk 0, k = 1, 2,, t 时, f 最 接 近 ψ, 则 此 时 I(α1, 0 α2, 0, αt 0 ) 也 最 接 近 于 E. 用 一 个 含 参 数 的 试 探 函 数 f, 实 际 上 就 是 用 某 种 有 限 度 的 变 化 来 代 替 最 一 般 的 任 意 变 分 f = ψ + δψ. 因 为 E 是 对 于 任 意 变 分 的 极 值, I(α 0 1, α 0 2,, α 0 t ) 也 是 I(α 1, α 2,, α t ) 对 于 变 数 α 1, α 2,, α t 的 极 值. 因 此, 作 为 一 种 近 似 方 法 的 变 分 法 如 下 : 猜 测 Shödinger 方 程 Ĥψ = Eψ 的 解 的 形 式. 用 一 个 具 有 所 猜 测 的 形 式, 满 足 ψ 所 必 须 的 边 界 条 件, 并 且 含 若 干 参 数 α k, k = 1, 2,, t 的 试 探 函 数 f(α 1, α 2,, α t ) 代 入 (7.6), 计 算 I(α 1, α 2,, α t ), 并 相 对 于 α k, k = 1, 2,, t, 求 I 的 极 值, 即 解 方 程 组 I α k = 0, k = 1, 2,, t (7.9) 设 方 程 组 的 解 是 α k = α 0 k, k = 1, 2,, t, 则 f(α 0 1, α 0 2,, α 0 t ) 和 I(α 0 1, α 0 2,, α 0 t ) 分 别 是 ψ 和 E 的 近 似. 如 f(α 0 1, α 0 2,, α 0 t ) ψ, 则 I(α 0 1, α 0 2,, α 0 t ) E 2. 可 以 证 明 定 态 的 能 量 本 征 值 是 泛 函 (7.6) 的 极 小 值, 即 二 阶 变 分 δ 2 I > 0, 特 别 是 基 态 能 量 为 (7.6) 的 绝 对 极 小 值. 实 际 应 用 中, 常 常 以 一 个 比 较 粗 糙 的 试 探 波 函 数, 就 能 够 得 到 相 当 准 确 的 基 态 能 量. 因 为 基 态 能 量 是 泛 函 (7.6) 的 对 于 最 广 义 的 变 分 δψ 的 绝 对 极 小 值, 显 然, 用 上 述 近 似 的 变 分 方 法 求 出 的 基 态 能 量 近 似 值, 总 比 真 正 的 基 态 能 量 高 一 些. 试 探

170 第 七 章 原 子 结 构 的 计 算 波 函 数 所 含 参 数 愈 多, 变 化 范 围 愈 广, 则 一 般 说 来 所 得 到 的 基 态 能 量 近 似 值 愈 接 近 于 准 确 值, 但 决 不 会 比 它 低. 7.3 Viral 定 理 和 Hellmann-Feynman 定 理 Viral 定 理 和 Hellmann-Feynman 定 理 在 量 子 力 学 用 于 原 子 及 分 子 的 研 究 中 有 重 要 的 应 用, 下 面 我 们 分 别 予 以 介 绍. 设 一 量 子 系 统 的 定 态 Shödinger 方 程 为 Ĥψ = Eψ (7.10) 又 设 Ĝ 为 一 不 含 时 的 线 性 算 符, 则 ψ [Ĝ, Ĥ]ψdq = 0 (7.11) 这 一 结 论 称 为 超 Viral 定 理 (Hyper-virial Theorem), 现 在 我 们 来 证 明 这 一 论 断 : 因 为 ψ 满 足 方 程 (7.10), 所 以 ψ [Ĝ, Ĥ]ψdq = ψ ĜĤψdq ψ ĤĜψdq = E ψ Ĝψdq E ψ Ĝψdq = 0 式 中 利 用 了 Ĥ 是 Hermite 算 符 这 一 事 实. 对 于 N 个 粒 子 构 成 的 系 统, 粒 子 的 直 角 坐 标 为 x 1, x 2,, x 3N, 设 Ĝ = 3N i=1 ˆx iˆp i = ħ i 3N x i i=1 (7.12) x i 则 把 Hamiltonian 写 为 3N 3N 3N [Ĝ, Ĥ] = [ˆx iˆp i, Ĥ] = ˆx i [ˆp i, Ĥ] + [ˆx i, Ĥ]ˆp i (7.13) i=1 i=1 Ĥ = ˆT + V 其 中 ˆT = 3N ˆp 2 i i=1 2µ i 为 系 统 的 动 能, 而 V 为 势 能, 包 括 外 场 中 的 势 能 和 相 互 作 用 势 能, 只 与 系 统 中 粒 子 的 坐 标 有 关. 则 可 容 易 证 明 : i=1 [ˆx i, Ĥ] = p i µ i [ˆp i, Ĥ] = V x i (7.14)

7.3 VIRAL 定 理 和 HELLMANN-FEYNMAN 定 理 171 于 是, 利 用 (7.11) 可 得 [Ĝ, Ĥ] = 3N i=1 ˆp 2 i µ i + 3N i=1 ψ 2 ˆT ψdq ( ) V x i = 2 x ˆT i ψ 3N 或, 用 算 符 上 面 加 一 横 代 表 对 定 态 的 平 均 值, 上 式 写 为 i=1 3N i=1 x i V x i (7.15) x i V x i ψdq = 0 (7.16) 2T = 3N i=1 x i V x i (7.17) 这 就 是 Viral 定 理. 如 果 系 统 的 势 能 是 坐 标 x i, i = 1, 2,, 3N 的 n 次 齐 次 函 数, 则 3N i=1 x i V x i = nv Viral 定 理 可 以 简 化 为 又, 由 于 2T = nv (7.18) T + V = E 所 以 有 V = T = 2E n + 2 ne n + 2 对 于 原 子 问 题, 势 能 是 坐 标 的 ( 1) 次 齐 次 函 数, 因 此 有 V = 2E T = E 2T = V (7.19) (7.20) 因 为 Viral 定 理 是 严 格 的, 因 此 它 可 以 用 来 作 为 检 验 近 似 方 法 的 近 似 程 度 的 标 准 之 一, 如 果 用 某 种 近 似 方 法 求 得 了 原 子 系 统 的 波 函 数, 就 可 以 用 这 些 波 函 数 计 算 T, V 和 E, 如 果 其 不 满 足 (7.20), 则 计 算 结 果 显 然 不 可 靠. Hellmann-Feynman 定 理 是 在 1937 1939 年 分 别 由 H. Hellmann 和 R. P. Feynman 独 立 提 出 的. 这 一 定 理 的 内 容 为 : 若 ψ 为 Hamiltonian Ĥ 的 归 一 化 本 征 函 数, E 是 相 应 的 本 征 能 量, 而 λ 是 出 现 在 Ĥ 中 的 任 何 一 个 参 数, 则 E λ = ψ Ĥ ψdq (7.21) λ

172 第 七 章 原 子 结 构 的 计 算 λ 可 以 是 核 间 距, 电 荷 等. 这 一 定 理 可 证 明 如 下 : E = 由 上 式 对 λ 求 偏 微 商, 得 E ψ λ = λ Ĥψdq + ψ Ĥψdq ψ Ĥ λ ψdq + ψ Ĥ ψ λ dq 利 用 Shödinger 方 程 Ĥψ = Eψ 及 Ĥ 的 Hermite 性, 可 得 E λ = = ψ Ĥ λ ψdq + E λ ψ Ĥ λ ψdq 上 式 的 最 后 一 个 等 式 使 用 了 波 函 数 的 归 一 化 关 系. ψ ψdq 作 为 Hellmann Feynman 定 理 的 应 用, 我 们 来 看 二 个 例 子. 对 于 一 维 谐 振 子, Hamiltonian Ĥ 和 能 量 E n 分 别 为 d 2 Ĥ = ħ2 2µ dx + 1 2 2 µω2 x 2 ( E n = n + 1 ) ħω 2 选 ω 为 参 数, 得 ( n + 1 ) ħ = 2 ψ nµωx 2 ψdx 由 此 求 得 x 2 在 定 态 ψ n 的 平 均 值 为 x 2 = ( n + 1 ) ħ 2 µω 这 样, 就 省 去 了 对 波 函 数 的 积 分 运 算. 在 中 心 力 场 中 的 粒 子, 能 量 本 征 态 可 以 取 为 (Ĥ,ˆl 2, ˆl ) z 的 共 同 本 征 态, 即 ψ = R(r)Y lm (θ, ϕ) = χ(r) r Y lm(θ, ϕ) χ(r) 满 足 径 向 方 程 ( ħ2 ) d 2 l(l + 1)ħ2 + V (r) + χ(r) = Eχ(r) 2µ dr2 2µr 2 这 一 方 程 与 相 当 于 Hamiltonian 为 Ĥ = ħ2 d 2 l(l + 1)ħ2 + V (r) + 2µ dr2 2µr 2

7.4 轨 道 近 似 和 HARTREE FOCK 方 程 173 的 一 维 定 态 Shödinger 方 程. 把 径 向 方 程 的 本 征 值 记 为 E nrl, 它 依 赖 于 径 向 量 子 数 n r (= 0, 1, 2, ) 和 角 量 子 数 l(= 0, 1, 2, ). 视 l 为 参 数, Ĥ l = (2l + 1) ħ2 2µ 1 r 2 > 0 ( 因 为 1 r 2 为 正 定 算 符 ). 因 此, 按 照 Hellmann Feynman 定 理 E nr l l > 0 即 给 定 n r 的 情 况 下, E nr l 随 l 增 大 而 增 大, 因 此, 中 心 力 场 的 基 态 必 为 s 态 (l = 0) 7.4 轨 道 近 似 和 Hartree Fok 方 程 除 了 氢 原 子 或 类 氢 离 子 外, 即 使 像 氦 原 子 这 样 简 单 的 原 子, 我 们 也 无 法 求 出 其 本 征 函 数 和 本 征 值 的 解 析 解, 因 此, 在 原 子 结 构 的 定 量 研 究 中, 数 值 计 算 是 十 分 基 本 的. 但 是, 为 了 严 格 求 解 原 子 结 构 问 题, 就 要 求 解 方 程 (7.5), 这 是 一 个 有 3Z 个 变 量 的 偏 微 分 方 程 的 本 征 值 问 题, 当 Z 稍 大 时, 直 接 对 其 进 行 数 值 计 算 几 乎 是 不 可 能 的, 因 此 必 须 发 展 近 似 方 法. 在 << 数 学 物 理 方 法 >> 课 程 中, 我 们 学 过 分 离 变 量 法, 通 过 把 一 个 多 变 量 方 程 分 离 为 多 个 单 变 量 方 程, 求 解 过 程 可 大 大 简 化. 在 原 子 结 构 计 算 中, 我 们 也 希 望 用 这 一 方 法 来 简 化 我 们 的 问 题, 然 而, 不 幸 的 是, 方 程 (7.5) 是 不 能 分 离 变 量 的. 一 般 来 说, 一 个 多 体 问 题 的 Hamiltonian 如 果 可 以 写 成 对 单 体 Hamiltonian 的 求 和 形 式, 则 对 应 的 定 态 Shödinger 方 程 是 可 分 离 的, 否 则 是 不 可 分 离 的. 具 体 地 说, 如 果 Ĥ = i ĥ i (7.22) 其 中 h i 只 与 第 i 个 粒 子 的 坐 标 有 关, 则 Shödinger 方 程 ĤΨ = EΨ 的 解 可 以 写 为 E = i ε i Ψ = i ψ i (7.23) 对 于 全 同 粒 子, 还 要 考 虑 波 函 数 的 对 称 性, 即 对 于 Bose 子, 取 对 称 波 函 数 而 对 于 Fermi 子 取 反 对 称 波 函 数. 电 子 是 Fermi 子, 因 此 原 子 中 电 子 的 波 函 数 应 取 反 对 称 的 形 式. 尽 管 方 程 (7.5) 是 不 能 分 离 变 量 的, 但 分 离 变 量 方 法 是 如 此 的 强 有 力, 我 们 仍 然 试 图 寻 找 分 离 变 量 形 式 的 近 似 解, 通 过 使 用 变 分 法, 使 近 似 解 尽 可 能 接 近 实 际 的 解. 我 们 先 给 出 计 算 方 法 的 推 导, 关 于 这 一 近 似 的 理 论 问 题 将 不 做 过 多 的 计 论, 留 给 读 者 进 一 步 钻 研. 考 虑 具 有 Z 个 电 子 的 原 子, 我 们 假 定 其 波 函 数 可 写 为 分 离 变 量 的 形 式, 注 意 到 电 子 是 Fermi 子, 可 把 波 函 数 写 成 Slater 行 列 式 的 形 式, 这 样 反 对 称 性 可 自 动 满 足. 我 们 用 ϕ i (r) 表 示 单 个 电 子 的 空 间 波 函 数, η 表 示 单 个 电 子 的 自 旋 波 函 数, 则 ψ i = ϕ i (r)η i 为 单 个

174 第 七 章 原 子 结 构 的 计 算 电 子 的 波 函 数, 通 常 称 为 电 子 轨 道. 每 个 电 子 轨 道 可 以 容 纳 一 个 电 子, 如 果 Z 个 电 子 占 据 了 第 i 1, i 2,, i Z 个 轨 道, 则 用 电 子 轨 道 表 示 的 Slater 行 列 式 形 式 的 原 子 波 函 数 为 ψ i1 (r 1 ) ψ i1 (r 2 ) ψ i1 (r 2 ) Ψ = 1 ψ i2 (r 1 ) ψ i2 (r 2 ) ψ i2 (r 2 ) (7.24) Z! ψ iz (r 1 ) ψ iz (r 2 ) ψ iz (r 2 ) 在 原 子 单 位 下, 原 子 的 Hamiltonian 由 (7.4) 给 出, 把 式 (7.24) 和 (7.4) 代 入 下 式 E = Ψ ĤΨd 3 r 1 d 3 r 2 d 3 r Z (7.25) 经 过 一 些 较 为 繁 琐 但 直 接 了 当 的 代 数 计 算, 可 以 求 得 E = Z k=1 + Z ( ϕ i k (r) 2 2Z r Z k=1 k =1 Z Z k=1 k =1 ) ϕ ik (r)d 3 r ϕ 1 i k (r 1 )ϕ ik (r 1 ) r 1 r 2 ϕ i (r k 2)ϕ ik (r 2 )d 3 r 1 d 3 r 2 ϕ 1 i k (r 1 )ϕ ik (r 1 ) r 1 r 2 ϕ i (r k 2)ϕ ik (r 2 )d 3 r 1 d 3 r 2 (7.26) 式 中 最 后 一 项 求 和 上 的 表 示 只 对 自 旋 相 同 的 电 子 求 和. 把 上 式 对 ϕ 求 变 分, 并 注 意 到 约 束 条 件 ϕ (r)ϕ(r)d 3 r = 1, 引 入 Lagrange 乘 子 ε i, 令 ( Z δe δ ε ik k=1 ϕ i k (r)ϕ ik (r)d 3 r ) = 0 得 到 如 下 形 式 的 方 程 ĥ ik ϕ ik = ε ik ϕ ik (7.27) 其 中 ĥ ik = 2 2Z r Z + ϕ i (r 2 k 1)ϕ ik (r 1 ) r 1 r d3 r 1 k =1 Z k =1 ϕ ik (r 1)ϕ ik (r 1 ) 2 r 1 r d3 r 1 ϕ i k (r)ϕ ik (r) ϕ i k (r)ϕ ik (r) (7.28) 式 (7.27) 和 (7.28) 称 为 Hartree-Fok 方 程, 式 (7.28) 为 Hartree-Fok 近 似 下 的 单 电 子 Hamiltonian, 其 中 第 一 项 为 单 个 电 子 的 动 能, 第 二 项 为 电 子 在 核 势 场 中 的 势 能, 第 三 项 为

7.5 统 计 近 似 和 X α 方 程 175 其 它 电 子 对 所 考 虑 电 子 的 直 接 库 仑 相 互 作 用 能 ( 简 称 为 库 仑 能 ), 第 四 项 是 由 于 电 子 的 全 同 性 导 致 的 交 换 库 仑 相 互 作 用 能 ( 简 称 为 交 换 能 ). 我 们 立 刻 注 意 到, 虽 然 方 程 (7.27) 是 一 个 单 粒 子 的 Shödinger 方 程, 但 由 于 其 Hamiltonian (7.28) 中 的 库 仑 能 和 交 换 能 与 待 求 波 函 数 ϕ 有 关, 因 此 只 能 自 洽 求 解, 可 以 先 假 定 一 组 ϕ, 计 算 出 式 (7.28), 然 后 求 解 方 程 (7.27), 得 到 一 组 新 的 ϕ, 再 利 用 这 组 新 的 ϕ 计 算 (7.28) 并 求 解 方 程 (7.27), 反 复 迭 代, 直 至 二 次 迭 代 所 得 结 果 小 于 某 一 给 定 的 误 差 限 为 止. 7.5 统 计 近 似 和 X α 方 程 方 程 (7.28) 中 前 三 项 与 下 标 i k 无 关, 第 四 项 与 i k 有 关. 为 了 进 一 步 简 化 计 算, 对 第 四 项 取 平 均, 即 把 该 项 代 之 以 其 对 每 一 占 据 态 的 算 术 平 均 值 V ex 1 Z Z k=1 Z k =1 ϕ (r 2 ik 1)ϕ ik (r 1 ) r 1 r d3 r 1 ϕ i k (r)ϕ ik (r) ϕ i k (r)ϕ ik (r) (7.29) 用 V (r) 记 方 程 (7.28) 中 的 第 三 项, 则 方 程 (7.28) 可 以 写 为 ĥ ik = 2 + V (r) (7.30) 其 中 V (r) = 2Z r + V (r) + V ex (r) (7.31) 如 果 V (r) 具 有 中 心 对 称 性, 则 方 程 (7.27) 的 求 解 可 以 大 为 简 化. 为 此, 我 们 对 式 (7.31) 作 方 向 平 均, 使 其 只 依 赖 于 径 向 坐 标 r, 在 这 一 近 似 下, 方 程 (7.27) 变 为 [ 2 + V (r)]ϕ(r) = εϕ(r) (7.32) 上 式 的 解 可 以 写 为 而 R(r) 满 足 下 面 的 径 向 方 程 1 r ϕ(r) = R(r)Y lm (θ, φ) ( d r 2 dr ) l(l + 1) + V (r)r + R = εr (7.33) dr dr r 2 R(r) 称 为 径 向 波 函 数, 在 做 进 一 步 的 推 导 之 前, 我 们 先 对 径 向 方 程 及 其 解 做 一 些 一 般 性 的 讨 论. 方 程 是 一 个 二 阶 常 微 分 方 程 的 本 征 值 问 题, 因 为 我 们 这 里 感 兴 趣 的 是 束 缚 态 问 题, 由 波 函 数 的 平 方 可 积 要 求 可 知, 当 r, 应 有 rr(r) 0; 又 由 波 函 数 的 统 计 解 释 及 二

176 第 七 章 原 子 结 构 的 计 算 2 阶 微 分 方 程 的 一 般 理 论 可 知 当 r 0, R(r) r l, 或 rr(r) 0. 在 这 些 边 界 条 件 下, 方 程 (7.33) 的 本 征 值 只 能 取 一 些 分 立 值, 可 用 径 向 量 子 数 n r (= 0, 1, 2, 3, ) 编 号, 分 别 对 应 于 R(r) 无 节 点, 一 个 节 点, 二 个 节 点,. 本 征 值 只 与 (n r, l) 有 关, 而 与 量 子 数 m 无 关, 因 此, 在 中 心 力 场 近 似 下, 电 子 的 轨 道 能 量 对 于 确 定 的 l 是 2l + 1 重 简 并 的. 在 原 子 问 题 中, 通 常 用 另 外 一 套 量 子 数 来 标 志 状 态, 定 义 主 量 子 数 为 n = n r + l + 1 (7.34) 则 主 量 子 数 可 取 值 n = 1, 2, 3,, 对 于 给 定 的 n, l 可 取 值 0, 1, 2,, n 1, 通 常 用 s, p, d, 表 示. 对 一 个 确 定 的 状 态 可 以 由 四 个 量 子 数 (n, l, m, s) 来 标 记, 其 中 s 代 表 自 旋, 可 取 向 上 和 向 下 两 个 值. 把 方 程 (7.33) 的 本 征 值 记 为 ε nls, 本 征 函 数 记 为 ϕ nlms (r) = R nls (r)y lm (θ, φ). 所 谓 电 子 组 态 是 指 电 子 占 据 轨 道 的 情 况, 例 如, (1s) 2 (2s) 2 (2p) 6 代 表 一 种 电 子 组 态, 它 表 明 n = 1, l = 0 的 轨 道 有 二 个 电 子, n = 2, l = 0 的 轨 道 有 二 个 电 子, n = 1, l = 1 的 轨 道 有 六 个 电 子. 这 种 组 态 中 的 每 个 填 充 的 简 并 轨 道 均 已 填 满, 为 闭 壳 层 组 态. 若 有 某 些 简 并 轨 道 没 有 填 满, 则 为 开 壳 层 组 态, 例 如 (1s) 2 (2s) 2 (2p) 3 就 是 一 个 开 壳 层 组 态. 现 在 考 虑 (7.31) 的 方 向 平 均. 对 于 给 定 的 电 子 组 态, 电 荷 密 度 为 ρ s (r) = W nlms ϕ nlm (r) 2 (7.35) nlm 式 中 W nlms 是 轨 道 ϕ nlms 的 占 据 数, 当 占 据 时 取 1, 未 占 据 时 取 0. 由 于 在 中 心 力 场 近 似 下 相 同 (nl) 的 态 是 简 并 的, 因 此 可 以 定 义 (nls) 态 的 占 据 数 为 W nls = m W nlms 把 式 (7.35) 对 方 向 取 平 均, 得 到 方 向 平 均 后 的 电 荷 密 度 为 ρ s (r) = 1 dωρ s (r) 4π = 1 W nlms R nls (r) 2 dω Y lm (θ, φ) 2 4π nlm = 1 W nls R nls (r) 2 (7.36) 4π 总 电 荷 密 度 为 nl ρ(r) = ρ (r) + ρ (r) 在 给 定 的 电 子 组 态 下, 库 仑 能 为 V (r) = 2 见 曾 谨 言 著 量 子 力 学 卷 I, P259 d 3 2ρ(r) r 1 r 1 r (7.37)

7.5 统 计 近 似 和 X α 方 程 177 利 用 1 r 1 r = lm 4π 2l + 1 r< l r> l+1 Y lm (θ, φ)y lm (θ 1, φ 1 ) 其 中 r < = min(r, r 1 ) r > = max(r, r 1 ) 则 V 的 方 向 平 均 为 V (r) = 1 dωv (r) 4π = 1 d 3 r 1 2ρ(r 1 ) 4π lm = 2 d 3 ρ(r 1 ) r 1 = 8π r r 0 r > r 2 1ρ(r 1 )dr 1 + 8π 4π 2l + 1 r r< l r> l+1 在 推 导 中 用 到 了 关 系 式 dωylm (θ, φ) = 4πδ l0 δ m0. Y lm (θ 1, φ 1 ) dωy lm (θ, φ) r 1 ρ(r 1 )dr 1 (7.38) 交 换 项 的 处 理 要 复 杂 得 多, 通 常 的 做 法 是, 先 对 均 匀 系 统 ( 即 外 场 为 0 的 系 统 ) 求 出 V ex 依 赖 于 电 荷 密 度 的 函 数 关 系 ( 对 于 均 匀 系 统, 电 荷 密 度 是 一 与 位 置 无 关 的 常 数 ), 再 把 其 中 的 电 荷 密 度 换 成 有 外 场 的 电 荷 密 度 而 保 持 函 数 形 式 不 变. 在 取 方 向 平 均 时, 也 只 要 把 电 荷 密 度 换 成 对 方 向 平 均 的 电 荷 密 度 即 可. 这 一 过 程 叫 做 统 计 平 均 近 似. 在 均 匀 情 形 下, 可 求 出 ( ) 1/3 3 V ex = 6 4π ρ (7.39) 对 自 旋 向 下 的 电 子 也 有 相 同 的 结 果. 把 上 式 中 的 ρ 换 成 ρ (r), 便 得 到 了 交 换 势 的 形 式. 另 一 方 面, 如 果 对 式 (7.26) 中 的 交 换 项 作 统 计 平 均 近 似, 然 后 取 变 分, 则 得 到 的 交 换 势 为 V ex (r) = 6 2 3 ( ) 1/3 3 4π ρ (7.40) 2 与 (7.39) 相 比, 多 出 一 个 因 子, 这 表 明 统 计 平 均 与 变 分 操 作 是 不 可 对 易 的. 为 此, Slater 3 建 议 把 交 换 势 写 成 ( ) 1/3 3 V ex (r) = 6α 4π ρ (7.41) 其 中 2 3 α 1 为 一 参 数, 令 V s (r) = 2Z r + V (r) + V ex,s (r) (7.42) 则 方 程 ( 2 + V s (r) ) ϕ nlm = ε nls ϕ nlms (7.43)

178 第 七 章 原 子 结 构 的 计 算 为 决 定 电 子 轨 道 的 方 程, 由 于 在 交 换 势 中 引 入 了 一 个 参 数 α, 因 此 这 一 方 程 称 为 X α 方 程. 实 际 计 算 分 为 自 旋 限 制 和 自 旋 极 化 两 种, 在 自 旋 限 制 计 算 中, 认 为 两 种 自 旋 的 能 级 是 简 并 的 且 密 度 相 同, 并 具 有 相 同 的 交 换 势, 取 为 ( ) 1/3 3 V ex (r) = 6α 8π ρ (7.44) 在 自 旋 极 化 计 算 中, 则 是 对 自 旋 的 两 种 取 向 分 别 求 解 X α 方 程. 通 常 确 定 α 的 方 法 有 如 下 几 种, 一 种 是 调 整 α 使 计 算 结 果 满 足 Viral 定 理 ; 第 二 种 方 法 是 严 格 求 解 Hartree-Fok 方 程, 并 比 较 Hartree-Fok 方 程 的 结 果 与 X α 方 程 的 结 果 来 确 定 α; 第 三 种 是 把 α 看 作 一 个 变 分 参 数, 通 过 使 原 子 的 总 能 量 取 极 小 来 确 定 α. 上 述 三 种 方 法 所 得 到 结 果 基 本 上 是 相 同 的. 7.6 径 向 方 程 的 求 解 方 法 方 程 (7.43) 的 解 可 写 为 ϕ nlm Shödinger 方 程 : 1 r = R nl (r)y lm (θ, φ), 3 其 中 R nl (r) 满 足 下 面 的 径 向 ( d r 2 dr ) nl l(l + 1) + V (r)r nl + R dr dr r 2 nl = ε nl R nl (7.45) 这 一 节 我 们 介 绍 求 解 径 向 方 程 (7.45) 的 数 值 方 法. 令 R nl (r) = y nl r 并 代 入 方 程 (7.45), 我 们 得 到 其 中 F nl (r) = d 2 y nl dr 2 = F nl (r)y nl (7.46) l(l + 1) r 2 + [V (r) ε nl ] 为 了 简 化 苻 号, 在 不 引 起 误 解 的 情 况 下, 后 面 的 讨 论 中 我 们 将 省 略 下 标 (nl). 方 程 (7.46) 可 用 Numerov 格 式 求 解, 下 面 介 绍 这 一 方 法. 为 了 更 一 般 起 见, 考 虑 在 区 间 [a, b] 上 求 解 二 阶 微 分 方 程 d 2 y = F (r)y + G(r) (7.47) dr2 以 h 为 步 长 划 分 区 间 [a, b], 令 r i = a + ih, i = 0, 1, 2,, 记 y i y(r i ) 则 : y i+1 = y i + hy i + h2 2! y i + h3 3! y(3) i + h4 4! y(4) i + h5 5! y(5) i + O(h 6 ) y i 1 = y i hy i + h2 2! y i h3 3! y(3) i + h4 4! y(4) i h5 5! y(5) i + O(h 6 ) (7.48) 3 在 本 节 中, 为 简 单 计, 将 略 去 自 旋 下 标, 需 要 时, 很 容 易 在 最 终 结 果 中 恢 复

7.6 径 向 方 程 的 求 解 方 法 179 上 面 二 式 相 加 得 : ( y i+1 2y i + y i 1 = h 2 y i + 1 ) 12 h2 y (4) i + O(h 6 ) (7.49) 上 式 左 边 为 y 在 r i 点 的 二 阶 中 心 差 分, 记 为 于 是, (7.49) 可 写 为 2 y i y i+1 2y i + y i 1 ( 2 y i = h 2 y i + 1 ) 12 h2 y (4) i + O(h 6 ) (7.50) 对 于 y, 显 然 有 相 同 的 关 系 : ( 2 y i = h 2 y (4) i + 1 ) 12 h2 y (6) i 由 式 (7.50) 和 (7.51) 可 得, + O(h 6 ) (7.51) 2 y i = h 2 (y i + 2 y i ) + O(h 6 ) (7.52) 又, 由 于 y i = F i y i + G i, 2 y i = 2 (F i y i + G i ), 式 中 F i F (r i ), G i G(r i ), 从 而 2 y i = h [F 2 i y i + G i + 1 ] 12 (F i+1y i+1 + G i+1 + F i 1 y i 1 + G i 1 2F i y i 2G i ) 整 理 得 ) ) ) (1 h2 12 F i+1 y i+1 2 (1 h2 12 F i y i + (1 h2 12 F i 1 y i 1 = h (F 2 i y i + G i + 112 ) 2 G i ( ) 令 Y = 1 h2 F y, 最 后 得 到 12 Y i+1 2Y i + Y i+1 = h 2 ( F i 1 h2 12 Y i + G i + 1 12 2 G i ) (7.53) 上 式 就 是 Numerov 差 分 格 式, 这 是 一 个 二 步 方 法, 即 为 了 得 到 Y i+1, 需 要 知 道 Y i 和 Y i 1 的 值. 径 向 方 程 不 含 对 y 的 一 阶 导 数, 是 方 程 (7.47) 当 G(r) = 0 时 的 特 例, 可 用 前 述 Numerov 方 法 求 解. 具 体 计 算 时, 可 分 别 从 两 个 边 界 点 出 发, 逐 步 向 中 间 计 算. 从 r = 0 出 发, 向 r 增 加 的 方 向 的 计 算 过 程 称 为 外 向 计 算, 从 r = 出 发 ( 实 阶 上 是 一 有 限 的 足 够 大 的 值 ), 向 r 减 小 的 方 向 的 计 算 过 程 称 为 内 向 计 算. 外 向 计 算 和 内 向 计 算 应 该 在 某 一 中 间 点 r = r m 处 光 滑 的 连 接 起 来, 使 二 者 光 滑 连 接 的 过 程 称 为 外 向 计 算 与 内 向 计 算 的 匹 配. 对 于 给 定 的 (nl), 径 向 方 程 的 解 应 该 有 n r = n l 1 个 节 点, 由 径 向 方 程 可 知, 解 的 节 点 只 能 出 现 在 F (r) < 0 的 区 域, 这 是 由 于 在 节 点 上 有 y = 0 及 y = 0, 因 此, 节 点 也 是

180 第 七 章 原 子 结 构 的 计 算 函 数 y(r) 的 拐 点, 在 节 点 的 外 侧, 随 着 r 的 增 大, y(r) 或 是 趋 于 另 一 节 点, 或 者 随 r 而 趋 于 0. 如 果 在 节 点 外 侧 y > 0, 因 要 求 y(r) 是 上 凸 的 ( 否 则 将 不 断 增 长 ), 所 以 应 有 y < 0; 反 之, 如 果 在 节 点 外 侧 y < 0, 因 要 求 y(r) 是 下 凸 的, 所 以 应 有 y > 0. 不 论 何 种 情 况, 都 要 求 y 与 y 异 号, 这 只 有 当 F (r) < 0 时 才 有 可 能. 一 般 r m 取 在 y 的 最 后 一 个 节 点 之 外, 即 F (r) > 0 处. 为 了 进 行 外 向 积 分, 我 们 还 需 要 知 道 最 初 二 个 点 的 y 的 数 值. r = 0 时, 径 向 方 程 无 定 义, 积 分 可 从 r = h 开 始. 当 r 0 时, V (r) 2Z, 这 是 类 氢 r 离 子 的 势, 因 此, 我 们 可 以 用 类 氢 离 子 的 径 向 波 函 数 ( 除 以 r) 在 r = h, r = 2h 的 值 作 为 y 1, y 2. 给 定 一 个 ε nl 的 数 值, 作 外 向 积 分 至 r m ( 注 意, r m 一 般 与 ε nl 有 关 ), 如 果 节 点 的 数 目 不 等 于 n r, 说 明 ε nl 的 选 择 不 好, 若 节 点 数 大 于 n r, 说 明 ε nl 太 小, 此 时 可 用 1.25 或 其 它 大 于 1 的 合 适 数 字 乘 以 ε nl, 继 续 计 算 ; 若 节 点 数 小 于 n r, 说 明 ε nl 太 大, 此 时 可 用 0.75 或 其 它 小 于 1 的 合 适 数 字 乘 以 ε nl, 继 续 计 算. 重 复 上 述 过 程 直 至 节 点 数 目 正 好 为 n r 时 为 至, 这 一 过 程 称 为 对 ε nl 的 粗 调. 在 作 完 ε nl 的 粗 调 后, 可 交 替 进 行 向 内 计 算 和 向 外 计 算, 通 过 要 求 在 r m 点 y 的 光 滑 连 接 再 细 调 ε nl. 向 内 积 分 可 取 一 足 够 大 的 r 开 始 计 算, 为 了 适 用 于 离 子 的 计 算, 我 们 假 定 原 子 的 总 电 子 数 不 必 等 于 Z, 设 电 子 数 为 N, 则 当 r 时, V (r) 2 Z N+1 r, F (r) ε nl, 径 向 方 程 的 解 为 y(r) exp( ε nl r), 在 r 附 近, 可 取 y(r) = exp( F (r )r) 并 用 Numerov 方 法 作 内 向 积 分, 为 了 y 在 r m 点 光 滑 连 接, 应 要 求 外 向 积 分 和 内 向 积 分 的 y 结 果 在 r m 点 的 连 续. 这 可 以 通 过 细 调 ε y nl 来 做 到. 若 记 y in 为 内 向 积 分 的 结 果, y out 为 外 向 积 分 的 结 果, 在 计 算 出 y in 和 y out 之 后, 计 算 其 中 ε nl = 1 2M M = [ y out (r m ) y out (r m ) y in(r m ) y in (r m ) [ rm y 2 0 out(r)dr + yout(r 2 m ) ] r m y 2 in(r)dr y 2 in (r m) 把 ε nl 调 整 成 ε nl + ε nl 再 重 复 上 述 计 算, 直 到 ε nl ε nl 小 于 某 一 误 差 限 时, 结 束 叠 代. 最 后, 我 们 给 出 式 (7.54) 的 证 明, 把 F (r) 写 为 两 项 之 和, ] (7.54) F (r) = F (r) ε nl 则 方 程 (7.46) 成 为 y = F (r)y ε nl y (7.55) 当 ε nl 变 为 ε nl + ε nl 时, 设 y 变 为 y + y, 在 线 性 近 似 下, 有 y + y = F (r)y + F (r) y ε nl y ε nl y ε nl y (7.56)

7.7 计 算 程 序 181 将 (7.56) 与 (7.55) 相 减 得 (7.57) 乘 以 y 与 (7.55) 乘 以 y 相 减 得 或 两 边 积 分 得 y = F (r) y ε nl y ε nl y (7.57) yy y y = ε nl y 2 (7.58) d dr ( yy y y) = ε nl y 2 ( yy y y) r 2 r 1 = ε nl r2 分 别 用 (0, r m ) 及 (r m, ) 代 替 (r 1, r 2 ), 并 注 意 到 我 们 得 到 y y = y y yy y 2 y out(r m ) y out (r m ) y2 out(r m ) = ε nl y in(r m ) y in (r m ) y2 in(r m ) = ε nl 若 要 求 对 应 于 ε nl + ε nl 的 解 满 足 光 滑 连 接, 即 把 (7.59) 代 入 (7.60), 就 得 到 方 程 (7.54) r 1 rm 0 y 2 dr y 2 out(r)dr r m y 2 in(r)dr (7.59) y out y out + y out y out = y in y in + y in y in (7.60) 前 面 我 们 讨 论 了 径 向 方 程 的 求 解 方 法, 在 讨 论 中 假 定 V (r) 是 已 知 的, 事 实 上, V (r) 是 与 径 向 方 程 的 解 有 关 的, 具 体 关 系 由 式 (7.38) 及 式 (7.41) 给 出. 因 此, 实 阶 计 算 时, 应 先 给 定 一 初 始 势 和 初 始 本 征 值 ε nl, 然 后 求 解 径 向 方 程 求 得 一 组 本 征 值 及 本 征 函 数, 用 求 得 的 本 征 函 数 代 入 式 (7.38) 及 式 (7.41) 求 得 新 的 势 V (r), 用 新 的 势 和 老 的 势 的 适 当 混 合 做 为 势 函 数, 再 求 解 径 向 方 程, 这 样 反 复 叠 代 直 至 前 后 两 次 势 之 差 小 于 某 一 给 定 的 误 差 限 为 止, 这 一 过 程 称 为 自 洽 过 程, 一 般 来 说, 如 果 初 始 势 选 择 的 较 好, 只 要 15 次 左 右 的 叠 代 便 可 达 到 很 高 的 计 算 精 度. 7.7 计 算 程 序 这 一 节 我 们 给 出 一 个 完 整 的 计 算 原 子 结 构 的 程 序, 它 用 我 们 在 前 面 几 节 描 述 的 X α 方 法 计 算 原 子 的 总 能 量, 轨 道 能 量 及 原 子 周 围 的 势 V (r) 和 电 荷 密 度 ρ(r) 等.

182 第 七 章 原 子 结 构 的 计 算 下 面 是 P 原 子 计 算 的 输 入 文 件, 分 别 对 应 于 自 旋 限 制 和 自 旋 极 化 的 计 算. 现 对 每 一 参 数 解 释 如 下, 第 一 行 为 描 述 性 文 字 ; 第 二 行 ( 格 式 为 2F10.5) 为 所 用 的 α 的 数 值 和 每 次 叠 代 时 所 得 的 势 混 入 老 的 势 中 的 分 数 ; 第 三 行 ( 格 式 为 10I5) 给 出 计 算 控 制 值, 分 列 如 下 : 第 一 个 数 : 输 出 文 件 打 印 控 制, = 0 时 打 印 每 次 叠 代 势 的 最 大 变 化 点 和 轨 道 能 量, 收 敛 的 总 能 量, 径 向 网 格 点, 电 荷 密 度. = 1 还 打 印 每 次 叠 代 时 计 算 轨 道 能 量 的 过 程 信 息. 第 二 个 数 : 起 始 势 的 输 入 方 式, 本 程 序 中 总 取 为 1. 第 三 个 数 : 势 收 敛 的 指 数 阈 值, 取 3 或 4. 第 四 个 数 : 轨 道 能 量 收 敛 的 指 数 阈 值, 取 5 或 6. 第 五 个 数 : 原 子 径 向 网 格 点 的 数 目, 本 程 序 中 取 为 441. 第 六 个 数 : 允 许 的 叠 代 次 数, 取 为 50 左 右. 第 七 个 数 : 原 子 序 数. 第 八 个 数 : 原 子 的 电 荷 数 ( 即 原 子 序 数 与 所 带 电 子 数 之 差 ), 对 中 性 原 子 取 0. 第 九 个 数 : 轨 道 能 级 的 数 目. 第 十 个 数 : = 1 表 示 自 旋 限 制 计 算 ; = 2 表 示 自 旋 极 化 计 算. 入 值. 第 四 行 及 紧 跟 的 10 行 ( 对 自 旋 限 制 计 算 ) 或 21 行 ( 对 自 旋 极 化 计 算 ) 为 起 始 势 的 输 紧 限 起 始 势 的 输 入 每 行 代 表 一 个 能 级, 第 一 个 数 表 示 (nl), 以 100 n + 10 l 表 示 ; 第 二 个 数 对 自 旋 限 制 计 算 取 1, 对 自 旋 极 化 计 算 时 取 1 表 示 自 旋 向 上, 取 2 表 示 自 旋 向 下 ; 第 三 个 数 为 能 级 上 的 电 子 占 据 数 ; 第 四 个 数 为 估 计 的 轨 道 能 量. 下 面 的 两 个 输 入 文 件 分 别 计 算 磷 的 自 旋 限 制 基 态 和 自 旋 极 化 基 态 及 对 应 的 轨 道 能 量 的 输 出 值 ( 能 量 以 Rydberg 为 单 位 ). Phosphorus Spin_Restrited state.72569.20 1 1.000 1-4 0.995-6 441 60 0.900 0.985 15 0.980 0 0.975 5 1 0.970 0.965 0.960 0.955 0.950 0.900 0.945 0.895 0.940 0.890 0.935 0.885 0.930 0.880 0.925 0.875 0.920 0.870 0.915 0.865 0.910 0.860 0.905 0.855 0.850 0.795 0.845 0.790 0.840 0.785 0.835 0.780 0.830 0.775 0.825 0.770 0.820 0.765 0.815 0.760 0.810 0.755 0.800 0.750 0.745 0.695 0.740 0.690 0.735 0.685 0.730 0.680 0.725 0.675 0.720 0.670 0.715 0.665 0.710 0.660 0.705 0.655 0.700 0.650 0.645 0.595 0.640 0.590 0.635 0.585 0.630 0.580 0.625 0.575 0.620 0.570 0.615 0.565 0.610 0.560 0.605 0.555 0.600 0.550 0.545 0.495 0.540 0.490 0.535 0.485 0.530 0.480 0.525 0.475 0.520 0.470 0.515 0.465 0.510 0.460 0.505 0.455 0.500 0.450 100 200 1 1 2.0 2.0-195.0-41.8 210 300 1 1 6.0 2.0-40.0-20.0 310 1 3.0-18.0

7.7 计 算 程 序 183 **** ATOMIC ENERGIES **** ************************************ Kineti Energy= Nu-El Coulomb=.6813768D+03 -.1624688D+04 El--El Energy= Spin up Exhg =.3071392D+03 -.4507193D+02 Total Energy = -.6812438D+03 Virial ratio =.1999805D+01 spin-orbitals nl 100 spin 1 oup 2.0 E -152.6651305 200 210 1 1 2.0 6.0-12.7209732-9.2141014 300 310 1 1 2.0 3.0 -.9833246 -.3684071 Phosphorus Spin_Polarized state.72569 1 1-4.20-6 441 60 15 0 9 2 1.000 0.950 0.995 0.945 0.900 0.940 0.985 0.935 0.980 0.930 0.975 0.925 0.970 0.920 0.965 0.915 0.960 0.910 0.955 0.905 0.900 0.850 0.895 0.845 0.890 0.840 0.885 0.835 0.880 0.830 0.875 0.825 0.870 0.820 0.865 0.815 0.860 0.810 0.855 0.800 0.795 0.745 0.790 0.740 0.785 0.735 0.780 0.730 0.775 0.725 0.770 0.720 0.765 0.715 0.760 0.710 0.755 0.705 0.750 0.700 0.695 0.690 0.685 0.680 0.675 0.670 0.665 0.660 0.655 0.650 0.645 0.595 0.640 0.590 0.635 0.585 0.630 0.580 0.625 0.575 0.620 0.570 0.615 0.565 0.610 0.560 0.605 0.555 0.600 0.550 0.545 0.495 0.540 0.490 0.535 0.485 0.530 0.480 0.525 0.475 0.520 0.470 0.515 0.465 0.510 0.460 0.505 0.455 0.500 0.450 1.000 0.950 0.995 0.945 0.900 0.940 0.985 0.935 0.980 0.930 0.975 0.925 0.970 0.920 0.965 0.915 0.960 0.910 0.955 0.905 0.900 0.850 0.895 0.845 0.890 0.840 0.885 0.835 0.880 0.830 0.875 0.825 0.870 0.820 0.865 0.815 0.860 0.810 0.855 0.800 0.795 0.745 0.790 0.740 0.785 0.735 0.780 0.730 0.775 0.725 0.770 0.720 0.765 0.715 0.760 0.710 0.755 0.705 0.750 0.700 0.695 0.645 0.690 0.640 0.685 0.635 0.680 0.630 0.675 0.625 0.670 0.620 0.665 0.615 0.660 0.610 0.655 0.605 0.650 0.600 0.595 0.545 0.590 0.540 0.585 0.535 0.580 0.530 0.575 0.525 0.570 0.520 0.565 0.515 0.560 0.510 0.555 0.505 0.550 0.500 0.495 100 0.490 1 1.0 0.485 0.480-195.0 0.475 0.470 0.465 0.460 0.455 0.450 200 210 1 1 1.0 3.0-41.8-40.0 300 310 1 1 1.0 3.0-20.0-18.0 100 200 2 2 1.0 1.0-195.0-41.8 210 2 3.0-40.0

184 第 七 章 原 子 结 构 的 计 算 300 2 1.0-20.0 **** ATOMIC ENERGIES **** ************************************ Kineti Energy=.6815644D+03 Nu-El Coulomb= El--El Energy= -.1625375D+04.3076826D+03 Spin up Exhg = Spin Dn Exhg = -.2386447D+02 -.2143792D+02 Total Energy = -.6814307D+03 Virial ratio =.1999804D+01 spin-orbitals nl 100 spin 1 oup 1.0 E -152.6333667 200 210 1 1 1.0 3.0-12.6974850-9.1942103 300 310 1 1 1.0 3.0-1.0708087 -.4509173 100 200 2 2 1.0 1.0-152.6050145-12.6619486 210 300 2 2 3.0 1.0-9.1503035 -.7940065 下 面 是 程 序 清 单 C******************************************************************** C C Atomi X-alpha Program C C******************************************************************** C Impliit Real*8 (a-h,o-z) Logial watson,prnt,onvg Dimension ihg(12) Dimension ihdr(20) Dimension dumom(2084),u(521,2),unew(521,2) Dimension r(521),x(521) Dimension v(521,2),fn(521),a(521) Dimension po(521),p(521,10),rhosp(521,2),rho(521) Dimension nl(30),oup(30),e(30),nspin(30),kmx(30),delta(2), * kdel(2) Dimension rwk(521),vwk(521),pwk(521) Common dumom,r,v,rhosp,rho,e,oup,kmx,nspin,p Equivalene(dumom(1),unew(1,1)) Equivalene(dumom(1043),fn(1),x(1)) Equivalene(dumom(1564),a(1)) Data zero,one,two,three,four /0.0D0,1.0D0,2.0D0,3.0D0,4.0D0/

7.7 计 算 程 序 185 Data pi /3.141592653589793D0/ Data xinr /0.0025D0/ Data ihg /40,80,120,160,200,240,280,320,360,400,440,480/ Data watson,prnt,onvg /.FALSE.,.FALSE.,.FALSE./ C C******************************************************************** C C Read Header Card C******************************************************************** C Open(5,File='fi') Open(6,File='out.dat') Read(5,5000) ihdr Write(6,5100) ihdr C C--------------------Read Input Parameters and Flags----------------- C Read(5,5200) exfat,radion,ratio,frau,iprt,key,ntol,nthrsh, * mesh,maxit,nz,ion,nsts,nspins z=dfloat(nz) xion=dfloat(ion) fas=dfloat(nspins) tol=10.0d0**(ntol) thresh=10.0d0**(nthrsh) zion=xion twoion=xion+xion mesh=mesh-1 Write(6,5300) nz,ion,nsts,nspins,exfat,radion,ratio,frau, * key,ntol,nthrsh,mesh If(radion.GT.zero) watson=.true. If(iprt.NE.0) prnt=.true. nblok=mesh/40 C C******************************************************************** C Constant for Conversion from R(Ao) to Dimensionless C Thomas-Fermi radial variable x C******************************************************************** C tfd=two*z**(one/three)*(four/(three*pi))**(two/three) C C----------Construt X and R Meshes---------------------------------- C k=1 x(k)=zero r(k)=zero deltax=xinr Do 20 nb=1,nblok Do 10 i=1,40 k=k+1 x(k)=x(k-1)+deltax r(k)=x(k)/tfd 10 Continue deltax=deltax+deltax 20 Continue C

186 第 七 章 原 子 结 构 的 计 算 C-----110 point mesh potential read (key=1)-------------------------- C twoz=z+z Do 50 is=1,nspins Read(5,5400) (u(k,is),k=1,437,4) Do 30 k=1,437,4 u(k,is)=-twoz*u(k,is) 30 Continue u(441,is)=u(437,is) u(445,is)=u(437,is) n=9 Do 40 k=1,437,4 n=n-1 If(n.LT.0) Then u(k+1,is)=(22.0d0*u(k,is)+11.0d0*u(k+4,is) * -u(k+8,is))/32.0d0 u(k+2,is)=(10.0d0*u(k,is)+15.0d0*u(k+4,is) * -u(k+8,is))/24.0d0 u(k+3,is)=( 6.0D0*u(k,is)+27.0D0*u(k+4,is) * -u(k+8,is))/32.0d0 n=9 Else u(k+1,is)=(21.0d0*u(k,is)+14.0d0*u(k+4,is) * -3.0D0*u(k+8,is))/32.0D0 u(k+2,is)=( 3.0D0*u(k,is)+6.0D0*u(k+4,is) * -u(k+8,is))/8.0d0 u(k+3,is)=( 5.0D0*u(k,is)+30.0D0*u(k+4,is) * -3.0D0*u(k+8,is))/32.0D0 Endif 40 Continue 50 Continue C C C----setup of V mesh: V(R)=U(R)/R, C fator 2Z already absorbed in U(R) C Do 80 is=1,nspins v(1,is)=-9.9d35 kmax=min0(441,mesh) Do 60 k=2,kmax v(k,is)=u(k,is)/r(k) 60 Continue If(mesh.GT.kmax) Then Do 70 k=442,mesh v(k,is)=-twoion/r(k) 70 Continue Endif 80 Continue ------Read state(spin-orbital) Information spnup=zero spndn=zero Do 90 nst=1,nsts Read(5,5500) nl(nst),nspin(nst),oup(nst),e(nst) If(nspin(nst).EQ.1) spnup=spnup+oup(nst)

7.7 计 算 程 序 187 If(nspin(nst).EQ.2) spndn=spndn+oup(nst) 90 Continue ---Begin SCF iteration Do 270 iter=1,maxit Do 100 k=1,mesh rhosp(k,1)=zero rhosp(k,2)=zero rho(k)=zero 100 Continue ----Solve Shroedinger equation form eah spin-orbital Do 160 nst=1,nsts netry=0 etry=e(nst) n=nl(nst)/100 l=nl(nst)/10-10*n is=nspin(nst) Do 110 kk=1,520 rwk(kk)=r(kk+1) vwk(kk)=v(kk+1,is) pwk(kk)=po(kk+1) 110 Continue Call numrov(etry,nst,z,n,l,rwk,vwk,pwk,ihg,kmax,mesh, * thresh,ntries,prnt) Do 120 kk=2,521 r(kk)=rwk(kk-1) v(kk,is)=vwk(kk-1) po(kk)=pwk(kk-1) 120 Continue netry=max0(netry,ntries) kmax=kmax+1 ----Add this orbital density to spin density po(1)=zero If(is.NE.2) Then Do 130 k=1,kmax rhosp(k,1)=rhosp(k,1)+oup(nst)*po(k)**2 130 Continue Else Do 140 k=1,kmax rhosp(k,2)=rhosp(k,2)+oup(nst)*po(k)**2 140 Continue Endif ---store P*R for this spin-orbital Do 150 k=1,mesh p(k,nst)=po(k) 150 Continue kmx(nst)=kmax e(nst)=etry 160 Continue

188 第 七 章 原 子 结 构 的 计 算 ---end of shroedinger loop find total harge density and generate new potential Do 170 k=1,mesh rho(k)=rhosp(k,1)+rhosp(k,2) 170 Continue Call vgener(z,exfat,fas,ihg,mesh,nsts,nspins,watson, * radion,zion,ratio,onvg) ----find point of largest hange in U potential delta(1)=zero delta(2)=zero Do 190 is=1,nspins Do 180 k=1,mesh dif=dabs(u(k,is)-unew(k,is)) If(dif.GT.delta(is)) Then delta(is)=dif kdel(is)=k Endif 180 Continue Write(6,5700) iter,delta(is),kdel(is) 190 Continue delt=dmax1(delta(1),delta(2)) If(onvg) Goto 280 If(tol.GT.delt) onvg=.true. --- SCF potential not onverged: Calulate next trial pot-- If(netry.LE.2) frau=frau+(one-frau)/two If(frau.GT.0.5D0) frau=0.5d0 Do 220 is=1,nspins Do 200 k=1,mesh u(k,is)=(one-frau)*u(k,is)+frau*unew(k,is) 200 Continue Do 210 k=2,mesh vlast=v(k,is) v(k,is)=u(k,is)/r(k) unew(k,is)=v(k,is)-vlast 210 Continue 220 Continue unew(1,1)=zero unew(1,2)=zero ---next trial eigenvalues from 1st order pert:: <p DEL V p> Do 260 nst=1,nsts is=nspin(nst) kmax=kmx(nst) Do 230 k=1,kmax fn(k)=unew(k,is)*p(k,nst)**2 230 Continue Do 240 kk=1,520 rwk(kk)=r(kk+1) vwk(kk)=fn(kk+1) pwk(kk)=a(kk+1)

7.7 计 算 程 序 189 240 Continue Call integr(vwk,rwk,kmax,ihg,pwk,1) Do 250 kk=2,521 r(kk)=rwk(kk-1) fn(kk)=vwk(kk-1) a(kk)=pwk(kk-1) 250 Continue dele=a(kmax) e(nst)=e(nst)+dele 260 Continue Write(6,5600) (nl(nst),nspin(nst),oup(nst), * e(nst),nst=1,nsts) 270 Continue ---- end of SCF iteration loop Write(6,5800) Stop 280 Continue --- suessful onvergene of potential nards=mesh/8+1 If(mesh.EQ.(8*nards)) nards=nards-1 Write(6,5600) (nl(nst),nspin(nst),oup(nst), * e(nst),nst=1,nsts) Write(6,5900) --- print R. V meshes kf=1 Do 290 n=1,nards kl=kf+7 If(kl.GT.mesh) kl=mesh Write(6,6500) kf,(r(k),k=kf,kl) kf=kl+1 290 Continue Write(6,6000) Do 310 is=1,nspins Write(6,6100) is kf=1 Do 300 n=1,nards kl=kf+7 If(kl.GT.mesh) kl=mesh Write(6,6500) kf,(v(k,is),k=kf,kl) kf=kl+1 300 Continue 310 Continue If(iprt.GE.1) Then --- print radial funtions Do 330 nst=1,nsts n=nl(nst)/100 l=nl(nst)/10-10*n Write(6,6200) n,l,e(nst),oup(nst),nspin(nst),kmx(nst)

190 第 七 章 原 子 结 构 的 计 算 kmax=kmx(nst) kf=1 Do 320 n=1,nards kl=kf+7 If(kl.GT.kmax) kl=kmax Write(6,6500) kf,(p(k,nst),k=kf,kl) kf=kl+1 320 Continue 330 Continue Endif --- print harge density Write(6,6300) If(nspins.NE.1) Then Do 350 is=1,nspins If(is.EQ.2) Write(6,6700) Write(6,6400) is kf=1 Do 340 n=1,nards kl=kf+7 If(kl.GT.mesh) kl=mesh Write(6,6500) kf,(rhosp(k,is),k=kf,kl) kf=kl+1 340 Continue 350 Continue Endif Do 360 k=2,mesh rho(k)=r(k)*rho(k) 360 Continue kf=1 Write(6,6700) Write(6,6600) Do 370 n=1,nards kl=kf+7 If(kl.GT.mesh) kl=mesh Write(6,6500) kf,(rho(k),k=kf,kl) kf=kl+1 370 Continue Close(5) Close(6) Stop 5000 Format(20A4) 5100 Format(' ',20A4 * //T20,'***** input parameters *****' * /20X,36('*')//) 5200 Format(4F10.5/10I5) 5300 Format(T30,'At # =',I9/T30,'harge=',I9 * /T30,'# orbs=',i9 * /T30,'# spns=',i9 * /T30,'exfat=',F9.5 * /T30,'radion=',F9.5 * /T30,'ratio =',F9.5 * /T30,'frau =',F9.5 * /T30,'key =',I9

7.7 计 算 程 序 191 * /T30,'ntol =',I9 * * /T30,'nthrsh=',I9 /T30,'mesh =',I9//) 5400 Format(F8.5,9F7.5) 5500 Format(2I5,2F10.0) 5600 Format(//T5,'spin-orbitals',T21,'nl',T25,'spin',T31,'oup', * * T46,'E' /(T20,I3,T27,I1,T31,F4.1,T41,F13.7)) 5700 Format(//T19,'ITER #',I5,5X,'delta=',1PD14.7,2X,'- point',i4) 5800 Format('MAXIMUM # OF ITERATIONS EXCEEDED') 5900 Format('RADIAL MESH FOR THIS ATOM:'//) 6000 Format('XALPHA V POTENTIAL FOR THIS ATOM:'//) 6100 Format(//' SPIN',I2//) 6200 Format('SPIN-ORBITAL W/ N=,'I2,' L=',I2,' E=',1PD14.7, * * ' OCUP=',1X,F5.2,' NSPIN=',I2,' ' : FORM',' R*RADLFN'/) TO POINT',I5, 6300 Format('1 CHARGE DENSITY AT THE MESH POINTS:'/) 6400 Format(/' SPIN',I2/) 6500 Format(I5,1P8D16.6) 6600 Format(/' TOTAL CHARGE DENSITY, FORM RHO*(R**2) :'/) 6700 Format('1') End C Funtion blatt(e,p,r,vradl,hsqo12) ******************************************************************** find the first derivative of funtion generated by Numorov interpolation, interpolation the radial inrement points must be onstant. between the five r= radial mesh vradl= radial potential p= radial funtion obtained by integrating with energy E through the radial potential vradl(k) on mesh R(k) blatt= numerial derivative of p see: jm blatt, j omp phys 1:385 (1967) ******************************************************************** Impliit Real*8 (a-h,o-z) Dimension p(5),vradl(5),r(5) If(r(5)-r(1).LE.4.1D0*(r(2)-r(1))) Then h=dsqrt(12.d0*hsqo12) dif1=(p(4)-p(2))/2.d0 dif2=(p(5)-p(1))/2.d0 ddif1=((vradl(4)-e)*p(4)-(vradl(2)-e)*p(2))*hsqo12 ddif2=((vradl(5)-e)*p(5)-(vradl(1)-e)*p(1))*hsqo12 blatt=16.d0*(-dif1+37.d0*dif2/32.d0-37.d0*ddif1/5.d0 * -17.D0*ddif2/40.D0)/(21.D0*h) Return Endif Write(6,5000) Stop 5000 Format(' ERROR -- BLATT DERIVATIVE FORMULA IS CALLED', * End 'OVER A MESH DOUBLEING INTERVAL') C

192 第 七 章 原 子 结 构 的 计 算 Subroutine integr(f,r,kmx,ihg,a,md) ******************************************************************* integrates funtion F on 1-D mesh R by quadrtures, stores partial integrals in A See K S Kunz, Numerial Analysis ******************************************************************** Impliit Real*8 (a-h,o-z) Dimension f(*),r(*),ihg(12),a(*) Data s720,s646,s456,s346,s264,s251,s106,s74,s30,s25,s24, * s19,s11,s10,s9,s7,s6,s5,s4,s2 /720.D0,646.D0,456.D0, * 346.D0,264.D0,251.D0,106.D0,74.D0,30.D0,25.D0,24.D0, * 19.D0,11.D0,10.D0,9.D0,7.D0,6.D0,5.D0,4.D0,2.D0/ Data zero /0.D0/ h=r(2)-r(1) If(md.EQ.1) Then ----begin integration at zero k0=0 f0=zero Else --- begin integration at first point k0=1 a(1)=zero f0=f(1) Endif n=1 k0p1=k0+1 k0p2=k0+2 k0p3=k0+3 k0p4=k0+4 --- quadrature formulas q41(0),q41(1),q41(2) for first 3 points a(k0p1)=h*(s251*f0+s646*f(k0p1)-s264*f(k0p2)+s106*f(k0p3) * -s19*f(k0p4))/s720 a(k0p2)=a(k0p1)+h*(-s19*f0+s346*f(k0p1)+s456*f(k0p2) * -s74*f(k0p3)+s11*f(k0p4))/s720 a(k0p3)=a(k0p2)+h*(s11*f0-s74*f(k0p1)+s456*f(k0p2) * +s346*f(k0p3)-s19*f(k0p4))/s720 k0=k0p4 Do 20 k=k0,kmx km1=k-1 km2=k-2 km3=k-3 kih=k-ihg(n) If(kih.NE.1) Then If(kih.EQ.2) Goto 10 --- main part of integration: q31(2) a(k)=a(km1)+h*(s9*f(k)+s19*f(km1)-s5*f(km2)+f(km3))/s24

7.7 计 算 程 序 193 Goto 20 Endif -------if mesh interval just hanged, speial formulas h=h+h a(k)=a(km1)+h*(s2*f(k)+s7*f(km1)-s4*f(km2)+f(km3))/s6 Goto 20 10 n=n+1 a(k)=a(km1)+h*(s11*f(k)+s25*f(km1)-s10*f(km2) * +s4*f(km3))/s30 20 Continue If(mod(md,2).NE.0) Return ---- if MD even, reverse A Do 30 k=1,kmx a(k)=a(kmx)-a(k) 30 Continue Return End Subroutine numrov(e,nst,z,n,l,r,v,p,ihg,kmax,mesh,thresh, * ntries,prnt) ******************************************************************* solves shodinger equation numerially by numerov method V= partial potential inluding L*(L+1)/R**2 P= partial wave funtion in the form R*(Radlfn) assume V=infinity, P= zero at origin ******************************************************************* Impliit Real*8 (a-h,o-z) Logial utset,onedun,prnt Dimension dumom(2084) Dimension ihg(12),elast(30) Dimension r(520),p(520),vradl(520),v(520),a(520),fn(520) Common dumom Equivalene(dumom(1),vradl(1)) Equivalene(dumom(522),a(1)) Equivalene(dumom(1043),fn(1)) Data ntrymx,nrstmx,nmtplm /50,10,20/ Data zero,one,two,four,five,ten,twlve /0.D0,1.D0,2.D0,4.D0, * 5.D0,10.D0,12.D0/ ntries=0 nreset=0 nmtply=0 nodes=n-(l+1) angm=dfloat(l*(l+1)) onedun=.false. --- setup radial EQN potential (V plus ANGMOM pot. L)

194 第 七 章 原 子 结 构 的 计 算 Do 10 k=1,mesh vradl(k)=v(k)+angm/(r(k)*r(k)) 10 Continue If(elast(nst).EQ.zero) elast(nst)=1.25d0*e delast=dabs((elast(nst)-e)/e) Goto 30 20 Continue --- E has been reset non variationaly: reset DE-ontrol parameter If(prnt) Write(6,5500) nst,ntries,e delast=dabs(0.25d0*e) -- outward integration: To start exponential tail (where urvature goes negtive) 30 Continue ntries=ntries+1 If(ntries.LE.ntrymx) Then gkm1=-one utset=.false. h=r(2)-r(1) nross=0 Call pstart(h,z,l,e,v,p(1),p(2)) hsqo12=h*h/twlve pkm2=p(1) pkm1=p(2) dkm2=-(e-vradl(1))*pkm2*hsqo12 dkm1=-(e-vradl(2))*pkm1*hsqo12 i=1 Do 50 k=3,mesh gk=(e-vradl(k))*hsqo12 pk=(two*(pkm1+five*dkm1)-pkm2+dkm2)/(one+gk) p(k)=pk --- test for sign hanges in WFN If(pk*pkm1.LT.zero) nross=nross+1 If(.NOT.utset) Then --- test for hg of sign in urvature (outer turning point) If(gkm1.LT.zero.OR.gk.GE.zero) Then gkm1=gk Goto 40 Endif --- Have reahed turning point: set KSTOP for utoff integration utset=.true. kstop=k+2 If(kstop.EQ.ihg(i)-1) kstop=ihg(i) If(k-2.LT.ihg(i-1).AND.k+2.GT.ihg(i-1)) * kstop=ihg(i-1)+4

7.7 计 算 程 序 195 If(k-2.LT.ihg(i).AND.k+2.GT.ihg(i)) * kstop=ihg(i)+4 Else --- KSTOP set: hek if it is reahed If(k.EQ.kstop) Goto 60 Endif 40 If(k.GE.ihg(i)) Then --- numerov inrement for H just doubled i=i+1 hsqo12=four*hsqo12 dkm2=four*dkm2 dkm1=-four*gk*pk pkm1=pk Else ---numerov inrement for H unhanged dkm2=dkm1 dkm1=-gk*pk pkm2=pkm1 pkm1=pk Endif 50 Continue --- Error exit from outwards integration: Tail not reahed Reset E=VRADL(k) inside mesh and try again If(prnt) Write(6,5600) nst,ntries,k nreset=nreset+1 k=mesh-40*nreset e=vradl(k) If(nreset.GT.nrstmx) Goto 140 Goto 20 --- Suessful exit from outwards integration: Test # radial nodes 60 Continue If(nross.NE.nodes) Then ---- # of nodes in error: if too few, derease ABS(E) if too many, inrease ABS(E) If(prnt) Write(6,5700) nst,ntries,nross nmtply=nmtply+1 If(nmtply.GT.nmtplm) Goto 160 If(nross.LT.nodes) fat=0.75d0 If(nross.GT.nodes) fat=1.25d0 e=fat*e Goto 20 Endif

196 第 七 章 原 子 结 构 的 计 算 --- # of nodes orret: find P from blatt formula drvout=blatt(e,p(kstop-4),r(kstop-4), * vradl(kstop-4),hsqo12) kmath=kstop-2 pmath=p(kmath) --- end outward integration kstop=kstop-4 If(.NOT.onedun) Then --- skip searhfor kmax if one suesful inwards integral done bigex=69.08d0 in=11 kmax=mesh+40 70 Continue in=in-1 If(in.EQ.0) Goto 150 kmax=kmax-40 hsq=(h*h)*four**in --- set KMAX farther IN, if H too large for stabilit or RADLFN is in an underflow region If(hsq.GE.6.214D0/dabs(e)) Goto 70 ex=r(kmax)*dsqrt(vradl(kmax)-e) If(ex.GT.bigex) Goto 70 Do 80 k=kmax,mesh p(k)=zero 80 Continue Endif --- inward integration k=kmax i=in -- first two points by exponential approx hsqo12=(h*h/twlve)*four**i pkm2=dexp(-r(k)*dsqrt(vradl(k)-e)) dkm2=-(e-vradl(k))*pkm2*hsqo12 p(k)=pkm2 k=k-1 pkm1=dexp(-r(k)*dsqrt(vradl(k)-e)) dkm1=-(e-vradl(k))*pkm1*hsqo12 p(k)=pkm1 --- integrat down to kstop 90 k=k-1 gk=(e-vradl(k))*hsqo12 If(-gk.GT.one) Write(6,5300) e,gk pk=(two*(pkm1+five*dkm1)-pkm2+dkm2)/(one+gk)

7.7 计 算 程 序 197 p(k)=pk If(k.NE.kstop) Then If(k.LE.ihg(i)) Then --- inrement if interval just halved: alls 2 points i=i-1 dk=-pk*gk km1=k-1 km2=k-2 gkm1=(e-vradl(k))*hsqo12 pkm1=(two*(pk+five*dk)-pkm1+dkm1)/(one+gkm1) dkm1=-pkm1*gkm1/four hsqo12=hsqo12/four gkm2=(e-vradl(k))*hsqo12 dk=dk/four pkm2=((pk-dk)+(pkm1-dkm1))/(two-ten*gkm2) dkm2=-pkm2*gkm2 p(km1)=pkm2 If(km1.EQ.kstop) Goto 100 p(km2)=pkm1 If(km2.EQ.kstop) Goto 100 k=km2 Goto 90 Endif --- numerov invrement for H unhanged dkm2=dkm1 dkm1=-pk*gk pkm2=pkm1 pkm1=pk Goto 90 Endif --- end inward integration ---------------------------------------- 100 Continue onedun=.true. --- mah inwards integratrion to ontwards at KMATCH math=pmath/p(kmath) Do 110 k=kstop,mesh p(k)=p(k)*math 110 Continue drvin=blatt(e,p(kstop),r(kstop),vradl(kstop),hsqo12) drvdif=drvin-drvout --- variational priniple improvment for E Do 120 k=1,kmax fn(k)=p(k)*p(k) 120 Continue Call integr(fn,r,kmax,ihg,a,1) xnorm=a(kmax)

198 第 七 章 原 子 结 构 的 计 算 de=-p(kmath)*drvdif/xnorm If(prnt) Write(6,5800) nst,ntries,e,kmath,drvdif,de If(dabs(de/e).GE.thresh) Then --- E not onverged: if DE/E.gt. % hnage of ETRIAL from --- E of last potential iter, redue DE to that value If(dabs(de/e).GT.delast) de=de*dabs(delast*e/de) --- inrement energy and solve again e=e+de Goto 30 Endif --- energy is onverged: normalize WFN and return elast(nst)=e xnorm=dsqrt(xnorm) Do 130 k=1,kmax p(k)=p(k)/xnorm 130 Continue Return Endif --- error prints and stop Write(6,5000) Stop 140 Write(6,5100) Stop 150 Write(6,5200) Stop 160 Write(6,5400) Stop 5000 Format(' ntrymx exeeded in numerov--', * 'E onvergene too slow') 5100 Format(' annot find an exponential tail in numerov', * 'despite moving urvature CHG point bak to R(40).', * 'hek form of V.') 5200 Format(' starting mesh is too large to aommodate', * 'ore funtion integration by numerov') 5300 Format(' warning--- GK<-1 for E=',1X,D14.7, * ' and GK=',1X,D16.7/) 5400 Format(' E has been hanged to hunt for orret # of', * 'nodes more time than allowed') 5500 Format(' NST=',I3,' after NTRY=',I3,' is having E', * 'set non-variationally to ',1X,D20.7) 5600 Format(' Nst=',I3,' Trial #',I3,' does not reah tail', * 'E reset= VRADL(k)-K=',I4) 5700 Format(' NSt=',I3,' Trial #',I3,' has NCROSS=',I3, * ': E mult by fator to orret # radial nodes') 5800 Format(' NST=',I3,' Trial # ',I3,' has E=',1X,D14.7, * ' Kmath=', I3,' Drvdif=',D14.7,' De=',D14.7)

7.7 计 算 程 序 199 End Subroutine pstart(h,z,l,e,v,p1,p2) ******************************************************************** Begin integration of radial equation with angular momentum = L, near R=0, expands P=R*(radial FN)=SUM<0,4>(A(j)*R**j)*R**(L+1) and finds oefts A(J) by taking derivatives 0-3 of radial equation at R=0; ******************************************************************** Impliit Real*8 (a-h,o-z) Dimension v(3) Data s1,s3o2,s11o3,s2,s5o2,s3,s4,s6,s8,s12,s20 /1.D0,1.5D0, * 3.6666666666666D0,2.D0,2.5D0,3.D0,4.D0,6.D0,8.D0,12.D0, * 20.D0/ xl=dfloat(l) zoh=z/h -- derivs of R*(v(i)-E) at R=0 d0=-(z+z) d1=s3*(v(1)-v(2))+v(3)+s11o3*zoh-e d2=-(s5o2*v(1)-s4*v(2)+s3o2*v(3)+zoh+zoh)/h d3=((v(1)+v(3))/s2-v(2)+zoh/s3)/(h*h) --- expansion oeffiients a1=-z/(xl+s1) a2=(d0*a1+d1)/(s4*xl+s6) a3=(d0*a2+d1*a1+d2)/(s6*xl+s12) a4=(d0*a3+d1*a2+d2*a1+d3)/(s8*xl+s20) lp1=l+1 ---evaluation of series expansion for P=R*(radial funtion p1=(s1+h*(a1+h*(a2+h*(a3+h*a4))))*h**(lp1) th=h+h p2=(s1+th*(a1+th*(a2+th*(a3+th*a4))))*th**(lp1) Return End Subroutine vgener(z,exfat,fas,ihg,mesh,nsts,nspins, * watson,radion,zion,ratio,onvg) ******************************************************************** generate new atomi potential UNEW(k) from harge density information. if CONVG=.true., also alulates total energy under the HFS hamilton ******************************************************************** Impliit Real*8 (a-h,o-z) Logial onvg,watson Dimension dumom(2084),fn(521),a(521) Dimension r(521),p(521),rhosp(521,2),rho(521)

200 第 七 章 原 子 结 构 的 计 算 Dimension uoul(521),uexh(521,2),unew(521,2),v(521,2) Dimension e(30),nspin(30),kmx(30),oup(30) Dimension ihg(12),eexh(2) Dimension fwk(521),rwk(521),awk(521) Common dumom,r,v,rhosp,rho,e,oup,kmx,nspin,p Equivalene(dumom(1),uexh(1,1),unew(1,1)) Equivalene(dumom(1043),fn(1)) Equivalene(dumom(1564),a(1)) Data zero,one,two,three,six /0.D0,1.D0,2.D0,3.D0,6.D0/ Data third,s3o4 /0.33333333333333D0,0.75D0/ Data pi4 /12.56637061435916D0/ ---generate new potential U=R*V (rho,rhosp in form (R*P)**2) kmax=0 Do 10 nst=1,nsts kmax=max0(kmax,kmx(nst)) 10 Continue kmxm1=kmax-1 mesp=mesh-1 Do 20 k=1,1563 dumom(k)=zero 20 Continue --- exhange potential Do 40 is=1,nspins Do 30 k=1,kmax uexh(k,is)=-six*exfat*(three*fas*r(k)*rhosp(k,is) * /(two*pi4*pi4))**third 30 Continue 40 Continue If(onvg) Then --- if potential onverged, find E-E exhange energy eexh(1)=zero eexh(2)=zero Do 80 is=1,nspins Do 50 k=2,kmax fn(k)=s3o4*rhosp(k,is)*uexh(k,is)/r(k) 50 Continue Do 60 kk=1,520 fwk(kk)=fn(kk+1) rwk(kk)=r(kk+1) awk(kk)=a(kk+1) 60 Continue Call integr(fwk,rwk,kmxm1,ihg,awk,1) Do 70 kk=2,521 fn(kk)=fwk(kk-1) r(kk)=rwk(kk-1) a(kk)=awk(kk-1) 70 Continue eexh(is)=a(kmax)

7.7 计 算 程 序 201 80 Continue Endif --oulomb potential (assuming sperial symmetry) uoul(1)=zero Do 90 kk=1,520 fwk(kk)=rho(kk+1) rwk(kk)=r(kk+1) awk(kk)=uoul(kk+1) 90 Continue Call integr(fwk,rwk,mesp,ihg,awk,1) Do 100 kk=2,521 rho(kk)=fwk(kk-1) r(kk)=rwk(kk-1) uoul(kk)=awk(kk-1) 100 Continue all integr(rho(2),r(2),nesp,ihg,uoul(2),1) rho(1)=zero Do 110 k=2,kmax rho(k)=rho(k)/r(k) 110 Continue Do 120 kk=1,520 fwk(kk)=rho(kk+1) rwk(kk)=r(kk+1) awk(kk)=fn(kk+1) 120 Continue Call integr(fwk,rwk,kmxm1,ihg,awk,1) Do 130 kk=2,521 rho(kk)=fwk(kk-1) r(kk)=rwk(kk-1) fn(kk)=awk(kk-1) 130 Continue Do 140 k=1,kmax fn(k)=fn(kmax)-fn(k) 140 Continue --- UCOUL set equal eletron-eletron oulomb potential Do 150 k=1,mesh uoul(k)=uoul(k)+r(k)*fn(k) 150 Continue If(onvg) Then --- if potential onverged, find N-E,& E-E oulomb energies enuel=-two*z*fn(1) Do 160 k=1,kmax fn(k)=rho(k)*uoul(k) 160 Continue Do 170 kk=1,520 fwk(kk)=fn(kk+1) rwk(kk)=r(kk+1) awk(kk)=a(kk+1) 170 Continue

202 第 七 章 原 子 结 构 的 计 算 Call integr(fwk,rwk,kmxm1,ihg,awk,1) Do 180 kk=2,521 fn(kk)=fwk(kk-1) r(kk)=rwk(kk-1) a(kk)=awk(kk-1) 180 Continue eeoul=a(kmax) Endif ---new oulomb potential (nulear+eletroni) Do 190 k=1,mesh uoul(k)=two*(uoul(k)-z) If(watson) Then -- watson sphere ontribution, if any xion=zion*ratio If(r(k).LT.radion) Then uoul(k)=uoul(k)+two*xion*r(k)/radion Else uoul(k)=uoul(k)+two*xion Endif Endif 190 Continue ---sum oulomb and exange terms Do 210 is=1,nspins Do 200 k=1,mesh unew(k,is)=uoul(k)+uexh(k,is) 200 Continue 210 Continue If(.NOT.onvg) Then Return Endif --- Total Energy Calulation ekinet=zero --- Kineti energy from integration (E-V) over orbital densities Do 220 nst=1,nsts ekinet=ekinet+oup(nst)*e(nst) 220 Continue Do 260 is=1,nspins Do 230 k=2,kmax fn(k)=v(k,is)*rhosp(k,is) 230 Continue Do 240 kk=1,520 fwk(kk)=fn(kk+1) rwk(kk)=r(kk+1) awk(kk)=a(kk+1) 240 Continue Call integr(fwk,rwk,kmxm1,ihg,awk,1)

7.7 计 算 程 序 203 Do 250 kk=2,521 fn(kk)=fwk(kk-1) r(kk)=rwk(kk-1) a(kk)=awk(kk-1) 250 Continue ekinet=ekinet-a(kmax) 260 Continue ewats=zero If(watson) Then --- watson sphere ontibution if any xion=zion*ratio Do 270 k=2,kmax If(r(k).LT.radion) Then fn(k)=two*xion*r(k)/radion Else fn(k)=two*xion Endif 270 Continue Do 280 k=2,kmax fn(k)=fn(k)*rho(k) 280 Continue Do 290 kk=1,520 fwk(kk)=fn(kk+1) rwk(kk)=r(kk+1) awk(kk)=a(kk+1) 290 Continue Call integr(fwk,rwk,kmxm1,ihg,awk,1) Do 300 kk=2,521 fn(kk)=fwk(kk-1) r(kk)=rwk(kk-1) a(kk)=awk(kk-1) 300 Continue ewats=a(kmax) Endif ---SUM and Print Total energy etotal=ekinet+eeoul+eexh(1)+eexh(2)+enuel+ewats virial=-etotal/ekinet+one Write(6,5100) Write(6,5000) ekinet,enuel,eeoul,eexh(1),eexh(2),ewats, * etotal,virial Return 5000 Format(//T20,'**** ATOMIC ENERGIES ****' * /T20,36('*') * //T20,'Kineti Energy=',1X,D21.7 * /T20,'Nu-El Coulomb=',1X,D21.7 * /T20,'El--El Energy=',1X,D21.7 * /T20,'Spin up Exhg =',1X,D21.7 * /T20,'Spin Dn Exhg =',1X,D21.7 * /T20,'Watson Sphere =',1X,D21.7 * ///T20,'Total Energy =',1X,D21.7 * /T20,'Virial ratio =',1X,D21.7 * ///)

204 第 七 章 原 子 结 构 的 计 算 5100 Format('1') End