数 值 分 析 Numerical Analysis 潘建瑜 华东师范大学数学系
科学计算 硬件 计算机 软件:核心是算法 数值算法 非数值算法 计算机硬件所追求的是快而稳定 软件则是利用计算机高速的简单运算去实现各种复杂 的功能和解决各种复杂的问题
科学计算 借助计算机高速计算的能力,解决现代科学、工程、经济或人文中的复杂问题,是计算机与数学的有机结合 科学计算是20世纪重要科学技术进步之一,已与理论研究和实验研究相并列成为科学研究的第三种方法。现今科学计算已是体现国家科学技术核心竞争力的重要标志,是国家科学技术创新发展的关键要素。 —— 国家自然科学基金委员会,2014年重大研究计划项目指南 在迅猛发展的高性能计算技术推动下, 计算科学将是 21 世纪确保国家核心竞争能力的战略技术之一。 —— 计算科学: 确保美国竞争力,2005年美国总统信息技术咨询委员会
科学计算 科学计算的核心/数学基础:计算数学 传统的科学计算是针对科学和工程中的数学问题,设计/分析有效的求解算法,即为数值分析/计算方法
科学计算 利用计算机解决实际问题的一般过程: 实际 问题 抽象简化 数学模型 修正改进 数值 方法 设计数值算法 编写程序 计算机 求解
应用举例 例:一个古老的数学问题 问:今有 上禾三秉,中禾二秉,下禾一秉,实三十九斗; 上禾二秉,中禾三秉,下禾一秉,实三十四斗; 上禾一秉,中禾二秉,下禾三秉,实二十六斗。 问上、中、下禾实一秉各几何? ——《九章算术》
应用举例 线性方程组数值求解 —— 教材第五、六章
应用举例 插值与曲线拟合 —— 教材第二、三章 例:人口预测 表格中是我国1950年到2005年的人口数 (见中国统计年鉴),预测未来的人口数 年份 人口(万) 1950 55196 1955 61465 1960 66207 1965 72538 1970 82992 1975 92420 1980 98705 1985 105851 1990 11433 1995 121121 2000 126743 2005 130756 插值与曲线拟合 —— 教材第二、三章
应用举例 Gx = x, eTx =1 矩阵特征值计算 —— 教材第八章 例:Google 搜索引擎 G: Google Matrix, 1998 年创立,市值近2500亿 (2012.10) Gx = x, eTx =1 G: Google Matrix, “the world’s largest matrix computation” x: PageRank vector “The $25,000,000,000 Eigenvector” —— SIAM Review,2006 矩阵特征值计算 —— 教材第八章
数值分析 数值分析/计算方法的任务 设计求解各种实际问题的高效可靠的数值方法 可靠:收敛性稳定性等有数学理论保证 高效:尽可能地节省计算时间和存储空间 对求得的数值解的精度进行评估 研究数值算法在计算机上的实现 对于同一个问题,不同的算法在计算性能上可能相差百万倍或者更多!
数值分析 例:求解一个 n 阶线性方程组,若使用克莱姆法则,需要计算 n+1 个 n 阶行列式,在不计加减运算情况下,需要 n!(n2-1) 次乘除运算。而使用高斯消去法,只需约 2n3/3 次乘除运算。 当 n=20 时, 用每秒运算 30 亿次(主频3.0G)的计算机求解时,大约需要10000年的时间 如果使用高斯消去法,不到一秒钟就能完成!
数值方法 数值方法的特点 方法是近似的,所以求出的解是有误差的 与计算机紧密结合:易于上机实现 熟悉一门语言:C 语言或 Fortran 语言 掌握一种数学软件:Matlab,Maple 或 Mathematica Matlab 优点: 用 Matlab 处理矩阵 —— 容易 用 Matlab 绘图 —— 轻松 用 Matlab 编程 —— 简洁 用 Matlab 的工具箱 —— 高效
几个基本概念 解析解、精确解、真解、真值 数值解、近似解 数值方法/算法:求问题的数值解的方法 算法的可靠性包括:收敛性,稳定性,误差估计等 算法的评价(优劣) 时间复杂度(计算机运行时间) 空间复杂度(所占用的计算机存储空间) 逻辑复杂度(影响程序开发的周期以及维护的难易程度)
课程基本信息 教材:数值分析(第五版) 上机:课堂通知 答疑:周三晚上 18:30—20:30,数学楼 213 李庆扬等编著,清华大学出版社,2008 上机:课堂通知 答疑:周三晚上 18:30—20:30,数学楼 213 课程主页:http://math.ecnu.edu.cn/~jypan/Teaching/ 参考资料:见课程主页 考核方式: 平时 40%(期中, 作业, 上机, 考勤)+ 期末 60%
课程内容 函数插值 函数逼近 数值积分和数值微分 线性方程组的直接解法和迭代解法 非线性方程(组)的数值求解 矩阵特征值与特征向量的计算 常微分方程的数值解法
预备知识 数学分析 高等代数(线性代数) 常微分方程 Matlab 编程
学习建议 注意掌握数值方法的基本思想和原理 注意数值方法处理的技巧及其与计算机的结合 要重视误差分析、收敛性和稳定性的基本理论 注重必要的数值计算训练(手算,上机)