电子科大matlab期末开卷必备.

上传人:今*** 文档编号:105974071 上传时间:2019-10-14 格式:DOCX 页数:36 大小:826.04KB
返回 下载 相关 举报
电子科大matlab期末开卷必备._第1页
第1页 / 共36页
电子科大matlab期末开卷必备._第2页
第2页 / 共36页
电子科大matlab期末开卷必备._第3页
第3页 / 共36页
电子科大matlab期末开卷必备._第4页
第4页 / 共36页
电子科大matlab期末开卷必备._第5页
第5页 / 共36页
点击查看更多>>
资源描述

《电子科大matlab期末开卷必备.》由会员分享,可在线阅读,更多相关《电子科大matlab期末开卷必备.(36页珍藏版)》请在金锄头文库上搜索。

1、 设数a是精确值,x是a的一个近似值, 绝对误差(absolute error ):真实值与近似值差的绝对值。 相对误差(relative error):绝对误差与精确值之比(如果精确值未知,计算时用近似值代替)。 绝对误差限(精度,accuracy):绝对误差的范围; 相对误差限:相对误差的范围; 真实值=00123.000456 要求保留5位有效数字:00123.00(最前面0不计,最后0不省) 绝对误差=|真实值-近似值| = 0.000456, 相对误差= 0.000456 / 00123.000456 =3.7073e-006 保留7位有效数字:00123.0005(四舍五入) 绝对

2、误差=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 最小的浮点数是多

3、少? 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,

4、则高斯消元无需换行即可进行到底,得到唯一解。 性质2:只要 A 非奇异,即 A-1 存在,则可通过逐次消元及行交换,将方程组化为三角形方程组,求出唯一解。 1. 上(下)三角方阵的行列式的值等于对角线元素的乘积; 2. 上(下)三角方阵的转置为下(上)三角矩阵; 3. 上(下)三角方阵的逆矩阵为(上)三角矩阵,且对角元是原三角矩阵对角元的倒数; 4. 两个上(下)三角方阵的乘积也是上(下)三角矩阵,且对角元是原三角矩阵对角元的乘积。 算子范数与其对应的向量范数相容,即矩阵A的谱半径记为r (A) = ,其中li 为A 的特征根。且有 若A对称矩阵,则有 若原始数据有很小的变化x,对应的输出变化

5、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,

6、其解为x,分析误差当条件数很大时,方程组 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-S

7、eidel迭代求解方程组 步骤1、构造Jacobi迭代公式 步骤2、选择初值步骤3、利用Jacobi迭代公式计算一次迭代的第一分量 步骤4、将步骤3得到的一次迭代的第一分量替换初值的第一分量,计算一次迭代的第二分量: 步骤5、如果第三分量存在,利用一次迭代的第一、二分量计算第三分量,直到计算出所有迭代向量分量 。步骤6、重复步骤3-5,进行迭代迭代法求解线性方程组Gauss-Seidel迭代矩阵超松弛迭代 / SOR迭代矩阵 第k步迭代误差公式线性方程组迭代法收敛性:如果绝对值最大特征值(谱半径)小于1,则收敛,反之发散Gauss-Seidel迭代收敛性第k步迭代误差与初始迭代步长关系第k步迭

8、代误差与前步迭代步长关系 插值(interpolate) 已知函数在xi处的值为 yi ,求 f (x),使之满足: yi = f (xi) 其中, f (x)为插值函数, xi处为插值节点,插值节点的区间称为插值区间, yi = f (xi)为插值条件。 拟合(fit) 已知函数在xi处的值为 yi ,求 f (x),使之满足: e =yi - f (xi) 在给定的准则下最小。 问题描述: 给定插值点,构造多项式函数 Pn(x) = a0 + a1x + a2x2+ anxn,使之满足: Pn(xi) = yi (i = 0,1,2,n)。 如何计算: 多项式Pn(x) 由其多项式系数a0

9、 , a1, a2, , an决定,只需要求解多项式系数,即可获得该插值多项式。 将Pn(xi) = yi写为矩阵形式可得:求解该线性方程组即可得到多项式的系数 该线性方程组有解吗,解唯一吗?唯一性定理:通过n+1个节点的n阶插值多项式存在且唯一 多项式插值的拉格朗日多项式表示: 给定插值点,其插值多项式可表示为: 例:已知lg10=1,lg15=1.1761,lg20=1.3010,利用一次、二次多项式插值计算 lg12的近似值。分别利用 sin x 的1次、2次 Lagrange 插值计算 sin 50 并估计误差clear all 埃尔米特插值的矩阵表示: close all clc f

10、ormat long % 插值 x = 1/6, 1/4, 1/3 * pi; y = 1 / 2,1 / sqrt(2), sqrt(3) / 2; xx = 1/6 : 1/60 : 1/3; xx = xx * pi; xx50 = 50 / 180 * pi; % 一阶插值 - ex yy1ex = y(1) * (xx - x(2) / (x(1) - x(2) + y(2) * (xx - x(1) / (x(2) - x(1); yy150ex = y(1) * (xx50 - x(2) / (x(1) - x(2) + y(2) * (xx50 - x(1) / (x(2) -

11、 x(1) % 一阶插值 - in yy1in = y(2) * (xx - x(3) / (x(2) - x(3) + y(3) * (xx - x(2) / (x(3) - x(2); yy150in = y(2) * (xx50 - x(3) / (x(2) - x(3) + y(3) * (xx50 - x(2) / (x(3) - x(2) % % 一阶插值 % l1 = (xx - x(2) .* (xx - x(3) / (x(1) - x(2) / (x(1) - x(3); % l2 = (xx - x(1) .* (xx - x(3) / (x(2) - x(1) / (x

12、(2) - x(3); % l3 = (xx - x(1) .* (xx - x(2) / (x(3) - x(1) / (x(3) - x(2); % % yy2 = y(1) * l1 + y(2) * l2 + y(3) * l3; % % l1 = (xx50 - x(2) .* (xx50 - x(3) / (x(1) - x(2) / (x(1) - x(3); % l2 = (xx50 - x(1) .* (xx50 - x(3) / (x(2) - x(1) / (x(2) - x(3); % l3 = (xx50 - x(1) .* (xx50 - x(2) / (x(3) - x(1) / (x(3) - x(2); % yy250 = y(1) * l1 + y(2) * l2 + y(3) * l3 figure hold on plot(xx * 180 / pi, sin(xx), r); plot(xx * 180 / pi, yy1ex, g); plot(xx * 180 / pi, yy1in, black); % plot(xx * 180 / pi, yy2, black); plot(x * 180 / pi, y, b)clear all

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号