数值分析数值分析数值分析绪论一、数值分析的特点数值分析实际上就是介绍在计算机上解决数学问题的数值计算方法及其理论。这门课程又称为数值计算方法.202[0,)txedxt概率积分求数学问题的数值解称为数值问题.数值分析数值分析一、数值分析的特点计算机硬件软件功能算术与逻辑运算核心算法数值算法非数值算法计算机硬件的特点是快.软件就是利用计算机高速的简单运算去实现各种复杂的功能。数值分析数值分析一、数值分析的特点在建立了数学模型之后,并不能立刻用计算机直接求解,还必须寻找用计算机计算这些数学模型的数值方法,即将数学模型中的连续变量离散化,转化成一系列相应的算法步骤,编制出正确的计算程序,再上机计算得出满意的数值结果。数值分析数值分析一、数值分析的特点数值分析这门课具有以下几个特点:(1)数值分析是一门与计算机应用密切结合的实用性很强的学科;(2)数值分析这门课程即要讨论连续变量问题又要讨论离散变量问题,关心的是数值结果;(3)数值分析这门课程已成为近代数学的一个重要分支,专门研究数学问题的数值解法。思维方法是归纳法,核心问题是“误差”数值分析数值分析计算数学,计算物理学,计算力学,计算化学,计算生物学,计算地质学,计算经济学,等等科学计算的核心内容是以现代化的计算机及数学软件为工具,以数学模型为基础进行模拟研究。现代科学的三个组成部分:科学理论,科学实验,科学计算一、数值分析的特点数值分析数值分析二、数值分析的内容◆误差分析◆线性代数方程组的数值解法◆非线性方程组的数值解法◆数值积分与数值微分◆连续函数的最佳逼近◆插值与拟合◆常微分方程的数值解法◆最小二乘问题的数值解法◆代数特征值问题◆矩阵分解数值分析数值分析学习重点:3.数值方法的计算机实现(计算机实习)1.构造数值方法的原理(支撑理论)2.评价数值方法的好坏(研究数值方法的性态、可靠性、效率)迭代法,以直代曲,化整为零,外推法本课程的基本目的,是使学生通过学习和实验,初步建立并理解数值计算,特别是科学与工程计算的基本概念,为进一步深入的学习打下坚实的基础。数值分析数值分析要掌握高级编程语言:FORTRAN,C,MatlabMatlab几个显著特点1用Matlab处理矩阵——容易2用Matlab绘图——轻松3用Matlab编程——简洁4Matlab具有丰富的工具箱内容多,任务重,难度大!数值分析数值分析考试评分:平时作业+程序占总成绩的30%,期末考试占总成绩的70%,闭卷考试。作业要求:每周有课外练习,两周交一次作业,一学期完成3个综合程序课题设计。三、基本要求数值分析数值分析第三节常用数学软件工具第一节数值算法第一章数值计算与误差分析第二节数值计算的误差分析数值分析数值分析第一节数值算法算法:从给定的已知量出发,经过有限次四则运算及规定的运算顺序,最后求出未知量的数值解,这样构成的完整计算步骤称为算法。评价算法的两个主要标准:速度和精度数值分析数值分析一个面向计算机,计算复杂性好,又有可靠理论分析的算法就是一个好算法.计算复杂性包括时间复杂性和空间复杂性时间复杂性即计算量:一个算法所需四则运算总次数.一个算法所需的乘除运算总次数,单位是flop.空间复杂性即存储量第一节数值算法数值分析数值分析();;1:7*;*;MatlabsxyxforisssyyBsend算法flopN14计算量(输入x,输出y)255x例1计算A:x255=x·x···xB:x255=x·x2·x4·x8·x16·x32·x64·x128254存储量=4数值分析数值分析32()34262pxxxx计算多项式例:的值。231,xxx由计算法:算出后再算。需乘法5次,加法3次,存储单元7个。(储存单元???)()[(34)22]6pxxxx算法:需乘法3次,加法3次,存储单元6个。一般地,计算n次多项式的值数值分析数值分析算法2、秦九韶算法1247(又称为Horner算法1819)需乘法n次,加法n次,存储单元n+3个。有递推公式算法1、需乘法2n-1次,加法n次,存储单元n+4个。0111)(axaxaxaxPnnnnn1210()(((())nnnnPxxxxxaxaaaannaskkkaxss10)(sxPn0,1,2,,1nk数值分析数值分析1(0)1:*()*tuaforintxtuuaitendyu算法1(输入a(i)(i=0,1,…,n),x;输出y)flopnN2计算量1110()nnnnnPxaxaxaxa注意数值分析数值分析pyendkapxpnkfornap)(*0:1:1)(其原理为算法2(秦九韶算法)(输入a(i)(i=0,1,…,n),x;输出y)flopnN计算量0121)))(((axaxaxaxannn注意数值分析数值分析a11a12a13…a1na21a22a23…a2n......…...am1am2am3…amnb11b12b13…b1sb21b22b23…b2s......…...bn1bn2bn3…bns=[cij]msAB的计算量为N=(mns)flops,1,jm;,1,iCn1kkjikijbaAB例3矩阵乘积AB的计算量分析数值分析数值分析例4:求解n元线性方程组a11x1+a12x2+…+a1nxn=b1┆┆┆(1)an11+an2x2+…+annxn=bn由线性方程组的克莱姆(Cramer)规则可知,如果方程组(1)的系数矩阵A的行列式(一般记为D=|A|)不等于零,那末,这个方程组有唯一解,而且它们可以表示为xi=Di/D(i=1,…,n)这里,Di是指D中第i列元素用右端(b1,…bn)代替构成的行列式。Ax=bA可逆数值分析数值分析克莱姆算法步骤DDxabaDniforaaaDiinijiiiitinjjjjjtnnnn.2.2)1(.1.21.2)1(.1211211)(12)(1N=[(n2-1)n!+n]flopn=20,N=9.7071020flop数值分析数值分析年。也要算亿次的计算机,用每秒约为运算次数)法则求解用克莱姆(时当线性方程组3001000107.9,,20,20CramernbAx.3060,约为运算次数)消元法求解用高斯(Gauss数值分析数值分析用计算机解决科学计算问题时,需要经历以下几个环节:实际问题建立数学模型确定数值计算方法编制程序上机算出结果实际问题的精确解与用计算机计算出来的数值结果之间就有差异,这种差异在数学上称为误差。数值结果是指在选择某种数值方法之后,编制程序正确,输入初始数据正确的情形下所获得的数值结果。第二节数值计算的误差分析数值分析数值分析一、误差的来源1、数学模型数学模型是通过科学实验或者观察分析一系列数据后,用数学作为工具近似地描述客观事物的一种数学表达式。在数学模型中,往往包含了若干参量如物体比重、阻力系数、热交换系数等,这些物理参数通常由实验仪器测得,根据仪器的精密程度,物理参数的确定也会产生一定的误差。数值分析数值分析一、误差的来源1、数学模型001tLtLt记是金属棒在温度的长度,是度时金属棒的长度,求在任何温度下金属例棒的长度。200066(1)0.00125310,0.00006810tlLttLt根据热胀冷缩原理和物理实验,可建立如下数学模型:这里是金属棒在时的长度,、为物理参数并有如下估计:数值分析数值分析一、误差的来源2、四种误差模型误差数学模型与实际问题之间出现的这种误差称为模型误差。在例1中,就是模型误差。ttLl610观测误差通过仪器观测,确定数学模型中的参数所引起这种的误差称为观测误差。在例1中的就是观测误差。232331111,2!3!!11()12!3!xxneexxxxnSxxxx求的近似值。例2数值分析数值分析2、四种误差截断误差模型的准确解与某种数值方法的准确解之间的误差称为截断误差或方法误差。在例2中,就是截断误差。431()4!xeSxx舍入误差用计算机计算,由于计算机字长有限而在数值运算的每一步所产生的误差称为舍入误差。在例2中的用4位浮点机计算所产生的误差就是舍入误差。1610.16670.00003346数值分析数值分析1(),01(1)!nxnxRxen例1:(截断误差)2311111,2!3!!xnexxxxne已知求的近似值,并估计误差。解:利用展开式的前三项,取n=2,5.0)1(21)1(121e11210.51.7*103!Re截断误差000()(1)1000()()'()()()()()()!(1)!nnnnTaylorfxfxfxxxfxfxxxxnn由公式:二、截断误差分析数值分析数值分析二、截断误差分析2335230111(),sin()()2!3!11sin()122!3!hhhehhOhhhhOhehhhh当时,有如下Taylor展开式试确定例近似计算公式+2:的截断误差。233523311sin()12()()2!3!112()2!sin()()hhehhhhOhOhhhOhehOh+的截断误差为解:。数值分析数值分析例1:舍入误差590472.1066.1492.1设在一台虚构的4位数字的计算机上计算590.1066.1492.1舍入误差为0.000472例2:考虑Matlab简单程序formatlongx=4/3-1y=3*xz=1-y三、舍入误差分析数值分析数值分析舍入误差对计算结果影响很大12311111236111132341247111345360xxx考察方:程组例1321xxx其解为783.008.183.1200.0250.0333.0250.0333.0500.0333.0500.0000.1321xxx数字如果把系数舍入成三位49.1,488.0,09.1321xxx求解得数值分析数值分析例4:考虑Matlab程序x=0.988:0.0001:1.012;y=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1;plot(x,y)数值分析数值分析在实数系中,每一个实数可以有无穷位,不同的实数代表数轴上不同的点;732050808.13在计算机数系中,每一个数只有有限位,只有部分有理数能被计算机数系中的数精确表示。表示。不能被计算机数系精确3浮点数:36.83=0.3683×102=0.03683×103这种允许小数点位置浮动的表示法称为数的浮点形式。实数x的十进制浮点形式为x=0.a1a2...ak…10c,尾数阶码ai{0,1,2,…,9},c∈Z基数a1≠0,(1)称为x的规格化的浮点形式(1)1、计算机数系数值分析数值分析x的k位十进制机器数fl(x)可用两种方法定义:(1)截断式fl(x)=0.a1a2...ak10c510)10.0(510.0)(121121kckkkckaaaaaaaaxflx=0.a1a2…akak+1…10c(2)四舍五入式x的k位规格化十进制机器数•y=0.a1a2...ak10c,y=fl(x)ai{0,1,2,…,9},a10,LcU,k是机器数的字长;L、U是常数。数值分析数值分析一般数制情况:k位规格化机器数y=0.a1a2...akc,=2,8,10,16,ai{0,1,2,…,-1},LcU,a1≠0F(,k.L,U)表示以上数集全体加数