设数a是精确值,x是a的一个近似值,•绝对误差(absoluteerror):真实值与近似值差的绝对值。•相对误差(relativeerror):绝对误差与精确值之比(如果精确值未知,计算时用近似值代替)。•绝对误差限(精度,accuracy):绝对误差的范围;•相对误差限:相对误差的范围;•真实值=00123.000456•要求保留5位有效数字:00123.00(最前面0不计,最后0不省)•绝对误差=|真实值-近似值|=0.000456,•相对误差=0.000456/00123.000456=3.7073e-006•保留7位有效数字:00123.0005(四舍五入)•绝对误差=0.0000440.00005(绝对误差不大于其最末数字的半个单位)•相对误差=0.000044/00123.000456=3.5772e-007•浮点数是什么数?•实数?有理数?有限小数?•有多少个不同的浮点数?•264(64位,每位有两个状态,“0”和“1”)•浮点数是由264个有限小数(包含整数)构成的集合?•错。IEEE定义了一些异常值,inf(无穷)和NaN(“非数字”)•浮点数精度是多少?(绝对误差限)•esp=2-52=2.2204E-16•最大的浮点数是多少?•realmax=(2-esp)×21023=1.7977E+308•最小的浮点数是多少?•realmax=-1.7977E+308•最小的正浮点数是多少?•realmin=2-1022×2-52=4.9407e-324•避免相近二数相减易减小有效数字•避免小分母:分母小会造成浮点溢出•求和时从小到大相加,可使和的误差减小•简化计算步骤,减少运算次数,避免误差积累。•选用稳定的算法•eps是f的绝对误差限•eps是f的精度•浮点数的绝对误差不同;浮点数绝对值越大,绝对误差越大。•浮点数的相对误差不大于eps。•Matlab中“null”函数可计算欠定方程Ax=0的基础解系。•Matlab中的“\”可计算方程的特解。•性质1:若A的所有顺序主子式均不为0,则高斯消元无需换行即可进行到底,得到唯一解。•性质2:只要A非奇异,即A1存在,则可通过逐次消元及行交换,将方程组化为三角形方程组,求出唯一解。•1.上(下)三角方阵的行列式的值等于对角线元素的乘积;•2.上(下)三角方阵的转置为下(上)三角矩阵;•3.上(下)三角方阵的逆矩阵为(上)三角矩阵,且对角元是原三角矩阵对角元的倒数;•4.两个上(下)三角方阵的乘积也是上(下)三角矩阵,且对角元是原三角矩阵对角元的乘积。•算子范数与其对应的向量范数相容,即矩阵A的谱半径记为(A)=,其中i为A的特征根。且有若A对称矩阵,则有–若原始数据有很小的变化δx,对应的输出变化δy也很小,则称该数学问题是良态问题;–若δy很大,则称为病态问题–病态问题中,结果对于数据的变化率都很大(很敏感),因此数据微小变化必将导致参数模型精确解的很大变化–数学问题的病态问题完全取决于该数学问题本身的属性,在采用数值方法求解之前就存在,与数值方法无关。问题一:b存在扰动:–给定方程组Ax=b,其解为x*,另给定包含误差方程组Ax=b+e,其解为x’,分析其误差问题二,A存在扰动:–给定方程组Ax=b,其解为x*,–给定包含误差方程组(A+E)x=b,其解为x’,分析误差(A+E可逆)问题三,A,b都存在扰动:–给定方程组Ax=b,其解为x*,另给定包含误差方程组(A+E)x=b+e,其解为x’,分析误差-1-21212010101-5-51300.333330.1210-,2,3,...31()33,111()33111()3350.12510310nnnnnnnnnnnnnnpppfornpccccppppppppe例:计算迭代方程该迭代方程存在解析解,其中,由和的取值决定,如果取和,则但是由于精度有限,如果取和,则误差为:1max21612366541578914152416()16.712497TAAAAAA所以,行和范数为,列和范数为和列和行1,2,1,2,1,2,AxAxmaxAxAAxAxx1max||ini()||||AA2||||()AA111'/xxAeAeeAAbAbxx11111111||||||||1|||||||()||||||||||||||||||||||||||||1|||||||||||||xIAEAExEAAEAAAEAAAAEAAE111111111()()()()()()||()||1||||||()||||()||(1||||)111||||IIBIBIBBIBIBIBIBIBBIBIBBIBB111||||||||||||()||||||||()||||||||||||||||||||1||||||||||||eEeExAAAAAxbAbAAAA当条件数很大时,方程组Ax=b是病态问题。条件数是矩阵的特征,与算法无关。条件数与所选择的范数有关,不同范数计算的条件数不同。迭代法基本原理:如果迭代序列{x(k+1)=f(x(k))}收敛,则其极限点为方程f(x)=x的解•迭代公式的构建:将方程Ax=b改写为:x=Mx+c,M称为迭代矩阵迭代公式一(Jacobi迭代利用Jacobi迭代求解方程组、迭代公式三(Gauss-Seidel迭代)一般认为新近似解要比老近似解更接近真实解,将已计算出的x(k+1)分量替换Jacobi迭代公式中x(k)相应分量即可得到Gauss-Seidel迭代。•利用Gauss-Seidel迭代求解方程组•步骤1、构造Jacobi迭代公式•步骤2、选择初值步骤3、利用Jacobi迭代公式计算一次迭代的第一分量•步骤4、将步骤3得到的一次迭代的第一分量替换初值的第一分量,计算一次迭代的第二分量:1AA为该方程对应于该(相容)矩阵范数的条件数11max22min1()()2(2)()TTcondAAAAAcondAAAAA(),(),条件数与所取的矩阵范数有关。常用的条件数有:,()10,()()(2)1AcondAAccondcAcondAAcondA,1.对任何非奇2-范数对应的条件数异矩阵2.对非奇异矩阵和常数有3.对正交矩阵,11221331111112211211222222211233221112nnnnnnnnnnnnnngxbxbxbxaxaxaxbgaxaxaxbxbxbxbxaxaxaxb112233nnnnngxbxbxbx11000...000nnaDa定义对角矩阵:)11(1)(()kkMIJacDAobixbxggDM:迭代公式为54,(1,1).45TAb100.8(),0.80JMDLU1(0.2,0.2)TJgDb541,.451Ab100.8(),0.80JMDLU1(0.2,0.2)TJgDb(0)[0,0.5]x(1)1000.80.20.60.5x(1)20.800.20.680.50.6x步骤5、如果第三分量存在,利用一次迭代的第一、二分量计算第三分量,直到计算出所有迭代向量分量。步骤6、重复步骤3-5,进行迭代迭代法求解线性方程组Gauss-Seidel迭代矩阵2112000000000nnLbbb(1)(1)()(1)()(1)1()1()()()kkkkkkkxLxUxgILxUxgxILUxILgJacobiGauss与相比,只需一组工作单元存放近似解。(1)()()()112213311(1)()()22332(12)211(1(1))112kkkknnkkkknnnnnkkgxbxbxbxgxbxxbbxxxb(1)(1)2,11kknnnnbxbxg1212,000U000000nnbbb12131212323132112111111(1)1(000000000,()()nnnnnnnnkkaaaaaaLaaUaaaaLDLUDUILDDDLDDLxILUx如果用矩阵A来表示,记则由)(1)1()111()()()(-)kkxDLUxDILgMDLUGaussdeblLSei。式中矩阵为迭代法的迭代矩阵超松弛迭代/SOR迭代矩阵第k步迭代误差公式线性方程组迭代法收敛性:如果绝对值最大特征值(谱半径)小于1,则收敛,反之发散()(1)(1)()(1)(1()()(1)()(1)())()1()---(1)()kkGkkGkkkkkkkkGGGkkSORGaussSeidelxxGaussSexxidelxxxSORxxxxxxxxxx是迭代法的一种加速法。假设:已知,为迭代法结果,定义:,则,迭代法的表达式为:11-1GaussSeidel其中,称为松弛因子。当时称为低松弛;是迭代;时称为超松弛法。(1)1(1)1()1(1)()1(1)1()1()(1)()()1(1)1()1()()1(1)1()==()()(1)kkkkkkkkkkkkkkkkkxDLxDUxDbxxxDLxDUxDbxxxxxDLxDUxDbxxDLxDUxD根据高斯迭代法的矩阵表示:1-1-11-1(1)1)111(-1-(-)()[(1)](()[(1)]())kkbIDLIDLDLxDLDUxMDLDUgDLDLbb-因为,故()与存在,有:松弛法的迭代矩阵为:,()AnAA:定理:设为任意阶方阵,则对任意正数存在矩阵范数,使得****()*(-1)*(-1)*2(-2)()*(0)**()-()()=...kkkkkkxxxMxgxxMxgMxxgMxxMxxxMxx性质:证明:如果存在,则满足:(0)*...(-)kMxxlim0()1kkAnAA引理:设为阶方阵,则的充要条件为。-11-()()1021()()12lim00...,lim0.kkkkkkkAAAAAAAAAAA:证:充分性若,取,存在矩阵范数,使得则有:由算子范数相容性,可得:由夹逼定理,可得:(0)(1)()(){}()1kkkxgxMxgxM定理:对任意初始向量和右端项,由迭代式产生的向量序列收敛是充要条件的.(0)(1)()()1kkkxgMxMxgx推论1:对任意初始向量和右端项,若,由迭代式产生的向量序列{}收敛.1231231232-212223-112-2100111010221001000-100-2-20xxxxxxxxxJacobiGaussSeidelADL例:对方程组讨论迭代法与迭代法的收敛性。解:求迭代矩阵判别其谱半径是否小于。0-2200-1000U