还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数值分析完美教学课件第一章数值分析概述与基础学习目标核心问题•理解数值分析的基本概念与应用范围•如何在有限精度下解决连续问题?•掌握计算机数值表示的特性与限制•数值误差如何产生与传播?•学习误差分析的基础理论数值分析是什么?数值分析定义真实世界中的数值问题示例数值分析是研究用数值计算方法解决数学问题的学科,主要关注连续工程领域问题的离散化算法设计与分析它是计算数学的重要分支,为工程科学提供了解决复杂问题的实用工具结构分析、流体动力学模拟、热传导计算数值计算vs符号计算•数值计算使用离散数值近似连续问题,处理具体数值金融行业•符号计算处理数学表达式和符号,给出精确解析解期权定价、风险评估、投资组合优化•两者互补复杂问题往往需要结合使用科学研究计算机中的数值表示浮点数系统机器精度误差类型IEEE754标准定义了浮点数表示格式机器精度ε是计算机能区分的最小相对差数值计算中的误差可分为值•单精度32位1位符号+8位指数+23•绝对误差|x-x̃|真实值与近似值的差位尾数•单精度约为2-23≈
1.19×10-7的绝对值•双精度64位1位符号+11位指数+•双精度约为2-52≈
2.22×10-16•相对误差|x-x̃|/|x|更常用,表示误52位尾数差占真实值的比例•舍入误差不可避免1/3无法精确表示•特殊值±0,±∞,NaN非数值浮点数分布特性浮点数分布特点浮点数特性影响•非均匀分布小数值区域密度高,这种分布特性对数值算法设计有重要影大数值区域密度低响•相邻浮点数间距随数值大小成比例•大小相近的大数相减会导致有效位增长数显著减少•有限覆盖范围单精度约±1038,•累加大量小数可能导致后面的加数双精度约±10308被吞噬误差分析基础舍入误差截断误差稳定性与收敛性因有限精度表示导致的误差因数学简化导致的误差数值算法的关键性质•浮点数无法精确表示某些有理数和无•无限过程的有限近似(如级数展开截•稳定性小输入变化导致小输出变化理数断)•收敛性近似解随计算精度提高而趋•舍入模式向零舍入、向最近舍入等•连续函数的离散化(如微分方程的差向真解分近似)•例
0.1在二进制中是无限循环小数•条件数问题对输入扰动的敏感度度•通常可通过理论分析估计其大小量误差传播实例第二章线性代数中的数值方法本章核心内容现实应用领域•线性方程组的直接解法与迭代解法•结构工程中的有限元分析•矩阵分解技术及其应用•图像处理与计算机视觉•特征值与特征向量的数值计算•网络分析与搜索引擎排名算法•量子力学中的量子态计算线性方程组的直接解法高斯消元法与LU分解矩阵条件数与解的敏感性•高斯消元通过行变换将矩阵转化为上三角形式条件数κA=‖A‖·‖A⁻¹‖衡量矩阵对扰动的敏感性•LU分解将矩阵A分解为A=LU,其中L为单位下三角矩阵,U为上•条件数大→病态问题小输入变化导致大输出变化三角矩阵•条件数小→良态问题输入扰动影响有限•计算复杂度对n×n矩阵约为On³•优势分解一次后可快速求解多个右端向量的方程组数值稳定性考虑Cholesky分解当处理大型或接近奇异的矩阵时,应考虑•适用于对称正定矩阵A=AT且所有特征值0•使用列主元或全主元消元提高稳定性•分解形式A=LLT,其中L为下三角矩阵•采用QR分解等更稳定的方法•计算量约为LU分解的一半迭代法简介雅可比迭代高斯-赛德尔迭代共轭梯度法解线性方程组Ax=b的简单迭代方法雅可比法的改进版本求解对称正定线性系统的高效方法•将A分解为A=D+L+U,其中D是对角矩•迭代格式xk+1=D+L-1b-Uxk•基于最小化二次型fx=½xTAx-bTx阵•立即使用已更新的分量,加速收敛•构造A-共轭方向集,理论上n步收敛•迭代格式xk+1=D-1b-L+Uxk•通常比雅可比法收敛更快•特别适合大型稀疏系统•每次迭代使用上一次的所有分量•对角占优矩阵时保证收敛•预处理技术可进一步提高效率•收敛条件谱半径ρD-1L+U1稀疏矩阵存储与计算优化分解过程可视化LULU分解的关键步骤LU分解的实际应用
1.将矩阵A表示为下三角矩阵L和上三角矩阵U的乘积A=LU LU分解的主要优势在于将矩阵求逆和线性系统求解分为两个简单步骤
2.通过高斯消元过程隐式构建L和U
3.消元过程中的乘数被存储在L的相应位置
1.前向替换解下三角系统Ly=b
4.最终得到的简化行阶梯形矩阵即为U
2.后向替换解上三角系统Ux=y第三章非线性方程求解问题定义1寻找函数fx=0的解,其中f可能是非线性的、复杂的,或没有解析解的函数应用领域2物理系统平衡点、工程设计优化、经济模型均衡点、化学反应平衡浓度计算等解决策略迭代方法是主要策略,通过构造序列{x}收敛到方程的根收敛速度和ₙ稳定性是关键考量因素单变量非线性方程求根方法二分法与割线法牛顿法及其收敛性分析二分法Binary Search基于区间搜索的简单方法牛顿法Newtons Method利用切线逼近•要求初始区间[a,b]满足fa·fb0•迭代公式x=x-fx/fxₙ₊₁ₙₙₙ•每次迭代将区间长度减半•几何解释在当前点处用切线近似函数•收敛速度慢线性收敛,但稳定可靠•二次收敛误差大致以平方速度减小•要求函数可导且导数不接近零割线法Secant Method使用两点近似导数•迭代公式x=x-fx·x-x/fx-fxₙ₊₁ₙₙₙₙ₋₁ₙₙ₋₁多重根与收敛速度•不需要计算导数,但需要两个初始点当fx=x-rᵐgx,gr≠0时,r为m重根•收敛速度介于线性和二次之间(约
1.618次)•标准牛顿法仅线性收敛,速度变慢•改进x=x-m·fx/fx可恢复二次收敛ₙ₊₁ₙₙₙ多变量非线性方程组牛顿法的推广雅可比矩阵与数值求导求解方程组Fx=0,其中F:ℝⁿ→ℝⁿ,x∈ℝⁿ雅可比矩阵JF包含所有偏导数[JF]ij=∂Fi/∂xj•迭代公式xk+1=xk-[JFxk]-1Fxk•解析计算当偏导数表达式简单时使用•每步需求解线性方程组JFxkΔxk=-Fxk•数值近似前向差分∂F/∂xj≈[Fx+hеj-Fx]/h•在良好初值附近具有二次收敛性•中心差分提供更高精度∂F/∂xj≈[Fx+hеj-Fx-hеj]/2h•计算成本高需计算雅可比矩阵并求解线性系统实际案例非线性系统求解示范考虑一个化学平衡系统,涉及三个未知浓度x₁,x₂,x₃,满足以下方程多变量牛顿法实施策略•F₁x=x₁x₂-K₁x₃=
01.选择合理初值(利用物理意义或简化模型)•F₂x=x₁+x₂+2x₃-C=
02.采用反向线搜索等技术增强全局收敛性•F₃x=x₁x₃-K₂x₂²=
03.使用拟牛顿法如BFGS避免每步计算雅可比矩阵其中K₁,K₂是反应平衡常数,C是总浓度这类方程组在计算化学反应平
4.结合信赖域方法提高稳健性衡时常见,通常需要牛顿法或其变种求解第四章插值与逼近核心问题如何通过已知数据点构建连续函数?有两种主要方法插值构造精确通过所有数据点的函数逼近构造接近但不一定通过所有数据点的函数应用场景•数据分析与可视化•数值积分与微分的基础•计算机图形学中的曲线生成•实验数据拟合与模型构建•数值解微分方程的基础本章将探讨如何从离散数据点构建连续函数,这是数值分析中的基础问题,也是许多高级数值方法的基石我们将研究多项式插值、分段插值和函数逼近的方法与理论多项式插值拉格朗日插值法Runge现象与节点选择通过n+1个数据点x₀,y₀,...,x,y构造n次多项式高次多项式插值的主要问题ₙₙLx=Σ[i=0to n]yiℓix,其中基函数•等距节点下,高次插值在区间边缘可能出现剧烈振荡•这种现象称为Runge现象,随多项式次数增加而恶化ℓix=Π[j=0,j≠i to n]x-xj/xi-xj•每个基函数ℓixj在xi处为1,其他节点处为0改进策略•适合理论分析,但计算效率不高Chebyshev节点xi=cos2i+1π/2n+2,i=0,1,...,n牛顿插值法与差商表分段低次插值避免使用单个高次多项式牛顿插值多项式形式平滑插值使用样条等具有平滑性保证的方法Nx=a₀+a₁x-x₀+a₂x-x₀x-x₁+...•系数ai是差商f[x₀,x₁,...,xi]•通过差商表高效计算•易于添加新数据点(增量计算)分段插值与样条函数线性样条三次样条样条插值的优势最简单的分段插值方法实际应用中最常用的样条插值相比单一高次多项式•在每个子区间[xi,xi+1]使用线性函数•每个子区间使用三次多项式•避免高次多项式的振荡(Runge现象)•Six=yi+yi+1-yix-xi/xi+1-xi•保证函数值、一阶导数和二阶导数在节•局部性一处数据变化仅影响局部形状点处连续•连续但不光滑(一阶导数不连续)•计算稳定,对数据噪声不敏感•自然边界条件端点处二阶导数为零•简单稳定,不会出现Runge现象•保持数据固有形态特征•需求解三对角线性系统确定系数应用示例数据拟合与曲线平滑样条函数在计算机辅助设计CAD、计算机图形学和数据可视化中广泛应用例如,Bézier曲线和B样条是CAD系统的基础,用于设计从汽车外形到字体轮廓的各种曲线在科学数据分析中,样条常用于平滑噪声数据并提取趋势信息样条插值与多项式插值对比多项式插值的局限性样条插值的优势•高次多项式在节点间可能剧烈振荡(Runge现象)•保持平滑性的同时避免不必要的振荡•对异常值敏感,一个数据点变化会影响整条曲线•局部控制性好,数据点变化只影响邻近区间•计算不稳定,截断误差和舍入误差影响大•低阶多项式片段组合,数值稳定性好•外推性能差,区间外迅速发散•适应性强,可处理各种形状的数据实践建议除非有特殊理由需要使用全局多项式(如正交多项式逼近),否则在大多数实际应用中,分段插值(特别是三次样条)是更可靠的选择第五章数值积分与微分数值积分计算定积分∫[a,b]fxdx的近似值,尤其是当被积函数没有解析原函数或形式复杂时数值微分计算函数导数fx的近似值,特别是当函数仅以离散数据点形式给出或表达式过于复杂时数值积分与微分是科学计算的基础工具,广泛应用于物理、工程、金融等领域它们依赖于函数插值理论,以离散数据点计算连续过程本章将介绍各种数值积分与微分方法,分析其精度、稳定性和适用范围数值积分方法高斯积分辛普森法基于在特殊点评估函数值的高精度方法梯形法基于二次插值的二阶积分方法∫[a,b]fxdx≈Σ[i=1to n]wifxi基于线性插值的一阶积分方法∫[a,b]fxdx≈b-a/6[fa+4fa+b/2+fb]•n点高斯积分精确计算2n-1次多项式的积分∫[a,b]fxdx≈b-a[fa+fb]/2•局部误差为Oh⁵,整体误差为Oh⁴•最优节点选择Legendre多项式的零点•局部误差为Oh³,整体误差为Oh²•复合辛普森法误差收敛更快•权重wi通过正交多项式理论确定•复合梯形法将区间分成n等分,应用于每个•复合形式Sn=h/3[fa+4Σ[i=1to n]fa+i-子区间1/2h+2Σ[i=1to n-1]fa+ih+fb]•复合形式Tn=h/2[fa+2Σ[i=1ton-1]fa+ih+fb],h=b-a/n误差估计与自适应积分误差估计自适应积分策略•梯形法误差约为-b-a³fξ/12•根据局部误差估计动态细分区间•辛普森法误差约为-b-a⁵f⁽⁴⁾ξ/2880•复杂区域使用更多点,平滑区域使用更少点•实现计算资源的高效利用数值微分差分商与有限差分法数值微分的稳定性问题前向差分一阶精度数值微分本质上是不适定问题fx≈[fx+h-fx]/h+Oh•步长h减小,截断误差减小(理论上更精确)•但步长太小会导致舍入误差放大(实际精度下降)后向差分一阶精度•存在最优步长,使总误差最小fx≈[fx-fx-h]/h+Oh•通常h≈√ε较好,其中ε为机器精度中心差分二阶精度fx≈[fx+h-fx-h]/2h+Oh²二阶导数中心差分二阶精度fx≈[fx+h-2fx+fx-h]/h²+Oh²第六章常微分方程的数值解法常微分方程ODE形如yt=ft,yt,给定初始条件yt₀=y₀当方程无法求得解析解时,数值方法成为唯一选择应用领域关键挑战•物理系统动力学模拟•数值方法的稳定性与收敛性•化学反应动力学•计算效率与精度平衡•人口增长与传染病传播模型•刚性方程的特殊处理•电路与控制系统分析•长时间积分的误差累积•金融衍生品定价模型•保持物理守恒量的特殊方法初值问题的数值方法欧拉法改进欧拉法龙格-库塔法最简单的ODE数值方法预测-校正方法经典四阶RK4方法yn+1=yn+hftn,yn
1.预测ŷn+1=yn+hftn,yn k₁=hftn,yn•显式一步法,一阶精度Oh
2.校正yn+1=yn+h/2[ftn,yn+ftn+1,ŷn+1]k₂=hftn+h/2,yn+k₁/2•几何解释沿切线方向前进•二阶精度Oh²k₃=hftn+h/2,yn+k₂/2•局部截断误差为Oh²•也称为Heun方法或梯形法k₄=hftn+h,yn+k₃•稳定性条件严格,通常需要很小步长•稳定性比欧拉法好但仍有限yn+1=yn+k₁+2k₂+2k₃+k₄/6•四阶精度Oh⁴•较好的稳定性和精度平衡•实际应用最广泛的方法之一稳定性与步长控制数值解的稳定性分析通常基于测试方程y=λy•稳定区域复平面上使数值解保持有界的hλ值范围•显式方法稳定区域有限,隐式方法可能有无限稳定区域•自适应步长控制根据局部误差估计动态调整步长•Runge-Kutta-Fehlberg等嵌入式方法提供高效误差估计多步法与刚性问题Adams-Bashforth和Adams-Moulton方法刚性ODE的挑战与隐式方法Adams-Bashforth方法(显式多步法)刚性系统特点p阶AB法使用过去p个点计算下一步•存在变化极快和极慢的分量•特征值有极大差异(大条件数)yn+1=yn+hβ₀fn+β₁fn-1+...+βp-1fn-p+1•显式方法需要极小步长才能保持稳定Adams-Moulton方法(隐式多步法)处理刚性问题的方法包含n+1时刻的导数值•隐式方法如后向欧拉法、梯形法yn+1=yn+hβ₀fn+1+β₁fn+...+βpfn-p+1•BDF方法(后向差分公式)•多步法计算效率高,每步只需一次函数评估•半隐式Runge-Kutta方法•需要单步法提供起始值•隐式方法稳定性更好但需要迭代求解第七章快速傅里叶变换()FFTFFT的革命性意义快速傅里叶变换是20世纪最重要的算法之一,将时域与频域分析的计算复杂度从On²降至On logn,彻底改变了信号处理领域广泛应用FFT是现代数字信号处理的基石,广泛应用于音频处理、图像压缩、频谱分析、雷达系统、无线通信、医学成像等领域本章将介绍离散傅里叶变换DFT的基本原理,以及高效计算DFT的FFT算法我们将深入探讨算法的数学基础、计算复杂度分析以及实际应用案例傅里叶变换基础离散傅里叶变换(DFT)定义FFT算法原理与计算复杂度对于长度为N的序列{x₀,x₁,...,xN-1},其DFT为朴素DFT计算需要ON²运算,而FFT利用计算中的对称性和周期性,降低至ON logN•分治策略将N点DFT分解为两个N/2点DFT•利用单位根的周期性WNn+N/2=-WNn•递归应用直至问题规模为1逆变换IDFT为•计算量TN=2TN/2+ON=ON logNDFT将时域序列映射到频域,揭示信号的频率组成FFT在信号处理中的应用频谱分析滤波分析信号中各频率成分的强度,用于声音、振动分析频域滤波可简单实现低通、高通、带通滤波器卷积计算图像处理利用卷积定理时域卷积等价于频域相乘,大幅提高效率2D FFT用于图像压缩、边缘检测、模式识别的数值实现FFTCooley-Tukey算法步骤最常用的FFT实现方法
1.按位反转排序将输入数组重新排序,使分治合并方便
2.蝶形运算核心计算单元,结合两个更小的DFT结果
3.迭代合并从小规模DFT开始,逐步合并为更大规模当N=2m时(N为2的幂)实现最高效,称为基-2FFT常见优化技巧•预计算旋转因子WNk,避免重复计算•分裂基FFT处理N不是2的幂的情况•并行化实现FFT天然适合并行计算•内存局部性优化减少缓存不命中•针对特定硬件(如SIMD指令集)的优化实例演示频谱分析对于复合信号xt=sin2πf₁t+
0.5sin2πf₂t
1.对信号采样得到离散序列{xn}
2.应用FFT得到频域表示{Xk}
3.计算功率谱|Xk|²显示两个频率分量
4.通过FFT可快速识别信号中的主要频率成分第八章数值分析中的编程实践理论与实践的结合数值分析需要同时掌握理论基础和实际编程技能理论指导算法选择,而编程实现则检验和巩固理论理解编程工具选择现代数值计算主要使用Python、MATLAB、Julia等高级语言,结合专业库如NumPy、SciPy实现高效计算对性能要求极高的场景,可考虑C/C++或Fortran本章将介绍数值计算的实际编程环境和工具,通过实例展示如何实现和优化数值算法,帮助你将理论知识转化为解决实际问题的能力Python与Jupyter Notebook环境介绍Numpy、Scipy基础代码示例实现LU分解与牛顿法NumPy核心功能#LU分解示例import numpyas npdeflu_decompositionA:n=A.shape
[0]L=np.zerosn,n U=np.copyA•高效数组对象ndarray for i inrangen:L[i,i]=
1.0for jin rangei+1,n:factor=U[j,i]/U[i,i]•向量化运算大幅提高性能L[j,i]=factor U[j,i:]-=factor*U[i,i:]return L,U#牛顿法求根def newton_methodf,df,x0,tol=1e-6,max_iter=100:x=x0foriin rangemax_iter:fx=fx ifabsfxtol:•广播机制简化异形数组操作return xdfx=dfx ifdfx==0:raise ValueError导数为零,无法继续x=x-fx/•基本线性代数、随机数和傅里叶变换功能dfx raiseValueError达到最大迭代次数SciPy主要模块•scipy.integrate数值积分•scipy.optimize优化和方程求根•scipy.interpolate插值•scipy.linalg高级线性代数•scipy.sparse稀疏矩阵•scipy.signal信号处理代码调试与性能优化建议•使用向量化操作代替循环,利用NumPy的底层优化•了解并避免常见的内存复制陷阱,如视图vs副本•对大型计算使用性能分析工具如cProfile或line_profiler•考虑Numba等JIT编译器加速热点代码•对非常密集的计算考虑Cython或与C/C++接口课程总结与学习建议基础打牢算法掌握深入理解数值表示、误差分析和计算稳定性的基本概念,这是所有数值算法学习各类数值算法的原理、收敛性和适用条件,了解算法的优缺点和选择标的基础准应用拓展编程实现将数值方法应用到实际问题中,结合领域知识解决复杂科学和工程挑战通过编程实践巩固理论知识,培养调试和优化数值代码的能力常见学习误区与解决方案只关注公式推导忽视误差分析过度依赖现成工具解决方案结合几何直观理解和实际编程,从多角度掌握算法解决方案进行系统的误差分析,理解舍入误差和截断误差的来源和影解决方案先自己实现基础算法,理解原理后再使用成熟库响推荐教材与在线资源•《数值分析》BurdenFaires•《数值计算方法》Heath致谢与互动环节欢迎提问与讨论未来学习与研究方向数值分析是一门需要实践与思考的学科,鼓励大家提出问题、分享见解和讨论应用数值分析的进阶方向包括案例•高性能科学计算与并行算法可以围绕算法选择、实现细节、优化策略或特定应用领域展开讨论•数值优化与机器学习算法•偏微分方程数值解法•不确定性量化与贝叶斯计算•量子计算中的数值方法鼓励动手实践,掌握数值分析核心技能数值分析的真正掌握来自于解决实际问题的经验通过课后作业和项目,将理论知识应用到具体场景中,培养算法选择、实现和评估的能力记住,优秀的数值分析师不仅能选择合适的方法,还能评估结果的可靠性,并根据问题特点优化算法性能感谢大家的参与和关注,希望本课程能为你的学习和研究之旅提供有价值的指导。
个人认证
优秀文档
获得点赞 0