C#科学计算讲义

978-7-115-29401-2
作者: 宋叶志 徐导 何峰
译者:
编辑: 王峰松
分类: C#

图书目录:

目 录

引言 1

第 1章 C#程序设计基础 9

1.1 计算机、程序设计与算法 9

1.1.1 计算机结构 9

1.1.2 操作系统 10

1.1.3 机器语言与高级语言 10

1.1.4 程序设计与算法 10

1.2 C#历史与概述 11

1.2.1 C语言:结构化编程语言的高峰 11

1.2.2 C++语言: 面向对象与大型程序 11

1.2.3 Java语言:可移植、安全性与Internet 11

1.2.4 C#:.NET主打语言 12

1.3 集成开发环境介绍 12

1.4 面向对象程序设计 16

1.4.1 封装 16

1.4.2 多态 16

1.4.3 继承 17

1.5 数据类型与运算符 17

1.5.1 简单数据类型 17

1.5.2 数组 17

1.5.3 运算符 17

1.5.4 赋值运算符 18

1.6 程序控制结构 18

1.6.1 顺序结构 18

1.6.2 分支结构 18

1.6.3 循环结构 20

1.6.4 控制结构的嵌套 21

1.7 类的设计及对象实现 21

1.7.1 定义类 22

1.7.2 创建对象 22

1.7.3 方法 22

1.7.4 构造函数 23

1.7.5 析构函数与垃圾回收 23

1.8 运算符重载及索引器 24

1.8.1 运算符重载 24

1.8.2 索引器 26

1.8.3 面向对象思想在C#程序设计中的重要性 27

1.9 GUI编程 28

1.10 本章小结31

第 2章 线性方程组迭代解法 32

2.1 Jacobi 迭代法 32

2.1.1 基本原理 32

2.1.2 实验内容与数据 33

2.1.3 程序源代码 33

2.1.4 实验结论 37

2.2 Gauss-Seidel迭代法 38

2.2.1 基本原理 38

2.2.2 实验内容与数据 39

2.2.3 程序源代码 39

2.2.4 实验结论 43

2.3 逐次超松弛迭代法44

2.3.1 基本原理 44

2.3.2 实验内容与数据 44

2.3.3 程序源代码 45

2.3.4 实验结论 49

2.4 Richardson迭代法 50

2.4.1 基本原理 50

2.4.2 实验内容与数据 50

2.4.3 程序源代码 50

2.4.4 实验结论 54

2.5 广义Richardson迭代法 55

2.5.1 基本原理 55

2.5.2 实验内容与数据 55

2.5.3 程序源代码 55

2.5.4 实验结论 60

2.6 Jacobi超松弛迭代法 60

2.6.1 基本原理 60

2.6.2 实验内容与数据 61

2.6.3 程序源代码 61

2.6.4 实验结论 65

2.7 **速下降法 66

2.7.1 基本原理 66

2.7.2 实验内容与数据 66

2.7.3 程序源代码 67

2.7.4 实验结论 71

2.8 共轭梯度法 72

2.8.1 基本原理 72

2.8.2 实验内容与数据 72

2.8.3 程序源代码 72

2.8.4 实验结论 77

2.9 本章小结 77

第3章 线性方程组的直接解法 78

3.1 三角方程组 78

3.1.1 基本原理 78

3.1.2 实验内容与数据 79

3.1.3 程序代码 79

3.1.4 实验结论 83

3.2 高斯消去法 83

3.2.1 基本原理 83

3.2.2 实验内容与数据 84

3.2.3 程序源代码 84

3.2.4 实验结论 89

3.3 选主元消去法 90

3.3.1 基本原理 90

3.3.2 实验内容与数据 90

3.3.3 程序源代码 90

3.3.4 实验结论 96

3.4 Crout分解 97

3.4.1 基本原理 97

3.4.2 实验内容与数据 98

3.4.3 程序源代码 98

3.4.4 实验结论 103

3.5 Doolittle分解 103

3.5.1 基本原理 103

3.5.2 实验内容与数据 104

3.5.3 程序源代码 104

3.5.4 实验结论 108

3.6 追赶法计算三对角方程 109

3.6.1 基本原理 109

3.6.2 实验内容与数据 110

3.6.3 程序源代码 110

3.6.4 实验结论 114

3.7 行列式的计算 115

