矩阵与数值分析报告学习指导和典型例题分析报告
矩阵分析与数值分析实验报告

《矩阵分析与数值分析》实验报告院系:姓名:学号:所在班号:任课老师:一.设错误!未找到引用源。
,分别编制从小到大和从大到小的顺序程序计算错误!未找到引用源。
并指出有效位数。
程序如下:function sum3j=input('请输入求和个数 "j":');A=0;B=0;double B;double A;for n=2:jm=n^2-1;t=1./m;A=A+t;enddisp('从小到大:')s=Afor n=j:-1:2m=n^2-1;t=1./m;B=B+t;enddisp('从大到小:')s=B运行结果:>> sum3请输入求和个数 "j":100从小到大:s =0.740049504950495从大到小:s =0.740049504950495>> sum3请输入求和个数 "j":10000从小到大:s =0.749900004999506从大到小:s =0.749900004999500>> sum3请输入求和个数 "j":1000000从小到大:s =0.749999000000522从大到小:s =0.749999000000500二、解线性方程组1.分别Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组。
⎪⎪⎪⎪⎪⎭⎫⎝⎛-=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----000121001210012100124321x x x x 迭代法计算停止的条件为:6)()1(3110max -+≤≤<-k j k j j x x 。
解:(1)Jacobi 迭代法程序代码: function jacobi(A, b, N) clc;clear;A=[-2 1 0 0;1 -2 1 0;0 1 -2 1;0 0 1 -2]; b=[-1 0 0 0]'; N=100;n = size(A,1); D = diag(diag(A)); L = tril(-A,-1); U = triu(-A,1); Tj = inv(D)*(L+U); cj = inv(D)*b; tol = 1e-06; k = 1;format longx = zeros(n,1); while k <= Nx(:,k+1) = Tj*x(:,k) + cj;disp(k); disp('x = ');disp(x(:,k+1)); if norm(x(:,k+1)-x(:,k)) < toldisp('The procedure was successful')disp('Condition ||x^(k+1) - x^(k)|| < tol was met after k iterations') disp(k); disp('x = ');disp(x(:,k+1)); break endk = k+1; end结果输出The procedure was successfulCondition ||x^(k+1) - x^(k)|| < tol was met after k iterations 60 x =0.799998799067310.599998427958700.399998056850090.19999902842505(2)Gauss-Seidel迭代法程序代码:function gauss_seidel(A, b, N)clc;clear;A=[-2 1 0 0;1 -2 1 0;0 1 -2 1;0 0 1 -2];b=[-1 0 0 0]';N=100;n = size(A,1);D = diag(diag(A));L = tril(-A,-1);U = triu(-A,1);Tg = inv(D-L)*U;cg = inv(D-L)*b;tol = 1e-06;k = 1;x = zeros(n,1);while k <= Nx(:,k+1) = Tg*x(:,k) + cg;disp(k); disp('x = ');disp(x(:,k+1));if norm(x(:,k+1)-x(:,k)) < toldisp('The procedure was successful')disp('Condition ||x^(k+1) - x^(k)|| < tol was met after k iterations') disp(k); disp('x = ');disp(x(:,k+1));breakendk = k+1;end结果输出The procedure was successfulCondition ||x^(k+1) - x^(k)|| < tol was met after k iterations31x =0.799999213979350.599998971085610.399999167590770.199999583795392. 用Gauss列主元消去法、QR方法求解如下方程组:⎪⎪⎪⎪⎪⎭⎫⎝⎛-=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---017435222331325212214321x x x x (1)Gauss 列主元消去法 程序代码:function x=Gaussmain(A,b) clc;clear; format longA=[1 2 1 2;2 5 3 -2;-2 -2 3 5;1 3 2 3]; b=[4 7 -1 0]'; N=length(A); x=zeros(N,1); y=zeros(N,1); c=0; d=0;A(:,N+1)=b; for k=1:N-1 for i=k:4if c<abs(A(i,k))d=i;c=abs(A(i,k)); end endy=A(k,:);A(k,:)=A(d,:); A(d,:)=y; for i=k+1:N c=A(i,k);for j=1:N+1A(i,j)=A(i,j)-A(k,j)*c/A(k,k); end end endb=A(:,N+1);x(N)=b(N)/A(N,N); for k=N-1:-1:1x(k)=(b(k)-A(k,k+1:N)*x(k+1:N))/A(k,k); end结果输出 ans =18.00000000000000 -9.571428571428576.00000000000000-0.42857142857143(2)QR方法:程序代码function QR(A,b)clc;clear;format longA=[1 2 1 2;2 5 3 -2;-2 -2 3 5;1 3 2 3];b=[4 7 -1 0]';[Q,R]=qr(A)y=Q'*b;x=R\y结果输出Q =-0.31622776601684 -0.04116934847963 -0.75164602800283 0.57735026918962 -0.63245553203368 -0.49403218175557 -0.15032920560056 -0.57735026918963 0.63245553203368 -0.74104827263336 -0.22549380840085 -0.00000000000000 -0.31622776601684 -0.45286283327594 0.60131682240226 0.57735026918963 R =-3.16227766016838 -6.00832755431992 -0.94868329805051 2.84604989415154 0 -2.42899156029822 -4.65213637819829 -4.15810419644272 0 0 -0.67648142520255 -0.52615221960200 0 0 0 4.04145188432738 x =17.99999999999989-9.571428571428515.99999999999997-0.42857142857143三、非线性方程的迭代解法1.用Newton迭代法求方程()06cos22x=-++=-xexf x的根,计算停止的条件为:6110-+<-kkxx;编程如下:function newton(f,df,x,a,a0)syms xf=input('please enter your equation:') a0=input('please enter you x(0):');df=diff(f)e=1e-6;a1=a0+1;N=0;while abs(a1-a0)>ea=a0-subs(f,a0)/subs(df,a0); a1=a0; a0=a; N=N+1; endfprintf('a=%0.6f',a) N运行结果: >> newtonplease enter your equation:exp(x)+2^(-x)+2*cos(x)-6 f =exp(x)+2^(-x)+2*cos(x)-6 please enter you x(0):2df =exp(x)-2^(-x)*log(2)-2*sin(x) a=1.829384 N =42.利用Newton 迭代法求多项式07951.2954.856.104.5x 234=+-+-x x x的所有实零点,注意重根的问题。
大连理工大学《矩阵与数值分析》学习指导与课后参考答案第三章、逐次逼近法

第三章 逐次逼近法1.1内容提要1、一元迭代法x n+1=φ(x n )收敛条件为:1)映内性x ∈[a,b],φ(x) ∈[a,b] 2)压缩性∣φ(x) -φ(y)∣≤L ∣x-y ∣其中L <1,此时φ为压缩算子,在不断的迭代中,就可以得到最终的不动点集。
由微分中值定理,如果∣φ’∣≤L <1,显然它一定满足压缩性条件。
2、多元迭代法x n+1=φ(x n )收敛条件为:1)映内性x n ∈Ω,φ(x n ) ∈Ω 2)压缩性ρ(▽φ)<1,其中▽φ为x n 处的梯度矩阵,此时φ为压缩算子,在不断的迭代中,就可以得到最终的不动点集。
3、当φ(x )= Bx+f 时,收敛条件为,ρ(B )<1,此时x n+1= Bx n +f ,在不断的迭代中,就可以得到线性方程组的解。
4、线性方程组的迭代解法,先作矩阵变换 U L D A --= Jacobi 迭代公式的矩阵形式 f Bx b D x U L D x n n n +=++=--+111)(Gauss-Seidel 迭代公式的矩阵形式 f Bx b L D Ux L D x n n n +=-+-=--+111)()( 超松弛迭代法公式的矩阵形式f Bx b L D x U D L D x k k k +=-++--=--+ωωωωω111)(])1[()(三种迭代方法当1)(<B ρ时都收敛。
5、线性方程组的迭代解法,如果A 严格对角占优,则Jacob 法和Gauss-Seidel 法都收敛。
6、线性方程组的迭代解法,如果A 不可约对角占优,则Gauss-Seidel 法收敛。
7、Newton 迭代法,单根为二阶收敛 2211'''21lim)(2)(lim---∞→+∞→--=-==--k k k k k k k k x x x x f f c x x ξξαα8、Newton 法迭代时,遇到重根,迭代变成线性收敛,如果知道重数m , )()('1k k k k x f x f m x x -=+仍为二阶收敛 9、弦割法)()())((111--+---=k k k k k k k x f x f x x x f x x 的收敛阶为1.618,分半法的收敛速度为(b-a )/2n-110、Aitken 加速公式11211112)(),(),(+----+-+--+---+---===k k k k k k k k k k k x x x x x x x x x x x ϕϕ1.2 典型例题分析1、证明如果A 严格对角占优,则Jacob 法和Gauss-Seidel 法都收敛。
数值分析实验报告——Hilbert矩阵的求解

1 / 7 数值分析课程实验报告题目:病态线性方程组的求解理论分析表明,数值求解病态线性方程组很困难。
考虑求解如下的线性方程组的求解Hx = b ,期中,期中H 是Hilbert 矩阵,()ij n n H h ´=,11ij h i j =+-,i ,j = 1,2,…,n 1.估计矩阵的2条件数和阶数的关系2.对不同的n ,取(1,1,,1,1))nx =Î,分别用Gauss 消去,Jacobi 迭代,Gauss-seidel 迭代,SOR 迭代和共轭梯度法求解,比较结果。
3.结合计算结果,试讨论病态线性方程组的求解。
解答过程1.估计矩阵的2-条件数和阶数的关系矩阵的2-条件数定义为:1222()Cond A A A-=´,将Hilbert 矩阵带入有:1222()Cond H H H -=´调用自编的Hilbert_Cond 函数对其进行计算,取阶数n = 50,可得从,可得从1阶到50阶的2-条件数,以五位有效数字输出,其中前10项见表1。
表1.前十阶Hilbert 矩阵的2-条件数阶数1 2 3 4 5 2-条件数1 19.281 524.06 1.5514e+004 4.7661e+005 阶数6 7 8 9 10 2-条件数1.4951e+007 4.7537e+008 1.5258e+010 4.9315e+011 1.6025e+013 从表1可以看出,随着阶数每递增1,Hilbert 矩阵的2-条件数都至少增加一个数量级,但难以观察出明显的相依规律。
故考虑将这些数据点绘制在以n 为横轴、Cond (H )2为纵轴的对数坐标系中(编程用Hilbert_Cond 函数同时完成了这个功能),生成结果如图1。
图1.不同阶数下Hilbert 矩阵的2-条件数分布条件数分布由图可见,当维数较小时,在y-对数坐标系中Cond (H )2与n 有良好的线性关系;但n 超过10后,线性趋势开始波动,n 超过14后更是几乎一直趋于平稳。
数值分析例题和知识点总结

数值分析例题和知识点总结数值分析是一门研究如何用计算机求解数学问题数值解的学科,它在科学计算、工程技术、金融经济等领域都有着广泛的应用。
为了更好地理解和掌握数值分析的知识,下面将通过一些例题来对常见的知识点进行总结。
一、误差分析误差是数值分析中一个非常重要的概念。
误差分为绝对误差、相对误差和有效数字。
绝对误差:设某量的准确值为$x$,近似值为$x^$,则绝对误差为$|x x^|$。
相对误差:相对误差是绝对误差与准确值的比值,即$\frac{|xx^|}{|x|}$。
有效数字:若近似值$x^$的绝对误差限是某一位的半个单位,该位到$x^$的第一位非零数字共有$n$位,则称$x^$有$n$位有效数字。
例如,$\pi$的近似值为 314,准确值约为 31415926,绝对误差为$|31415926 314| = 00015926$,相对误差为$\frac{00015926}{31415926} \approx 0000507$,314 有 3 位有效数字。
二、插值法插值法是数值分析中的一种基本方法,用于通过已知的数据点来构造一个函数。
1、拉格朗日插值已知$n + 1$个互异节点$(x_0, y_0),(x_1, y_1),\cdots, (x_n, y_n)$,拉格朗日插值多项式为:$L_n(x) =\sum_{i = 0}^n y_i l_i(x)$其中,$l_i(x) =\frac{\prod_{j = 0, j \neq i}^n (x x_j)}{\prod_{j = 0, j \neq i}^n (x_i x_j)}$例如,已知点$(1, 2)$,$(2, 3)$,$(3, 5)$,求插值多项式。
设$L_2(x) = y_0 l_0(x) + y_1 l_1(x) + y_2 l_2(x)$$l_0(x) =\frac{(x 2)(x 3)}{(1 2)(1 3)}=\frac{1}{2}(x 2)(x 3)$$l_1(x) =\frac{(x 1)(x 3)}{(2 1)(2 3)}=(x 1)(x 3)$$l_2(x) =\frac{(x 1)(x 2)}{(3 1)(3 2)}=\frac{1}{2}(x 1)(x 2)$则$L_2(x) = 2 \times \frac{1}{2}(x 2)(x 3) + 3 \times (x1)(x 3) + 5 \times \frac{1}{2}(x 1)(x 2)$2、牛顿插值牛顿插值多项式为:$N_n(x) = fx_0 + fx_0, x_1(x x_0) + fx_0, x_1, x_2(x x_0)(xx_1) +\cdots + fx_0, x_1, \cdots, x_n(x x_0)(x x_1) \cdots (xx_{n 1})$其中,均差$fx_0, x_1, \cdots, x_k =\frac{fx_1, x_2, \cdots, x_k fx_0, x_1, \cdots, x_{k 1}}{x_k x_0}$三、数值积分数值积分用于计算定积分的近似值。
数值分析实验报告心得(3篇)

第1篇在数值分析这门课程的学习过程中,我深刻体会到了理论知识与实践操作相结合的重要性。
通过一系列的实验,我对数值分析的基本概念、方法和应用有了更加深入的理解。
以下是我对数值分析实验的心得体会。
一、实验目的与意义1. 巩固数值分析理论知识:通过实验,将课堂上学到的理论知识应用到实际问题中,加深对数值分析概念和方法的理解。
2. 培养实际操作能力:实验过程中,我学会了使用Matlab等软件进行数值计算,提高了编程能力。
3. 增强解决实际问题的能力:实验项目涉及多个领域,通过解决实际问题,提高了我的问题分析和解决能力。
4. 培养团队协作精神:实验过程中,我与同学们分工合作,共同完成任务,培养了团队协作精神。
二、实验内容及方法1. 实验一:拉格朗日插值法与牛顿插值法(1)实验目的:掌握拉格朗日插值法和牛顿插值法的原理,能够运用这两种方法进行函数逼近。
(2)实验方法:首先,我们选择一组数据点,然后利用拉格朗日插值法和牛顿插值法构造插值多项式。
最后,我们将插值多项式与原始函数进行比较,分析误差。
2. 实验二:方程求根(1)实验目的:掌握二分法、Newton法、不动点迭代法、弦截法等方程求根方法,能够运用这些方法求解非线性方程的根。
(2)实验方法:首先,我们选择一个非线性方程,然后运用二分法、Newton法、不动点迭代法、弦截法等方法求解方程的根。
最后,比较不同方法的收敛速度和精度。
3. 实验三:线性方程组求解(1)实验目的:掌握高斯消元法、矩阵分解法等线性方程组求解方法,能够运用这些方法求解线性方程组。
(2)实验方法:首先,我们构造一个线性方程组,然后运用高斯消元法、矩阵分解法等方法求解方程组。
最后,比较不同方法的计算量和精度。
4. 实验四:多元统计分析(1)实验目的:掌握多元统计分析的基本方法,能够运用这些方法对数据进行分析。
(2)实验方法:首先,我们收集一组多元数据,然后运用主成分分析、因子分析等方法对数据进行降维。
矩阵分析实验报告

矩阵分析实验报告学院:电气学院专业:控制工程姓名:XXXXXXXX学号:211208010001矩阵分析实验报告实验题目利用幂法求矩阵的谱半径实验目的与要求1、 熟悉matlab 矩阵实验室的功能和作用;2、 利用幂法求矩阵的谱半径;3、 会用matlab 对矩阵分析运算。
实验原理理念谱半径定义:设n nA C⨯∈,1λ,2λ,3λ, ,j λ, n λ是A 的n 个特征值,称()max ||j jA ρλ=为关于A 的谱半径。
关于矩阵的谱半径有如下结论:设n nA C⨯∈,则(1)[]()()kkA A ρρ=;(2)22()()()H H A A AA A ρρ==。
由于谱半径就是矩阵的主特征值,所以实验换为求矩阵的主特征值。
算法介绍定义:如果1λ是矩阵A 的特征值,并且其绝对值比A 的任何其他特征值的绝对值大,则称它为主特征值。
相应于主特征值的特征向量1V 称为主特征向量。
定义:如果特征向量中最大值的绝对值等于单位值(例如最大绝对值为1),则称其为是归一化的。
通过形成新的向量'12=c n V (1/)[v v v ],其中c=v 且1max {},j i n i ≤≤=v v 可将特征向量 '12n [v v v ]进行归一化。
设矩阵A 有一主特征值λ,而且对应于λ有唯一的归一化特征向量V 。
通过下面这个称为幂法(power method )的迭代过程可求出特征对λ,V ,从下列向量开始:[]'0=111X (1)用下面递归公式递归地生成序列{}k X :k k Y AX =k+111k k X Y c +=(2)其中1k c +是k Y 绝对值最大的分量。
序列{}k X 和{}k c 将分别收敛到V 和λ:1lim k X V =和lim k c λ= (3)注:如果0X 是一个特征向量且0X V ≠,则必须选择其他的初始向量。
幂法定理:设n ×n 矩阵A 有n 个不同的特征值λ1,λ2,···,,λn ,而且它们按绝对值大小排列,即:123n λλλλ≥≥≥⋅⋅⋅≥ (4)如果选择适当的X 0,则通过下列递推公式可生成序列{[()()()]}12k kk k n X x x x '=⋅⋅⋅和{}k c : k k Y AX = (5)和:111k k k X Y c ++=(6)其中: ()1k k j c x +=且{}()()1max k k j i i nx x ≤≤=(7)这两个序列分别收敛到特征向量V 1和特征值λ1。
矩阵数值计算实验报告

#### 一、实验目的本次实验旨在通过MATLAB软件,对矩阵进行数值计算,掌握矩阵的基本操作、运算函数的使用,以及解决实际问题的能力。
通过实验,加深对线性代数基本理论的理解,提高数值计算技能。
#### 二、实验环境软件:MATLAB R2020a硬件:****************************,8GB RAM#### 三、实验内容1. 矩阵的创建与操作(1)创建矩阵:通过MATLAB内置函数创建不同类型的矩阵,如`zeros`、`ones`、`rand`等。
```matlabA = zeros(3,3); % 创建3x3零矩阵B = ones(2,2); % 创建2x2单位矩阵C = rand(4,4); % 创建4x4随机矩阵```(2)矩阵的引用:使用矩阵的行和列索引访问矩阵元素。
```matlabE = A(1,1); % 访问矩阵A的第一个元素```(3)矩阵的运算:进行矩阵的加法、减法、乘法等运算。
```matlabD = A + B; % 矩阵A和B相加F = A . C; % 矩阵A和C对应元素相乘```2. 矩阵的基本运算(1)矩阵的逆:计算矩阵的逆矩阵。
```matlabA_inv = inv(A);```(2)矩阵的行列式:计算矩阵的行列式值。
```matlabdet_A = det(A);```(3)矩阵的秩:计算矩阵的秩。
```matlabrank_A = rank(A);```(4)矩阵的迹:计算矩阵的迹。
```matlabtrace_A = trace(A);```3. 矩阵分解(1)奇异值分解(SVD):对矩阵进行奇异值分解。
```matlab[U, S, V] = svd(A);```(2)LU分解:将矩阵分解为下三角矩阵和上三角矩阵。
```matlab[L, U] = lu(A);```4. 解线性方程组(1)使用矩阵的逆解方程组。
```matlabb = [1; 2; 3];x = A_inv b;```(2)使用矩阵分解方法解方程组。
矩阵报告

矩阵与数值分析实习报告00xx00xx00x00xxx一、解线性方程组对于线性方程组123412341234123441414141x x x x x x x x x x x x x x x x -+++=⎧⎪-++=⎪⎨+-+=⎪⎪++-=⎩ (1)用直接法求解;(2)用Jacobi 迭代法求解;(3)分别取0.75,1.0,1.25,1.5ω=,用SOR 方法求解.比较迭代结果(与精确解比较). 解:(1)直接法求解 程序:(direct.m )A=[-4,1,1,1;1,-4,1,1;1,1,-4,1;1,1,1,-4]; % 系数矩阵 b=diag(ones(4));x=A\b % 直接法求解并输出运行结果:(2)Jacobi 迭代法求解: 迭代公式:(1)()k k J x B x f+=+11(),J B D L U f D b--=+=程序:(jacobi.m ) clear all;format long g;A=[-4,1,1,1;1,-4,1,1;1,1,-4,1;1,1,1,-4]; %系数矩阵 b= [1 1 1 1 ]; [M,N]=size(A);x=zeros(M,1); %给方程设置初值ep=1e-6; %设定迭代终止条件D=diag(diag(A));L=tril(tril(A,-1),-1);U=triu(triu(A,1),1);B=-inv(D)*(L+U); %求得Jacobi法迭代矩阵Bd=inv(D)*b; %求dlamada=eig(B);lamada=abs(lamada); %求谱半径lamada=max(lamada);if (lamada>1) %判断迭代方法是否收敛,决定是否运行error('方程发散');elseXk=B*x+d;n=1; % n迭代次数while 1e=Xk-x;e=abs(e);lamada=max(e);if lamada<epbreak;else %根据收敛条件决定迭代次数x=Xk;Xk=B*x+d;n=n+1;endendendfprintf('方程组的解x='); % 输出方程组的解xfprintf('迭代次数n='); % 输出迭代次数n运行结果:(3)SOR 方法求解 基本公式:(1)()k k x L x fω+=+1()[(1)]L D L D U ωωωω-=--+1()f D L b ωω-=-程序:(SOR.m) format long g;A=[-4 1 1 1;1 -4 1 1;1 1 -4 1;1 1 1 -4]; %系数矩阵 b=[1 1 1 1]';x0=[0 0 0 0]'; % 迭代初始值 w=0.75; % 松弛因子 D=diag(diag(A)); % 下三角矩阵 U=-triu(A,1); % 上三角矩阵 L=-tril(A,-1);lw=(D-w*L)\((1-w)*D+w*U); f=((D-w*L)\b)*w;y=lw*x0+f; % 迭代公式 n=1;while norm(y-x0)>=1.0e-6&n<=1000 % 选取1.0e-6作为迭代精度 x0=y;y=lw*x0+f; n=n+1; endfprintf('方程组的解y='); % 输出方程组的解 yfprintf('迭代次数n='); % 输出迭代次数 n运行结果(ω=0.75的仿真结果):分别将程序中的松弛因子ω的值修改为0.75,1.0,1.25,1.5得出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 误差分析与向量与矩阵的数一、容提要本章要求掌握绝对误差、相对误差、有效数字、误差限的定义及其相互关系;掌握数值稳定性的概念、设计函数计算时的一些基本原则和误差分析;熟练掌握向量和矩阵数的定义及其性质。
1.误差的基本概念和有效数字 1).绝对误差和相对误差的基本概念设实数x 为某个精确值,a 为它的一个近似值,则称a x -为近似值a 的绝对误差,简称为误差. 当0≠x 时,x ax -称为a 的相对误差.在实际运算中,精确值x 往往是未知的,所以常把a ax -作为a 的相对误差.2).绝对误差界和相对误差界的基本概念设实数x 为某个精确值,a 为它的一个近似值,如果有常数a e ,使得 a e a x ≤-称a e 为a 的绝对误差界,或简称为误差界.称ae a是a 的相对误差界.此例计算中不难发现,绝对误差界和相对误差界并不是唯一的,但是它们越小,说明a 近似x 的程度越好,即a 的精度越好.3).有效数字设实数x 为某个精确值,a 为它的一个近似值,写成ΛΛn ka a a a 21.010⨯±=它可以是有限或无限小数的形式,其中),2,1(Λ=i a i 是9,,1,0Λ中的一个数字,k a ,01≠为整数.如果n k a x -⨯≤-1021则称a 为x 的具有n 位有效数字的近似值.如果a 有n 位有效数字,则a 的相对误差界满足:n a a a x -⨯≤-111021。
4).函数计算的误差估计如果),,,(21n x x x f y Λ=为n 元函数,自变量n x x x ,,,21Λ的近似值分别为n a a a ,,,21Λ,则)(),,,(),,,(12121k k nk akn n a x x fa a a f x x x f -⎪⎪⎭⎫⎝⎛∂∂≈-∑=ΛΛ 其中),,,(21n kak a a a f x x f Λ∂∂=⎪⎪⎭⎫ ⎝⎛∂∂,所以可以估计到函数值的误差界,近似地有 k a n k aka n n e x fe a a af x x x f ∑=⎪⎪⎭⎫⎝⎛∂∂≈≤-12121),,,(),,,(ΛΛ 如果令2=n ,设21,x x 的近似值分别为21,a a ,其误差界为111a e a x ≤-和≤-22a x 2a e ,取),(21x x f y =为21,x x 之间的四则运算,则它们的误差估计为,1121a a a a e e e +≈±;112121a a a a e a e a e +≈⋅;22211121a e a e a e a a a a +≈,02≠a 。
数相加或减时,其运算结果的精度不会比原始数据的任何一个精度高. 对于两个数作相减运算时,由于其相对误差界:21212121a a e e a a e a a a a -+≈-±。
如果1x 和2x 是两个十分接近的数,即1a 和2a 两个数十分接近,上式表明计算的相对误差会很大,导致计算值21a a -的有效数字的位数将会很少。
对于两个数作相除运算时,由于其相对误差界:2211121a e a e a e a a a a +≈。
从关系式中可以看出,如果2x 很小,即2a 很小,计算值21a a 的误差可能很大。
5).数值稳定性的概念、设计算法时的一些基本原则⑴ 算法的数值稳定性:一个算法在计算过程中其舍入误差不增长称为数值稳定。
反之,成为数值不稳定。
不稳定的算法是不能使用的。
⑵ 在实际计算中应尽量避免出现两个相近的数相减。
⑶ 在实际计算中应尽力避免绝对值很小数作除数。
⑷ 注意简化运算步骤,尽量减少运算次数。
⑸ 多个数相加,应把绝对值小的数相加后,再依次与绝对值大的数相加。
2.向量和矩阵数把任何一个向量或矩阵与一个非负实数联系起来,在某种意义下,这个实数提供了向量和矩阵的大小的度量。
对于每一个数,相应地有一类矩阵函数,其中每一个函数都可以看作矩阵大小的一种度量。
数的主要的应用:一、研究这些矩阵和向量的误差估计。
二、研究矩阵和向量的序列以及级数的收敛准则。
1)向量数定义 存在n R (n 维实向量空间)上的一个非负实值函数,记为x x f =)(,若该函数满足以下三个条件:即对任意向量x 和y 以及任意常数R ∈α(实数域)(1)非负性 0≥x ,并且0=x 的充分必要条件为0=x ; (2)齐次性x x αα=;(3)三角不等式y x y x +≤+. 则称函数⋅为nR 上的一个向量数.常用三种的向量数设任意n维向量T n x x x ),,,(21Λ=x ,(Tx 为向量x 的转置),∑==ni i x 11x , 向量的1-数()21,21122x x x x x x =⋅=⎪⎭⎫⎝⎛=∑=T n i i , 向量的2-数i ni x x≤≤∞=1max , 向量的∞-数一般情况下,对给定的任意一种向量数⋅,其加权的数可以表为x x W W =,其中W 为对角矩阵,其对角元作为它的每一个分量的权系数。
向量数的连续性定理 nR 上的任何向量数x 均为x 的连续函数。
向量数的等价性定理 设α⋅和β⋅为nR 上的任意两种向量数,则存在两个与向量x 无关的正常数c 1和c 2,使得下面的不等式成立βαβx xx21c c ≤≤,其中n x R ∈∀.2). 矩阵数 定义 存在nn ⨯R (n n ⨯维复矩阵集合)上的一个非负实值函数,记为A A f =)(,对任意的A,nn ⨯∈RB 均满足以下条件:(1)非负性:对任意矩阵A 均有0≥A ,并且0=A 的充分必要条件为O A =;(2)齐次性:A A αα=,α∈C ;(3)三角不等式:B A B A +≤+, nn ⨯∈R B A,;(4)相容性:B A AB ⋅≤, nn ⨯∈R B A,,则称⋅为n n ⨯R 上的矩阵数。
我们可定义如下的矩阵数:∑∑===m i nj ij m a 111A ,矩阵的1m -数()21112⎪⎪⎭⎫ ⎝⎛=∑∑==mi nj ij F a A ,矩阵的F -数(Frobenius )数。
(矩阵数与向量数相容性定义) 对于一种矩阵数M⋅和一种向量数V ⋅,如果对任意n ×n 矩阵A 和任意n 维向量x , 满足V M V x A Ax ≤,则称矩阵数M⋅与向量数V ⋅是相容的。
3)矩阵的算子数定理 已知nR 上的向量数V ⋅,A 为n ×n 矩阵,定义 V VV MVAx x Ax Axx 1max max=≠==则M A 是一种矩阵数,且与已知的向量数相容,称之为矩阵的算子数。
三种常用的矩阵的算子数∑=≤≤=mi ij nj a 111max A ; (列数)∑=≤≤∞=nj ij mi a 11max A. (行数),)(max 2A A A T λ=(谱数)其中)(max A A T λ表示矩阵A A T的最大特征值。
对任何算子数⋅,单位矩阵nn RI ⨯∈的数为1,即1=I 。
可以证明:① 任意给定的矩阵数必然存在与之相容的向量数;任意给定的向量数必然存在与之相容的矩阵数(如从属数).② 一个矩阵数可以与多种向量数相容(如矩阵1m 数与向量p -数相容);多种矩阵数可以与一个向量数相容(如矩阵-F 数和矩阵-2数与向量-2数相容)。
③ 从属数一定与所定义的向量数相容,但是矩阵数与向量数相容却未必有从属关系。
(如,F ⋅与向量2⋅、1m ⋅与向量1⋅相容,但无从属关系)。
④ 并非任意的矩阵数与任意的向量数相容。
4)矩阵数的性质① 设⋅为n n ⨯R 矩阵空间的一种矩阵数,则对任意的n 阶方阵A 均有 A A ≤)(ρ.其中(){}0det max )(=-=A I A λλρ为方阵A 的谱半径。
注意:当TA A =时,()()())(max 2max max 2A A ρλλλ====A A A A T 。
② 对于任给的ε>0, 则存在nn ⨯R 上的一种算子数M⋅(依赖矩阵A 和常数ε),使得ερ+≤)(A A M.③ 对于nn ⨯R上的一种算子矩阵数⋅,如果nn ⨯∈R A 且A <1, 则AI ±n 可逆且()AA I -≤±-111n . 二、典型例题分析例1.1:下列近似值的绝对误差限均为0.005,问它们各有几位有效数字?002.138=a ,0312.0-=b ,41086.0-⨯=c解: 现将近似值写成标准形式:310138002.0⨯=a , 110312.0-⨯-=b , 41086.0-⨯=c ,在直接根据有效数字定义得出,21021-⨯≤-a x ⇒=-n k 23-=-n ⇒5=n ,即a 有5 位有效数字;21021-⨯≤-b x ⇒=-n k 21-=--n ⇒1=n ,即b 有1位有效数字;21021-⨯≤-c x ⇒=-n k 24-=--n ⇒2-=n ,即c 无有效数字。
例1.2:已知x 的相对误差为003.0,求ma 的相对误差。
解:此题要利用函数计算的误差估计,即取()m x x f =,()1-⋅='m x m x f ,则由 ()()()()a x a f a f x f -'≈- ,可推出 ()a x am a x m mm-⋅⋅≈--1,故m a 的相对误差为m aax m a a x m m m 003.0=-⋅≈-。
例1.3:此为减少运算次数达到避免误差危害的例子利用3位算术运算求()5.12.31.623++-=x x x x f 在71.4=x 处的值。
表中给出了传统的方法的计算的中间结果。
在这里我们使用了两种取值法:截断法和舍入法。
x2x 3x 21.6x x 2.3精确值4.71 22.1841 104.487 111 .323 0115.072 3位数值(截断法) 4.71 22.1 104 15.0 3位数值(舍入法) 4.71 22.110415.1精确值:()5.1072.1501323.135111487.10471.4++-=f 899263.14-= 3位数值(截断法):()()()5.135.10.1513410471.4-=++-=f 3位数值(舍入法):()()()4.135.11.1513510571.4-=++-=f 上述3位数值方法的相对误差分别是05.0899263.145.13899263.14≈-+-,截断法 06.0899263.144.13899263.14≈-+-,舍入法作为另一种办法,用秦九韶方法(嵌套法)可将()x f 写为()5.12.31.623++-=x x x x f ()()5.12.31.6++-=x x x那么,3位数值(截断法):()()()2.145.171.42.371.41.671.471.4-=++-=f()5.171.42.371.438.1+⨯+⨯-= ()5.171.42.354.6+⨯+-=5.171.434.3+⨯-=2.145.17.15-=+-=3位数值(舍入法):()()()2.145.171.42.371.41.671.471.4-=++-=f()5.171.42.371.438.1+⨯+⨯-= ()5.171.42.355.6+⨯+-=5.171.435.3+⨯-=3.145.18.15-=+-=则相对误差分别是5004.0899263.142.14899263.14≈-+-,(截断法) 0025.0899263.143.14899263.14≈-+-,(舍入法) 可见使用秦九韶方法(嵌套法)已将截断近似计算的相对误差减少到原方法所得相对误差的%10之。