还剩56页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数值与精细运算》课件PPT课程导论为什么数值精度如此重要科学研究的基石工程设计的保障金融领域的命脉12数值精度是科学研究的基石,任何微在工程设计中,例如桥梁、建筑、飞小的误差都可能导致实验结果的偏差,行器等,数值精度直接关系到结构的甚至得出错误的结论在物理学、化安全性和可靠性不精确的计算可能学、生物学等领域,精确的数值计算导致设计缺陷,造成严重的事故对于模拟实验、分析数据至关重要计算机数值表示的基本原理二进制系统定点数表示浮点数表示计算机采用二进制系统来表示数值,这是定点数是一种简单的数值表示方法,小数浮点数是一种更灵活的数值表示方法,小由于二进制易于物理实现,具有高可靠性点的位置固定不变但定点数表示的范围数点的位置可以浮动浮点数可以表示更和抗干扰能力所有的数据,包括整数、有限,容易出现溢出问题,不适合表示大大范围的数值,并且具有更高的精度,是浮点数,最终都以二进制形式存储范围的数值现代计算机中广泛采用的数值表示方法浮点数的二进制表示方法浮点数的组成规格化形式隐藏位浮点数由三个部分组成符号位(Sign)、为了保证浮点数表示的唯一性和最大化精在规格化形式中,尾数的最高位总是1,因指数位(Exponent)和尾数位度,浮点数通常采用规格化形式规格化此可以省略存储,称为隐藏位隐藏位的(Mantissa)符号位表示数值的正负,形式要求尾数的最高位为1,这样可以节省存在可以提高浮点数的精度指数位表示数值的大小范围,尾数位表示一位存储空间,提高精度数值的精度标准解读IEEE754统一标准多种精度特殊数值标准是国际电气电子工程师协标准定义了多种精度的浮点数标准定义了特殊的数值,如正IEEE754IEEE754IEEE754会制定的浮点数算术标准,定义了浮点类型,包括单精度(32位)、双精度无穷、负无穷、NaN(Not aNumber)数的表示方法、运算规则、舍入方式等,(64位)、扩展精度(80位)等,满足等,用于表示特殊的计算结果,例如除保证了不同计算机系统之间的数值计算不同应用场景对精度和存储空间的需求以零、无效运算等结果的一致性浮点数的基本结构符号、指数和尾数指数位()Exponent指数位用于表示浮点数的大小范围,采用2移码表示指数位的位数决定了浮点数可符号位()以表示的最大值和最小值Sign1符号位用于表示浮点数的正负,表示正0数,表示负数符号位位于浮点数的最1高位,占用1位尾数位()Mantissa尾数位用于表示浮点数的精度,采用规格化形式尾数位的位数决定了浮点数可以3表示的最小精度不同精度的浮点数类型比较精度类总位数符号位指数位尾数位精度范型围单精度321823大约7位(float)有效数字双精度6411152大约15(位有效double)数字扩展精8011564大约19度位有效(long数字)double整数与浮点数的存储机制整数的存储浮点数的存储整数通常采用补码形式存储,正数的补码是其本身,负数的补码是浮点数采用IEEE754标准存储,包括符号位、指数位和尾数位浮其反码加1整数的存储空间固定,例如32位整数可以表示的范围点数的存储空间固定,但可以表示更大范围的数值,并且具有更高是-2^31到2^31-1的精度数值计算中常见的精度误差舍入误差截断误差抵消误差由于计算机存储空间的在数值计算中,例如数当两个相近的数值相减限制,浮点数只能表示值积分、数值微分等,时,有效数字会减少,有限位数的数值当数通常需要对无穷级数进导致精度降低这种现值的位数超过浮点数可行截断截断后的结果象称为抵消误差,在数以表示的范围时,就会与真实值之间存在误差,值计算中需要尽量避免发生舍入误差称为截断误差舍入误差的产生与影响舍入方式常见的舍入方式包括就近舍入、朝零舍入、朝正无穷舍入、朝负无穷舍入等不同的舍入方式对精度误差的影响不同,需要根据具体情况选择合适的舍入方式误差累积在数值计算中,每一步运算都可能产生舍入误差随着运算次数的增加,舍入误差会不断累积,最终可能导致计算结果的严重偏差避免策略为了控制舍入误差,可以采用一些策略,例如使用更高精度的浮点数类型、避免大量级相差悬殊的数值相加、采用数值稳定的算法等浮点数运算的基本规则加减运算乘除运算浮点数的加减运算需要先对阶,即浮点数的乘除运算直接对尾数进行将指数位对齐,然后进行尾数的加乘除运算,然后调整指数位乘除减运算对阶过程可能导致精度损运算的精度受尾数位数的限制失舍入处理浮点数运算的结果可能超出浮点数可以表示的范围,需要进行舍入处理舍入处理的方式会影响运算的精度加法运算中的精度挑战抵消现象当两个大小相近、符号相反的数相加时,可能发生抵消现象,导致有效数字减少,2精度降低例如,
1.00000001-对阶操作,有效数字只
1.00000000=
0.00000001在浮点数加法运算中,首先需要将两个剩下位11数的指数位对齐,这个过程称为对阶对阶可能导致较小数的尾数右移,从而累积误差丢失精度在多个浮点数相加时,每一步运算都可能产生舍入误差随着运算次数的增加,舍3入误差会不断累积,最终可能导致计算结果的严重偏差减法运算的精度陷阱灾难性抵消1有效数字损失2误差放大3减法运算中,特别是当两个非常接近的数相减时,会发生灾难性抵消,导致有效数字大量损失,原始数据的微小误差被放大,严重影响计“”算结果的精度这种情况在数值计算中需要特别注意,并采取相应的策略来避免乘法运算的数值特性尾数相乘1浮点数乘法运算主要涉及尾数的相乘尾数的位数直接影响乘法结果的精度指数相加2指数位相加决定了结果的数量级如果指数相加的结果超出指数位可以表示的范围,就会发生溢出舍入与规格化3乘法运算后,需要对结果进行舍入和规格化处理,以保证结果符合浮点数的表示规范除法运算中的精确性问题无限循环小数除数为零舍入误差在除法运算中,即使是简单的整数相除,除数为零是一种特殊情况,会导致程序出除法运算的每一步都可能产生舍入误差也可能产生无限循环小数由于计算机存错在数值计算中,需要对除数进行判断,随着运算次数的增加,舍入误差会不断累储空间的限制,只能对无限循环小数进行避免出现除数为零的情况积,最终可能导致计算结果的严重偏差截断,导致精度损失数值稳定性的概念抗干扰能力鲁棒性收敛性数值稳定性是指算法对数值稳定性是算法鲁棒对于迭代算法,数值稳输入数据微小扰动的敏性的重要组成部分一定性是保证算法收敛的感程度一个数值稳定个鲁棒的算法,不仅对前提条件一个数值不的算法,即使输入数据输入数据微小扰动不敏稳定的算法,即使理论存在微小误差,计算结感,而且对异常数据也上收敛,也可能由于舍果也不会发生剧烈变化有一定的容忍能力入误差的累积而发散条件数与数值计算稳定性条件数的定义线性方程组优化问题123条件数是衡量问题对输入数据扰动敏对于线性方程组Ax=b,条件数定义为对于优化问题,条件数与Hessian矩感程度的指标条件数越大,问题越矩阵A的条件数,即A的范数乘以A的阵的特征值有关条件数越大,优化敏感,数值计算的稳定性越差逆的范数条件数越大,求解线性方问题的求解难度越大,收敛速度越慢程组的精度越低精确计算的算法策略选择数值稳定的算法1避免抵消误差2使用更高精度的数据类型3精确计算需要选择数值稳定的算法,避免抵消误差的产生,并尽可能使用更高精度的数据类型同时,还需要对计算过程进行误差分析,评估计算结果的可靠性高精度计算的数学基础多精度算术区间算术多精度算术是一种使用任意位数的数字进行计算的方法,可以提供区间算术是一种将数值表示为区间的计算方法区间算术可以提供比标准浮点数更高的精度多精度算术通常使用软件实现,可以根计算结果的误差范围,帮助评估计算结果的可靠性据需要调整精度大数定律与数值近似大数定律中心极限定理12大数定律是指在随机试验中,中心极限定理是指在一定条件重复试验的次数越多,样本的下,大量独立随机变量的和近平均值就越接近真实值大数似服从正态分布中心极限定定律是数值近似的基础,例如理可以用于估计数值近似的误蒙特卡洛方法差蒙特卡洛方法3蒙特卡洛方法是一种基于随机抽样的数值计算方法蒙特卡洛方法可以用于求解复杂的积分、微分方程等,具有简单易懂、适用性广等优点误差分析的基本方法前向误差分析后向误差分析区间算术前向误差分析是指从输入数据开始,逐步后向误差分析是指将计算结果的误差反向区间算术是一种将数值表示为区间的计算分析每一步运算产生的误差,最终评估计传播到输入数据,评估输入数据的扰动对方法区间算术可以自动进行误差分析,算结果的误差前向误差分析比较繁琐,计算结果的影响后向误差分析比较简洁,提供计算结果的误差范围但可以提供详细的误差信息但只能提供整体的误差信息误差传播理论误差的传递敏感性分析误差传播理论描述了误差在计算过程中如何传递和放大了解误差敏感性分析是误差传播理论的重要应用通过敏感性分析,我们可传播的规律可以帮助我们选择合适的算法,控制误差的累积以评估输入数据的微小变化对计算结果的影响,从而确定哪些输入数据对结果影响最大,需要特别关注数值计算中的截断误差级数展开数值积分数值微分在数值计算中,常常需要使用级数展开来近数值积分是指使用数值方法来近似计算积分数值微分是指使用数值方法来近似计算导数似函数例如,泰勒级数、傅里叶级数等常见的数值积分方法包括梯形公式、辛普森常见的数值微分方法包括差分法、中心差分截断级数展开的项数越多,近似的精度越高,公式等数值积分的精度取决于步长的大小,法等数值微分的精度取决于步长的大小,但计算量也越大步长越小,精度越高,但计算量也越大步长越小,精度越高,但计算量也越大舍入误差的控制技术使用更高精度的数据类型选择数值稳定的算法使用更高精度的数据类型可以减少数值稳定的算法对舍入误差的敏感舍入误差的产生例如,将float类程度较低,可以减少舍入误差的累型改为double类型,或者使用多精积度算术避免抵消误差抵消误差会导致有效数字减少,精度降低在数值计算中,需要尽量避免抵消误差的产生精度增强的编程技巧求和算法1Kahan求和算法2Pairwise使用多精度库3求和算法和求和算法可以减少舍入误差的累积,提高求和的精度此外,还可以使用多精度库来实现高精度的数值计算Kahan Pairwise高精度库的使用库库GMP MPFR()是一个免费的()是一GMP GNUMultiple PrecisionArithmetic LibraryMPFR MultiplePrecision Floating-Point ReliableLibrary高精度算术库,支持整数、有理数、浮点数的任意精度计算个基于GMP库的高精度浮点数算术库,符合IEEE754标准MPFRGMP库提供了丰富的函数接口,可以方便地进行高精度计算库提供了高精度的浮点数运算,并可以控制舍入方式不同编程语言的数值计算特性编程语言数值计算特性C++高性能、可控制内存、可使用各种数值计算库Python易于使用、丰富的科学计算库(、)NumPy SciPyMATLAB专门为数值计算设计、提供丰富的数值计算函数中的数值计算Python库库库1NumPy2SciPy3SymPy是中用于科学计算的是中用于科学计算的核是中用于符号计算的库,NumPy PythonSciPy PythonSymPy Python基础库,提供了高效的多维数组对象心库,提供了各种数值计算算法,包可以进行符号推导、代数运算等和各种数值计算函数NumPy是许多括数值积分、优化、插值、信号处理SymPy可以用于验证数值计算的结果其他科学计算库的基础等的数值计算优化C++编译器优化指令SIMD编译器可以进行各种优化,例如循环展开、内联函数等,提高()指令可以同时对多个数C++SIMD SingleInstruction MultipleData数值计算的性能可以使用编译器的优化选项来控制优化级别据进行相同的操作,提高数值计算的并行性可以使用SIMD指令集来优化的数值计算C++中的精确计算MATLAB矩阵运算数值函数工具箱擅长矩阵运算,提供了大量的提供了各种工MATLAB MATLABMATLAB可以高效地进行线性代数值函数,包括数值积具箱,例如信号处理工数计算MATLAB提供分、优化、插值等这具箱、图像处理工具箱了丰富的矩阵运算函数,些函数经过了精心设计等,可以方便地进行特可以方便地进行各种矩和优化,可以保证计算定领域的数值计算阵操作的精度和效率科学计算中的数值方法有限元方法有限差分方法12有限元方法是一种用于求解偏有限差分方法是一种用于求解微分方程的数值方法有限元微分方程的数值方法有限差方法将求解区域划分为小的单分方法使用差分来近似导数,元,然后在每个单元上近似求然后求解差分方程解方程谱方法3谱方法是一种用于求解微分方程的数值方法谱方法使用一组基函数来近似解,然后求解基函数的系数数值积分的精度控制选择合适的积分公式1控制步长2自适应积分3数值积分的精度取决于积分公式的选择和步长的大小可以使用自适应积分方法来自动控制步长,以达到所需的精度数值微分的误差分析截断误差舍入误差最佳步长数值微分使用差分来近似导数,存在截断数值微分需要进行减法运算,容易产生抵为了平衡截断误差和舍入误差,存在一个误差截断误差与步长的平方成正比消误差舍入误差与步长成反比最佳步长最佳步长通常可以通过理论分析或实验确定线性代数计算中的精度问题病态矩阵特征值计算矩阵分解病态矩阵是指条件数很特征值计算是线性代数矩阵分解是线性代数中大的矩阵病态矩阵对中的一个重要问题特的一个重要工具矩阵输入数据的微小扰动非征值对矩阵的扰动非常分解的精度直接影响后常敏感,求解线性方程敏感,需要使用数值稳续计算的精度组的精度很低定的算法进行计算矩阵运算的数值稳定性选择合适的算法不同的矩阵运算算法具有不同的数值稳定性例如,使用变换进行分解比使用旋转更稳定Householder QRGivens避免除以小数在矩阵运算中,应尽量避免除以绝对值很小的数,以减少舍入误差的放大使用迭代精化可以使用迭代精化方法来提高矩阵运算的精度迭代精化是指先使用一个精度较低的算法计算出一个近似解,然后使用迭代方法来提高解的精度特征值计算的精度挑战特征值的敏感性1特征向量的精度2算法的选择3特征值计算是一个复杂的问题,特征值对矩阵的扰动非常敏感,特征向量的精度也难以保证需要选择数值稳定的算法,并进行误差分析,以评估计算结果的可靠性数值线性代数的算法高斯消元法分解分解12LU3QR高斯消元法是一种用于求解线性方程LU分解是将矩阵分解为一个下三角矩QR分解是将矩阵分解为一个正交矩阵组的直接法高斯消元法简单易懂,阵L和一个上三角矩阵U的乘积LU Q和一个上三角矩阵R的乘积QR分但数值稳定性较差,容易受到舍入误分解可以用于求解线性方程组,并且解可以用于求解线性最小二乘问题,差的影响比高斯消元法更稳定并且比LU分解更稳定迭代法与直接法的比较迭代法直接法迭代法是指通过迭代过程逐步逼近解的数值方法迭代法需要选择直接法是指通过有限步运算直接求解方程组的数值方法直接法的合适的迭代格式和初始值,并且需要判断收敛性迭代法的优点是优点是计算精度高,不需要判断收敛性直接法的缺点是需要大量节省存储空间,适用于求解大型稀疏矩阵的存储空间,不适用于求解大型稀疏矩阵机器学习中的数值计算梯度下降矩阵运算正则化梯度下降是机器学习中机器学习中涉及到大量正则化是一种用于防止常用的优化算法,用于的矩阵运算,例如矩阵过拟合的技术正则化求解模型的参数梯度乘法、矩阵分解等矩的强度需要进行精确的下降的精度直接影响模阵运算的精度直接影响控制,以达到最佳的训型的训练效果模型的计算效率和精度练效果深度学习中的数值精度梯度消失梯度爆炸12在深度学习中,梯度消失是指在深度学习中,梯度爆炸是指梯度在反向传播过程中逐渐衰梯度在反向传播过程中逐渐增减,导致模型的底层参数无法大,导致模型训练不稳定梯更新梯度消失与数值精度有度爆炸与数值精度有关,可以关,可以使用更好的初始化方使用梯度裁剪等技术来缓解法和激活函数来缓解混合精度训练3混合精度训练是指在深度学习中使用不同精度的数据类型进行训练例如,可以使用类型来减少存储空间和计算量,同时使用类型来float16float32保证精度数值优化算法梯度下降法1牛顿法2拟牛顿法3数值优化算法用于求解函数的最小值或最大值常见的数值优化算法包括梯度下降法、牛顿法和拟牛顿法不同的优化算法具有不同的收敛速度和稳定性,需要根据具体问题选择合适的算法梯度下降法的数值特性步长选择局部最小值鞍点梯度下降法的步长选择对算法的收敛速度梯度下降法容易陷入局部最小值,无法找鞍点是指梯度为零,但不是局部最小值或和稳定性有重要影响步长过大可能导致到全局最小值可以使用随机梯度下降法最大值的点梯度下降法在鞍点附近收敛算法发散,步长过小可能导致算法收敛速或模拟退火算法等方法来避免陷入局部最速度很慢可以使用动量法等方法来加速度过慢小值收敛随机梯度下降的精度分析随机性方差收敛性随机梯度下降法使用随随机梯度下降法的方差随机梯度下降法在一定机抽取的样本来计算梯较大,导致算法收敛不条件下可以收敛到全局度,具有一定的随机性稳定可以使用小批量最小值可以使用学习随机性可以帮助算法跳梯度下降法来减少方差率衰减等技术来保证算出局部最小值,但也可法的收敛性能导致算法收敛不稳定数值计算在金融领域的应用期权定价风险管理12期权定价需要使用复杂的数值风险管理需要使用各种统计模计算方法,例如蒙特卡洛模拟、型来评估金融风险统计模型有限差分法等期权价格对输的精度直接影响风险评估的准入数据的微小变化非常敏感,确性需要高精度的数值计算量化交易3量化交易是指使用计算机程序自动进行交易量化交易需要快速、精确地计算各种交易指标,以抓住交易机会量化交易中的精确计算高频交易1算法交易2风险控制3量化交易需要快速、精确地计算各种交易指标,包括价格、成交量、波动率等高频交易、算法交易和风险控制都离不开精确的数值计算密码学中的数值运算大数运算随机数生成密码学中涉及到大量的大数运算,例如模幂运算、椭圆曲线运算等密码学中需要使用高质量的随机数来生成密钥随机数生成器的质大数运算需要使用多精度算术库来实现,并且需要进行优化,以提量直接影响密码系统的安全性高计算效率大数运算的精度要求素数检测模运算椭圆曲线密码学中需要使用素数密码学中需要进行大量椭圆曲线密码学是一种检测算法来生成大素数的模运算,例如模幂运现代密码学技术椭圆素数检测算法的精度直算、模逆运算等模运曲线运算的精度直接影接影响密钥的安全性算的精度直接影响加密响密钥交换和数字签名和解密的正确性的安全性密码算法的数值基础算法算法1RSA2AES算法是一种经典的公钥密码算法是一种常用的对称密码RSA AES算法算法基于大数分解的算法算法基于有限域上的RSA AES困难性,需要使用大素数来生代数运算,需要精确地计算各成密钥种代数表达式椭圆曲线密码3椭圆曲线密码是一种现代公钥密码算法椭圆曲线密码基于椭圆曲线上的离散对数问题的困难性,需要精确地计算椭圆曲线上的点加和倍点运算实际应用中的数值挑战大规模计算1实时计算2高可靠性3实际应用中,数值计算面临着大规模计算、实时计算和高可靠性等挑战需要根据具体应用场景选择合适的数值方法和优化技术,以满足性能和精度的要求科学计算的前沿技术量子计算高性能计算量子计算是一种基于量子力学原理的新型计算技术量子计算可以高性能计算是指使用多台计算机并行计算,以提高计算速度高性解决传统计算机无法解决的某些问题,例如大数分解、药物设计等能计算可以用于解决大规模科学计算问题,例如气候模拟、核武器模拟等量子计算与数值方法量子比特量子纠缠量子算法量子比特是量子计算中量子纠缠是指两个或多量子算法是指在量子计的基本单位,可以表示
0、个量子比特之间的特殊算机上运行的算法量1或0和1的叠加态量子关联量子纠缠可以用子算法可以解决传统计比特可以进行量子操作,于实现量子通信和量子算机无法解决的某些问实现量子算法计算题,例如大数分解、搜索等高性能计算的数值策略并行算法设计负载均衡12并行算法设计是指将算法分解负载均衡是指将计算任务分配为多个可以并行执行的任务给多台计算机,以保证每台计并行算法设计需要考虑任务的算机的负载均衡负载均衡可划分、通信和同步等问题以提高计算效率通信优化3在高性能计算中,计算机之间需要进行通信通信的开销会影响计算效率需要进行通信优化,减少通信量,提高通信效率分布式计算中的数值精度数据一致性1容错性2通信开销3在分布式计算中,数据存储在多台计算机上,需要保证数据的一致性分布式计算需要具有容错性,以应对计算机故障分布式计算的通信开销较大,需要进行优化云计算平台的数值运算弹性计算存储服务软件服务云计算平台可以提供弹性的计算资源,根云计算平台可以提供可靠的存储服务,用云计算平台可以提供各种软件服务,例如据需要动态调整计算资源弹性计算可以于存储数值计算的数据和结果存储服务数据库、机器学习平台等这些软件服务满足不同规模的数值计算需求可以保证数据的安全性和可靠性可以方便地进行数值计算数值计算的未来发展趋势量子计算人工智能边缘计算量子计算将是未来数值人工智能将与数值计算边缘计算将把数值计算计算的重要发展方向更紧密地结合人工智推向更靠近数据源的位量子计算可以解决传统能可以用于优化数值计置边缘计算可以减少计算机无法解决的某些算算法,提高计算效率数据传输延迟,提高计问题,为数值计算带来和精度算效率新的突破人工智能与数值方法算法优化模型简化12人工智能可以用于优化数值计人工智能可以用于简化数值计算算法,例如使用机器学习算算模型,例如使用神经网络来法来自动调整算法的参数,提近似复杂的物理模型,减少计高算法的性能算量数据分析3人工智能可以用于分析数值计算的结果,例如使用机器学习算法来识别计算结果中的模式,提取有用的信息课程总结精确计算的重要性科学研究1工程设计2金融领域3精确计算在科学研究、工程设计和金融领域都至关重要掌握精确计算的原理和方法,可以帮助我们解决实际问题,提高工作效率,保证计算结果的可靠性未来展望数值计算的创新方向算法创新应用拓展未来的数值计算将更加注重算法的创新,例如设计更加高效、稳定、未来的数值计算将拓展到更多的应用领域,例如生物医学、材料科精确的算法,以满足不断增长的计算需求学、环境科学等,为这些领域的发展提供强大的计算支持。
个人认证
优秀文档
获得点赞 0