3.7.1 基本原理 115

3.7.2 实验内容与数据 115

3.7.3 程序源代码 115

3.7.4 实验结论 119

3.8 本章小结 120

第4章 正交变换与**小二乘计算方法 121

4.1 对称正定阵的Cholesky分解 121

4.1.1 基本原理 121

4.1.2 实验内容与数据 122

4.1.3 程序源代码 122

4.1.4 实验结论 126

4.2 不开平方的Cholesky分解 127

4.2.1 基本原理 127

4.2.2 实验内容与数据 127

4.2.3 程序源代码 127

4.2.4 实验结论 132

4.3 QR分解之Householder镜像变换方法 133

4.3.1 基本原理 133

4.3.2 实验内容与数据 134

4.3.3 程序源代码 134

4.3.4 实验结论 140

4.4 修正的Gram-Schimdt正交化方法 141

4.4.1 基本原理 141

4.4.2 实验内容与数据 142

4.4.3 程序源代码 142

4.4.4 实验结论 147

4.5 求解法方程计算**小二乘问题 147

4.5.1 基本原理 147

4.5.2 实验内容与数据 149

4.5.3 程序源代码 149

4.5.4 实验结论 157

4.6 QR分解法计算**小二乘问题 158

4.6.1 基本原理 158

4.6.2 实验内容与数据 159

4.6.3 程序源代码 159

4.6.4 实验结论 167

4.7 加权**小二乘与Gauss-Markov估计 167

4.7.1 基本原理 167

4.7.2 实验内容与数据 169

4.7.3 程序源代码 169

4.7.4 实验结论 178

4.8 具有先验信息的贝叶斯估计 178

4.8.1 基本原理 178

4.8.2 实验内容与数据 179

4.8.3 程序源代码 179

4.8.4 实验结论 189

4.9 工程应用中**小二乘法的实用方法 191

4.10 本章小结 192

第5章 鲁棒估计 193

5.1 M估计的IGGI方案 193

5.1.1 基本原理 193

5.1.2 实验内容与数据 194

5.1.3 程序源代码 196

5.1.4 实验结论 208

5.2 Hampel函数作标准等价权 210

5.2.1 基本原理 210

5.2.2 实验内容与数据 210

5.2.3 程序源代码 212

5.2.4 实验结论 224

5.3 Huber估计 227

5.3.1 基本原理 227

5.3.2 实验内容与数据 227

5.3.3 程序源代码 229

5.3.4 实验结论 241

5.4 本章小结 243

第6章 随机数 244

6.1 乘同余法均匀分布随机数发生器 244

6.1.1 基本原理 244

6.1.2 实验内容与数据 244

6.1.3 程序源代码 244

6.1.4 实验结论 248

6.2 混合同余法均匀分布随机数发生器 249

6.2.1 基本原理 249

6.2.2 实验内容与数据 249

6.2.3 程序源代码 249

6.2.4 实验结论 253

6.3 正态分布随机数 253

6.3.1 基本原理 253

6.3.2 实验内容与数据 254

6.3.3 程序源代码 254

6.3.4 实验结论 261

6.4 蒙特卡罗方法介绍 261

6.4.1 基本原理 261

6.4.2 实验内容与数据 262

6.4.3 程序源代码 262

6.4.4 实验结论 265

6.5 本章小结 265

第7章 插值法 266

7.1 拉格朗日插值 266

7.1.1 基本原理 266

7.1.2 实验内容与数据 266

7.1.3 程序源代码 266

7.1.4 实验结论 270

7.2 牛顿插值法 271

7.2.1 基本原理 271

7.2.2 实验内容与数据 271

7.2.3 程序源代码 271

7.2.4 实验结论 276

7.3 Hermite插值法 276

7.3.1 基本原理 276

7.3.2 实验内容与数据 277

7.3.3 程序源代码 277

7.3.4 实验结论 281

7.4 本章小结 281

第8章 非线性方程数值解法 282

8.1 Picard迭代法 282

8.1.1 基本原理 282

8.1.2 实验内容与数据 283

8.1.3 程序源代码 283

8.1.4 实验结论 285

8.2 牛顿迭代法 285

8.2.1 基本原理 285

8.2.2 实验内容与数据 286

8.2.3 程序源代码 286

8.2.4 实验结论 289

8.3 割线法 289

