电子科大matlab期末开卷必备_第1页
电子科大matlab期末开卷必备_第2页
电子科大matlab期末开卷必备_第3页
电子科大matlab期末开卷必备_第4页
电子科大matlab期末开卷必备_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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.000044<0.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+30

3、8 最小的浮点数是多少? realmax = -1.7977E+308 最小的正浮点数是多少? realmin = 2-1022 ×2-52 =4.9407e-324 避免相近二数相减易减小有效数字 避免小分母 : 分母小会造成浮点溢出 求和时从小到大相加,可使和的误差减小 简化计算步骤,减少运算次数,避免误差积累。 选用稳定的算法 eps是 f 的绝对误差限 eps是 f 的精度 浮点数的绝对误差不同;浮点数绝对值越大,绝对误差越大。 浮点数的相对误差不大于eps。 Matlab中“null”函数可计算欠定方程 Ax=0 的基础解系。 Matlab中的“”可计算方程的特解。 性质1

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

5、据有很小的变化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*,另给定包含

6、误差方程组(A+E)x=b+e,其解为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-Sei

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

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

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

10、n 50° 并估计误差clear all 埃尔米特插值的矩阵表示: close all clc format 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

11、 - x(2) / (x(1) - x(2) + y(2) * (xx50 - x(1) / (x(2) - 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

12、); % l2 = (xx - x(1) .* (xx - x(3) / (x(2) - x(1) / (x(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

13、) - 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, 'bla

14、ck'); plot(x * 180 / pi, y, 'b')clear all close all 埃尔米特插值的矩阵表示clc % runge x = -5:1.0:5;y = 1./(1+x.2);t = -5:0.05:5;y0 = 1./(1+t.2);p = polyfit(x,y,10);y1 = polyval(p,t);plot(t,y0,x,y,'o',t,y1,'.') 在不少实际问题中,对插值不但要求在节点上函数值相等而且还要求它的导数值也相等。Hermite插值也存在Runge现象clear allclose

15、allclc t = 1.3, 1.6, 1.9;y1 = 0.6200, 0.4554, 0.2818;dy = -0.5220, -0.5699, -0.5812; A = zeros(6); for iii = 1 : 3 for jjj = 1 : 6 A(iii, jjj) = t(iii) (6 - jjj); endend for iii = 4 : 6 for jjj = 1 : 5 A(iii, jjj) = (6 - jjj) * t(iii - 3) (5 - jjj); endend y = y1, dy p = A y.'x = 1.3 :0.001 : 1.

16、9;yy = polyval(p,x); plot(x, yy)hold onplot(t, y1, 'o') dyy = diff(yy) * 1000;figureplot(x(1 : 600), dyy)hold onplot(t, dy, 'o') figureyy2 = polyval(polyfit(t, y1, 2), x)plot(x, yy2, 'r')hold onplot(t, y1, 'o') dyy2 = diff(yy2) * 1000;figureplot(x(1 : 600), dyy2)hold

17、onplot(t, dy, 'o')拉格朗日插值程序%lagrangen.m function y=lagrangen(x0,y0,x) 线性分段插值收敛性n=length(x0);m=length(x);for i=1:m z=x(i);s=0; for k=1:n L=1; for j=1:n if j=k L=L*(z-x0(j)/(x0(k)-x0(j); end end s=s+L*y0(k); end y(i)=s;endy;%Chazhibijiao.m x=-5:0.1:5;z=0*x;y=1./(1+x.2);plot(x,z,'k',x,y,

18、'r')axis(-5 5 -1.5 2);pause,hold onfor n=2:2:10 x0=linspace(-5,5,n+1); y0=1./(1+x0.2); x=-5:0.1:5; y1=lagrangen(x0,y0,x); plot(x,y1), pauseendy2=1./(1+x0.2);y=interp1(x0,y2,x);plot (x,y,'k'),hold offgtext('n=2'),gtext('n=4'),gtext('n=6')gtext('n=8'),gt

19、ext('n=10')gtext('f(x)=1/(1+x2)')或者直接分段求解线性方程组计算系数。该矩阵严格对角占有,故非奇异,所以样条插值存在且唯一。定理给出了f (x)与S (x)及其1、2、3阶导数的差,0、1、2阶误差:步长h越小,误差越小;3阶导数误差:步长相等误差最小。 clear all close all clc % 插值比较 x=-5:1.25:5; y=1./(1+x.*x); xi=-5:0.2:5; Yi(:,1)=1./(1+xi.*xi); Yi(:,2)=interp1(x,y,xi, 'linear'); Yi

20、(:,3)=interp1(x,y,xi, 'spline'); Yi(:,4)=interp1(x,y,xi, 'cubic'); for iii = 1 : 3 figure hold on plot(x,y) plot(xi,Yi(:, 1) plot(xi,Yi(:, iii + 1) end xxxx = -5 : 0.01 : 5;yyy = interp1(x,y,xxxx, 'spline');最小二乘拟合:拟合放松了逼近函数必须经过观测点的要求,而求一函数,使其在“一定意义下”逼近实验观测数据。选择2范数作为误差准则的拟合方法称

21、为最小二乘法利用n次多项式P(x)=a0+a1x+a2x2 +··· + an x n 逼近f (x)已知实验数据x 1 2 3 4 5f (x) 4 4.5 6 8 9 试构造二次多项式P(x)=a0+a1x+a2x2 逼近f (x) 求解,得 a0=3, a1=0.7071, a2=0.1071 P(x)=3+0.7071x + 0.1071x2 y = 2.7690 2.3870 3.0784 5.4997 A = 1 -0.5 0.25; 1 -0.2 0.04; 1 0.1 0.01; 1 0.4 0.16 clear all close all clc

22、 x = -0.5 : 0.3 : 0.5; y = exp(1) * exp(2 * x .* x + 1 * x); yy = y + 0.2 * (rand(size(y) - 0.5); zz = log(yy) figure xi = -0.5 : 0.05 : 0.4; yi = exp(1) * exp(2 * xi .* xi + 1 * xi); plot(xi, yi) hold on yyi = polyval(polyfit(x, yy, 3), xi) plot(xi, yyi, 'r') hold on P = (polyfit(x, zz, 3)

23、zz1 = polyval(P, xi); zzi = exp(zz1); plot(xi, zzi, 'g')与拟合问题的差异:拟合问题:给定一组离散函数值,确定距离函数值最近的函数。函数逼近:给定一连续函数,确定距离函数最近的函数。最佳平方逼近问题:用均方误差最小作为度量标准,研究函数的逼近问题。一般法方程组的系数矩阵显然非奇异,其条件数随n增加而迅速增加,在n稍大时呈病态方程组。 改进方案:选择正交函数集。数值积分求法包括:1、插值型数值积分2、高斯积分3、Monte-Carlo方法插值型积分思路:在被积函数上选择等间隔n+1个点,做n阶多项式插值,用逼近多项式的积分值近

24、似被积函数的积分值1阶多项式插值Simpson求积公式利用二阶插值公式近似计算积分。Simpson求积公式的计算:用更高阶插值来构造数值积分方法,称为Newton-Cotes方法梯形公式的误差:Simpson 求积公式的误差: 代数精度:若某个求积公式所对应的误差R f 满足:R Pk =0 对任意 k £ n 阶的多项式成立,且 R Pn+1 ¹ 0 对某个 n+1 阶多项式成立,则称此求积公式的代数精度为 n 即:如果某求积公式对于次数小于等于n的多项式均能准确成立,但对于n+1次多项式不一定准确,则称此求积公式的代数精度为 n 。 由于龙格现象,阶数越高,不稳定性越大

25、,积分误差可能增加。应用高阶型插值求积公式计算积分会出现数值不稳定,而低阶公式(如梯形、辛普生公式)又因积分区间步长过大使得离散误差大。办法:缩小步长,即把积分区间分成若干子区间,在每个子区间上使用低阶积分公式,再将结果加起来,这种公式称为复合求积公式。复合梯形求积公式复合梯形求积公式误差复合Simpson求积公式高斯积分的数学描述:准则:使得积分的代数精度最高。二点高斯积分二点高斯公式具有三阶代数精度 若构造的n+1个节点的插值求积公式,则可将 f (x) = 1, x, x2, , x2n+1 代入求积公式可求解, 不是线性方程组,不易求解。 得到的公式具有2n+1 次代数精度。这样的节点称为Gauss 点,公式称为Gauss 型求积公式。注意: 高斯积分是不等距划分插值型求积公式加权积分高斯节点计算与前例中计算方法相同,只需将勒让德多项式改为加权后的正交多项式 利用符号计算得Freedom 积分方程进一步将x离散化取值,将方程转

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论