8.3.1 基本原理 289

8.3.2 实验内容与数据 290

8.3.3 程序源代码 290

8.3.4 实验结论 293

8.4 重根时的迭代改进 293

8.4.1 基本原理 293

8.4.2 实验内容与数据 294

8.4.3 程序源代码 294

8.4.4 实验结论 297

8.5 应用范例:债券到期收益率的计算 297

8.5.1 基本原理 297

8.5.2 实验内容与数据 298

8.5.3 程序源代码 298

8.5.4 实验结论 304

8.6 本章小结 304

第9章 非线性**优化 305

9.1 一维搜索之黄金分割法 305

9.1.1 基本原理 305

9.1.2 实验内容与数据 306

9.1.3 程序源代码 306

9.1.4 实验结论 310

9.2 连续抛物线插值法 311

9.2.1 基本原理 311

9.2.2 实验内容与数据 312

9.2.3 程序源代码 312

9.2.4 实验结论 316

9.3 多维非线性**优化牛顿下山法 317

9.3.1 基本原理 317

9.3.2 实验内容与数据 318

9.3.3 程序源代码 318

9.3.4 实验结论 325

9.4 **速下降法 327

9.4.1 基本原理 327

9.4.2 实验内容与数据 327

9.4.3 程序源代码 327

9.4.4 实验结论 333

9.5 变尺度之DFP方法 333

9.5.1 基本原理 333

9.5.2 实验内容与数据 335

9.5.3 程序源代码 335

9.5.4 实验结论 341

9.6 拟牛顿之BFGS方法 341

9.6.1 基本原理 341

9.6.2 实验内容与数据 342

9.6.3 程序源代码 342

9.6.4 实验结论 349

9.7 本章小结349

第 10章 常微分方程(组)的数值方法350

10.1 经典Rung-Kutta方法 350

10.1.1 基本原理 350

10.1.2 实验内容与数据 351

10.1.3 程序源代码 351

10.1.4 实验结论 353

10.2 Gill方法 354

10.2.1 基本原理 354

10.2.2 实验内容与数据 355

10.2.3 程序源代码 355

10.2.4 实验结论 357

10.3 Rung-Kutta方法计算微分方程组 358

10.3.1 基本原理 358

10.3.2 实验内容与数据 359

10.3.3 程序源代码 359

10.3.4 实验结论 363

10.4 Adams-Bashforth三步三阶方法 364

10.4.1 基本原理 364

10.4.2 实验内容与数据 365

10.4.3 程序源代码 365

10.4.4 实验结论 371

10.5 Adams-Bashforth四步四阶方法 372

10.5.1 基本原理 372

10.5.2 实验内容与数据 372

10.5.3 程序源代码 372

10.5.4 实验结论 379

10.6 三阶Adams预测校正方法(PECE) 380

10.6.1 基本原理 380

10.6.2 实验内容与数据 381

10.6.3 程序源代码 381

10.6.4 实验结论 387

10.7 四阶Adams预测校正方法(PECE) 388

10.7.1 基本原理 388

10.7.2 实验内容与数据 389

10.7.3 程序源代码 389

10.7.4 实验结论 396

10.8 辛结构与哈密顿系统的辛算法介绍 397

10.8.1 基本原理 397

10.8.2 实验内容与数据 400

10.8.3 程序源代码 400

10.8.4 实验结论 405

10.9 本章小结 406

附录A C# 数值代数类的抽象与设计 408

附录B 动态链接库与混合编程 428

B.1 静态链接库与动态链接库 428

B.2 C#调用Fortran动态链接库范例 428

B.3 调用可执行函数 433

附录C Linux下C#开发与跨平台编程介绍 444

C.1 Mono简介 444

C.2 Linux下C#IDE开发范例 444

参考文献 454

详情

本书全面深入的介绍了经典科学计算方法理论及C#编程实现,全部算法给出源代码。读者群定位于大中专院校的理工科学生、商业公司等,拥有稳定的读者群体。

图书摘要

相关图书

程序员的制胜技
程序员的制胜技
C#开发案例精粹
C#开发案例精粹
C#完全自学教程
C#完全自学教程
C#从入门到精通(第2版)
C#从入门到精通(第2版)
 C#初学者指南
C#初学者指南
C#本质论(第4版)
C#本质论(第4版)

相关文章

相关课程