数值线性代数实验报告
- 格式:docx
- 大小:50.25 KB
- 文档页数:4
迭代法解线性方程组数值分析实验报告一、实验目的本次实验旨在深入研究和掌握迭代法求解线性方程组的基本原理和方法,并通过数值实验分析其性能和特点。
具体目标包括:1、理解迭代法的基本思想和迭代公式的推导过程。
2、掌握雅克比(Jacobi)迭代法、高斯赛德尔(GaussSeidel)迭代法和超松弛(SOR)迭代法的算法实现。
3、通过实验比较不同迭代法在求解不同类型线性方程组时的收敛速度和精度。
4、分析迭代法的收敛性条件和影响收敛速度的因素。
二、实验原理1、线性方程组的一般形式对于线性方程组$Ax = b$,其中$A$ 是$n×n$ 的系数矩阵,$x$ 是$n$ 维未知向量,$b$ 是$n$ 维常向量。
2、迭代法的基本思想迭代法是从一个初始向量$x^{(0)}$出发,按照某种迭代公式逐步生成近似解序列$\{x^{(k)}\}$,当迭代次数$k$ 足够大时,$x^{(k)}$逼近方程组的精确解。
3、雅克比迭代法将系数矩阵$A$ 分解为$A = D L U$,其中$D$ 是对角矩阵,$L$ 和$U$ 分别是下三角矩阵和上三角矩阵。
雅克比迭代公式为:$x^{(k+1)}= D^{-1}(b +(L + U)x^{(k)})$。
4、高斯赛德尔迭代法在雅克比迭代法的基础上,每次计算新的分量时立即使用刚得到的最新值,迭代公式为:$x_i^{(k+1)}=(b_i \sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})/a_{ii}$。
5、超松弛迭代法在高斯赛德尔迭代法的基础上引入松弛因子$\omega$,迭代公式为:$x_i^{(k+1)}= x_i^{(k)}+\omega((b_i \sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}\sum_{j=i}^{n}a_{ij}x_j^{(k)})/ a_{ii} x_i^{(k)})$。
数值代数实验数值线性代数实验一一、实验名称:矩阵的LU分解.二、实验目的:用不选主元的LU分解和列主元LU分解求解线性方程组Ax=b, 并比较这两种方法.三、实验内容与要求(1)用所熟悉的计算机语言将不选主元和列主元LU分解编成通用的子程序,然后用编写的程序求解下面的84阶方程组将计算结果与方程组的精确解进行比较,并就此谈谈你对Gauss消去法的看法.(2)写出追赶法求解三对角方程组的过程,并编写程序求该实验中的方程组Gauss消去法:用消去法解方程组的基本思想是用逐次消去未知数的方法把原来方程组Ax=b化为与其等价的三角方程组,而求解三角方程组就容易了。
换句话说,上述过程就是用行的初等变换将原方程组系数矩阵化为简单形式,从而将求解原方程组的问题转化为求解简单方程组的问题。
利用Gauss消去法对线性方程组Ax=b进行求解。
用MATLAB建立m文件DelGauss.m,程序如下:function x=DelGauss(a,b)[n,m]=size(a);nb=length(b);det=1;x=zeros(n,1);for k=1:n-1for i=k+1:nif a(k,k)==0returnendm=a(i,k)/a(k,k);for j=k+1:na(i,j)=a(i,j)-m*a(k,j);endb(i)=b(i)-m*b(k);enddet=det*a(k,k);enddet=det*a(n,n);for k=n:-1:1for j=k+1:nb(k)=b(k)-a(k,j)*x(j);endx(k)=b(k)/a(k,k);End在matlab中输入如下:结果如下:方程组的精确解为x 1=x 2=…=x 84=1.0000,与Gauss 消去法求得的解差距很大,所得结果不够准确,计算简单但其消元过程有时不能进行到底而使求解出现解失真的情况。
数值线性代数实验二一、实验名称:实对称正定矩阵的A的Cholesky分解.二、实验目的:用平方根法和改进的平方根方法求解线性方程组Ax=b.三、实验内容与要求用所熟悉的计算机语言将Cholesky分解和改进的Cholesky分解编成通用的子程序,然后用编写的程序求解对称正定方程组Ax=b,其中(1)b随机的选取,系数矩阵为100阶矩阵(2)系数矩阵为40阶Hilbert矩阵,即系数矩阵A的第i行第j列元素为,向量b的第i个分量为(3)用实验一的程序求解这两个方程组,并比较所有的计算结果,然后评价各个方法的优劣。
一、引言很多情况下在工程中抽象出来的数学方程组是超定的,没有精确解,这样就需要找一个在某种意义下最接近精确解的解。
设A 是m*n 的实矩阵,22A (A )T x bQ x b -=-,这样2min A y b -就等价与2min (A )T Q x b -,为方便求解,需要A T Q 是上三角矩阵,这样引入QR 分解就比较求解方便。
二、豪斯霍尔德变换豪斯霍尔德变换(Householder transformation )又称初等反射(Elementary reflection ),最初由A.C Aitken 在1932年提出,Alston Scott Householder 在1958年指出了这一变换在数值线性代数上的意义。
这一变换将一个向量变换为由一个超平面反射的镜像,是一种线性变换。
其变换矩阵被称作豪斯霍尔德矩阵,在一般内积空间中的类比被称作豪斯霍尔德算子,超平面的法向量被称作豪斯霍尔德向量。
三、理论依据householder 变换:任意的一个向量x ,经过一个正交变换2**T H I W W =- 后总可以变为一个与之范数相等的另一个向量Hx 。
如上图中所示,记v Hx x =-,2/w v v =,2**TH I W W =-上述H 既为所要求的householder 变换。
具体操作时将需要变化的矩阵的每一列当做一个向量,第一列变为除了第一个元素都为0的向量…第i 列变为除了前i 个元素都为0的向量...为了保证在每次变化时不改变已经变好的0元素,第i 次只变化每列第i 个元素到第n 个元素,每个变化矩阵的形式是[I 0;0 H]。
算法如下:qr_Houserhoilder.m function [Q,R]=qr_Houserhoilder(A) [m,n]=size(A); Q=eye(n); for i=1:nu=house(A(i:m,i));P=eye(m-i+1)-2/(norm(u)^2)*u*u'; A(i:m,i:n)=P*A(i:m,i:n);PP=blkdiag(eye(i-1),P);Q=Q*PP;endR=triu(A);程序house.mfunction u=house(Ai)Ai(1)=Ai(1)+sign(Ai(1))*norm(Ai);u=Ai/norm(Ai);四、数值实验结果:为了保证在一定阶数下,所做的数值试验具有代表性,我们随机产生3个n阶矩阵,随着n的不断变化,得到如下一系列图:(1)A=rand(4,4)A =0.3027 0.7894 0.1793 0.39220.2364 0.7134 0.4350 0.39360.4690 0.0742 0.9747 0.11150.5381 0.6768 0.7245 0.8650[Q,R]=qr_Houserhoilder(A)Q =-0.3735 -0.5369 0.4602 0.6003-0.2916 -0.5439 -0.7840 -0.0668-0.5786 0.6445 -0.2679 0.4219-0.6639 -0.0208 0.3190 -0.6761R =-0.8106 -0.9951 -1.2387 -0.90010 -0.7781 0.2803 -0.37070 0 -0.2886 0.11800 0 0 -0.3286test_qr3err =1.0e-10 *0.1950 0.0120 0.0119 0.3029-111 1.52 2.53 3.54(2)A=rand(5,5)A =0.7575 0.7005 0.6420 0.8233 0.88770.6373 0.4698 0.5815 0.5290 0.37700.6643 0.3036 0.9458 0.7210 0.12950.1056 0.0254 0.3903 0.1048 0.30270.2813 0.3787 0.5302 0.0627 0.1156[Q,R]=qr_Houserhoilder(A)Q =-0.6161 0.4378 0.2968 -0.5805 -0.0598-0.5183 -0.0381 0.2932 0.7098 -0.3743-0.5403 -0.6729 -0.2440 -0.1030 0.4303-0.0859 -0.1847 -0.5513 -0.2507 -0.7693-0.2288 0.5657 -0.6801 0.2928 0.2817R =-1.2295 -0.9280 -1.3629 -1.1944 -0.86480 0.2940 -0.1496 -0.1288 0.29660 0 -0.4455 0.1231 0.09690 0 0 -0.1847 -0.30310 0 0 0 -0.3388test_qr3err =1.0e-10 *0.1722 0.0119 0.0120 0.4239-111 1.52 2.53 3.54(3)A=rand(6,6)A =0.5961 0.8422 0.4279 0.3473 0.2731 0.34860.1335 0.2860 0.2157 0.6181 0.6306 0.19300.4479 0.0467 0.3284 0.4588 0.4228 0.95480.9430 0.7296 0.7951 0.0920 0.0322 0.31140.7581 0.7811 0.4338 0.1512 0.6185 0.12710.8647 0.1359 0.1735 0.9036 0.4393 0.8964 [Q,R]=qr_Houserhoilder(A)Q =-0.3571 -0.5571 0.2402 0.2038 0.4576 0.5035-0.0800 -0.2530 -0.1880 0.8253 -0.1645 -0.4314-0.2684 0.3532 -0.4622 0.2419 -0.3487 0.6399-0.5650 -0.0874 -0.6012 -0.3372 0.2898 -0.3376-0.4542 -0.3266 0.3151 -0.2560 -0.7185 -0.0773-0.5181 0.6217 0.4823 0.1991 0.2045 -0.1760R =-1.6690 -1.1737 -0.9944 -0.8854 -0.7882 -1.09430 -0.7594 -0.2803 0.3166 -0.0940 0.58290 0 -0.3472 0.1832 0.1390 -0.10880 0 0 0.8020 0.5966 0.50220 0 0 0 -0.4714 -0.02290 0 0 0 0 0.4305test_qr3err =1.0e-10 *0.1518 0.0119 0.0120 0.2845-111 1.52 2.53 3.54五、总结与分析由上面的数值试验结果和绘图可知:比较之下,我自己写的houserhoilder程序误差是最大的,CGS与MGS的误差相差不大,系统自带的matlab软件速度是最快的,我自己写的houserhoilder程序还是最慢的。
数值代数实验报告Numerical Linear Algebra And ItsApplications学生所在学院:理学院学生所在班级:计算数学10-1学生姓名:戈东潮指导教师:于春肖教务处2012年12月实验一实验名称: Poisson 方程边值问题的五点差分格式 实验时间: 2012年12月13日 星期四 实验成绩: 一、实验目的:通过上机利用Matlab 数学软件实现Poisson 方程的边值问题的五点差分格式的线性代数方程组来认真解读Poisson 方程边值问题的具体思想与方法,使我们掌握得更加深刻,并且做到学习与使用并存,增加学习的实际动手性,不再让学习局限于书本和纸上,而是利用计算机学习来增加我们的学习兴趣。
二、实验内容:利用Poisson 方程来解下列问题:⎪⎩⎪⎨⎧∂∈=∈=∂∂+∂∂-ΩΩ),(,),(),(,sin sin )(y x y x u y x y x y u x u 0222222πππ 其中}{的边界是ΩΩ∂<<∈Ω,1,0),(y x y x 。
边值问题的解释是y x y x u ππsin sin ),(=(1)用例题中模型问题的方法取N=5,10(也可以取N=20)列出五点差分格式的线性代数方程组三、实验过程:系数矩阵A 的Matlab 实现函数如下:%文件名:poisson.m function T=poisson(N) for i=1:N a(i)=4; end b=diag(a); for j=1:N-1b(j,j+1)=-1;endfor j=2:Nb(j,j-1)=-1;endfor i=1:NI(i)=-1;endI=diag(I);for i=1:N:N*Nfor j=1:NT(i+j-1,i:i+N-1)=b(j,:);endendfor i=1:N:N*N-Nfor j=1:NT(i+j-1,i+N:i+N-1+N)=I(j,:);endendfor i=1+N:N:N*Nfor j=1:NT(i+j-1,i-N:i-1)=I(j,:);endend求解常数项b的Matlab实现函数如下:%函数名:constant.mfunction b=constant(N)n=N+1;h=1/n;i=1;for y=1/n:1/n:N/nfor x=1/n:1/n:N/nf(i)=2*pi*pi*sin(pi*x)*sin(pi*y);i=i+1;endendb=h*h*f;b=b';四、实验结果(总结/方案)在Matlab运行窗口输入>>A=poisson(5) Enter输出结果A =Columns 1 through 114 -1 0 0 0 -1 0 0 0 0 0-1 4 -1 0 0 0 -1 0 0 0 00 -1 4 -1 0 0 0 -1 0 0 00 0 -1 4 -1 0 0 0 -1 0 00 0 0 -1 4 0 0 0 0 -1 0-1 0 0 0 0 4 -1 0 0 0 -10 -1 0 0 0 -1 4 -1 0 0 00 0 -1 0 0 0 -1 4 -1 0 00 0 0 -1 0 0 0 -1 4 -1 00 0 0 0 -1 0 0 0 -1 4 00 0 0 0 0 -1 0 0 0 0 40 0 0 0 0 0 -1 0 0 0 -10 0 0 0 0 0 0 -1 0 0 00 0 0 0 0 0 0 0 -1 0 00 0 0 0 0 0 0 0 0 -1 00 0 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 Columns 12 through 220 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 00 -1 0 0 0 0 0 0 0 0 00 0 -1 0 0 0 0 0 0 0 00 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 04 -1 0 0 0 -1 0 0 0 0 0 -1 4 -1 0 0 0 -1 0 0 0 00 -1 4 -1 0 0 0 -1 0 0 00 0 -1 4 0 0 0 0 -1 0 00 0 0 0 4 -1 0 0 0 -1 0 -1 0 0 0 -1 4 -1 0 0 0 -10 -1 0 0 0 -1 4 -1 0 0 00 0 -1 0 0 0 -1 4 -1 0 00 0 0 -1 0 0 0 -1 4 0 00 0 0 0 -1 0 0 0 0 4 -10 0 0 0 0 -1 0 0 0 -1 40 0 0 0 0 0 -1 0 0 0 -10 0 0 0 0 0 0 -1 0 0 00 0 0 0 0 0 0 0 -1 0 0 Columns 23 through 250 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 4 -1 0 -1 4 -10 -1 4 在运行窗口输入 >>b=constant(5) Enter 常数项的输出结果b =[ 0.1371 0.2374 0.2742 0.2374 0.1371 0.2374 0.4112 0.4749 0.4112 0.2374 0.2742 0.4749 0.5483 0.4749 0.2742 0.2374 0.4112 0.4749 0.4112 0.2374 0.1371 0.2374 0.2742 0.2374 0.1371]T所以A*u=b 的五点差分格式为j i j i j i j i j i j i f h u u u u u ,,,,,,211114=-----+-+ (i,j=1,2……)实验二实验名称: 用Jacobi 迭代法和SOR 迭代法求解方程组 实验时间: 2012年12月13日 星期四 实验成绩: 一、实验目的:通过上机利用Matlab 数学软件采用Jacobi 迭代法和SOR 迭代法来求解方程组,求解过程中了解两种迭代方法的基本思想与迭代过程,并分析两种迭代方法的收敛性和实用用以及他们的异同点。
数学实验报告题目第一次实验题目一、 实验目的1.熟悉MATLAB 的矩阵初等运算;2.掌握求矩阵的秩、逆、化最简阶梯形的命令; 3.会用MABLAB 求解线性方程组二、 问题求解和程序设计流程1. 已知⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=351503224A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=112302431B ,在MATLAB 命令窗口中建立A 、B矩阵并对其举行以下操作:(1) 计算矩阵A 的行列式的值det()?A = (2) 分别计算下列各式:B A -2 、 B A *和B A *.、 1-AB 、 B A 1-、 2A 、 T A解:(1) 编写程序如下:A=[4 -2 2;-3 0 5;1 5 3];B=[1 3 4;-2 0 -3;2 -1 1]; a=det(A) 运行结果: a = -158(2)编写程序如下: C=2*A-BD=A*B E=A.*B F=A/BG=A\B H=A*A K=A'运行结果:C =7 -7 0 -4 0 13知识归纳整理求知若饥,虚心若愚。
线性代数实验报告0 11 5D =12 10 247 -14 -7-3 0 -8E =4 -6 86 0 -152 -5 3F =0 0 2.0000-2.7143 -8.0000 -8.14292.42863.0000 2.2857G =0.4873 0.4114 1.00000.3671 -0.4304 0-0.1076 0.2468 0H =24 2 4-7 31 9-8 13 36K =4 -3 1-2 0 52 5 32.在MATLAB中分别利用矩阵的初等变换及函数rank、函数inv求下列矩阵的秩:线性代数实验报告(1) ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=4211104532361A 求 Rank(A)=? (2) 3501120010201202B ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦求?1=-B 解:(1)编写程如下:format ratA=[1 -6 3 2;3 -5 4 0;-1 -11 2 4]; rref(A) 运行结果: ans =1 0 0 -8/5 0 1 0 0 0 0 1 6/5 由A 经初等变换后得到的行最简型可知:A 的秩为3。
线性代数实验报告一、实验目的线性代数是一门重要的数学基础课程,它在工程、科学、计算机等领域都有着广泛的应用。
本次实验的目的是通过实际操作和计算,加深对线性代数基本概念和方法的理解,提高运用线性代数知识解决实际问题的能力。
二、实验环境本次实验使用了软件名称软件进行计算和绘图。
三、实验内容(一)矩阵的运算1、矩阵的加法和减法给定两个矩阵 A 和 B,计算它们的和 A + B 以及差 A B。
观察运算结果,验证矩阵加法和减法的规则。
2、矩阵的乘法给定两个矩阵 C 和 D,其中 C 的列数等于 D 的行数,计算它们的乘积 CD。
分析乘法运算的结果,理解矩阵乘法的意义和性质。
(二)行列式的计算1、二阶和三阶行列式的计算手动计算二阶和三阶行列式的值,熟悉行列式的展开法则。
使用软件验证计算结果的正确性。
2、高阶行列式的计算选取一个四阶或更高阶的行列式,利用软件计算其值。
观察行列式的值与矩阵元素之间的关系。
(三)线性方程组的求解1、用高斯消元法求解线性方程组给定一个线性方程组,将其增广矩阵通过初等行变换化为行阶梯形矩阵。
求解方程组的解,并验证解的正确性。
2、用矩阵的逆求解线性方程组对于系数矩阵可逆的线性方程组,计算系数矩阵的逆矩阵。
通过逆矩阵求解方程组,并与高斯消元法的结果进行比较。
(四)向量组的线性相关性1、判断向量组的线性相关性给定一组向量,计算它们的线性组合是否为零向量。
根据计算结果判断向量组的线性相关性。
2、求向量组的极大线性无关组对于给定的向量组,通过初等行变换找出极大线性无关组。
(五)特征值和特征向量的计算1、计算矩阵的特征值和特征向量给定一个矩阵,计算其特征值和对应的特征向量。
验证特征值和特征向量的定义和性质。
2、利用特征值和特征向量进行矩阵对角化对于可对角化的矩阵,将其化为对角矩阵。
四、实验步骤(一)矩阵的运算1、首先在软件中输入矩阵 A 和 B 的元素值。
2、然后使用软件提供的矩阵加法和减法功能,计算 A + B 和 A B 的结果。
线性代数方程组的直接解法实验目的:线性方程组求解的直接法编程实现,实验内容:线性方程组求解的高斯消去法算法实现线性方程组求解的主元素消去法算法实现线性方程组求解的LU 分解得方法算法实现线性方程组求解追赶法算法实现实验比较:高斯消去、主元素消去、LU 分解都用实例 ⎪⎩⎪⎨⎧-=-+-=+-=++15.3181533126321321321x x x x x x x x x 这个进行比较。
知识理论解线性方程组的方法大致分为直接法和迭代法。
直接法是指假设计算过程中不产生舍入误差,经过有限次的运算可求的方程组精确解的方法。
方程(2-1)⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a x a ...... (22112)222212111212111 记为:AX=b ;一、高斯(Gauss )消元法(1).Gauss 消元法是最基本的一种方法。
先逐次消去变量,将方程组化成同解的上三角方程组。
消元过程:先逐次消去变量,将方程组化成同解的上三角方程组 基本思想回代过程:按方程的相反顺序求解三角形方程组,得到原方程组的解。
(2) Gauss 消去法的求解思路为:若先让第一个方程组保持不变,利用它消去其余方程组中的,使之变成一个关于变元的n-1阶方程组。
按照(1)中的思路继续运算得到更为低阶的方程组。
经过n-1步的消元后,得到一个三角方程。
利用求解公式回代得到线性方程组的解。
①消元过程:第一次消元,,0)1(11≠a设 )1(11)1(11a a l i i =记(i=1,2,3……,n ).将(2-1)中第i 个方程减去第一个方程乘以1i l (i=1,2,3……,n ),完成第一次消元,⎪⎩⎪⎨⎧=++=++=+++)2()2(2)2(2)2(2)2(22)2(22)1(1)1(12)1(121)1(11...... ... n n nn n n n n n b x a x a b x a x a b x a x a x a 得等价方程组 (2-2))2()2(:b x A =简记为其中:)1(11)1()2(j i ij ij a l a a -=;)1(11)1()2(b l b b i i i -=次消元后经过1-k :⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧=+++=+++=+++=+++++=++++++++++++++++++++... ...... ......... ......)()(1)(1,)()(1)(,11)(1,1)(,1)()(1)(1,)()2(2)2(21)2(1,2)2(22)2(22)1(1)1(11)1(1,1)1(12)1(121)1(11k n n k nn k k k n k k nk k k n k n k k k k k k k k k k kn k kn k k k k k k kk n n k k k k n n k k k k b x a x a x a b x a x a x a b x a x a x a b x a x a x a x a b x a x a x a x a x a 简记为:)1()1(++=k k b x A其中:)()()1(k kjik k ij k ija l a a -=+ )()()1(k k ik k i k ib l b b -=+),,1,(n k j i +=按上述方法完成n-1次消元后得到。
(1)估计5到20阶Hilbert 矩阵的∞范数条件数(2)设n n R A ⨯∈⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡------=111111111011001ΛΛO O MM M O OΛ,先随机地选取n R x ∈,并计算出x A b n =;然后再用列主元Gauss 消去法求解该方程组,假定计算解为∧x 。
试对n 从5到30估计计算解∧x 的精度,并且与真实相对误差作比较。
解(1)分析:利用for 使n 从5循环到20,利用()hilb 函数得到Hilbert 矩阵A ;先将算法2、5、1编制成通用的子程序,利用算法2、5、1编成的子程序)(B opt v =,对TAB -=求解,得到∞-1A的一个估计值v v =~;再利用inf),(A norm 得到∞A ;则条件数inf),(1A norm v A A K *==∞∞-。
另,矩阵A 的∞范数条件数可由inf),(A cond 直接算出,两者可进行比较。
程序为1 算法2、5、1编成的子程序)(B opt v =function v=opt(B)k=1;n=length(B); x=1、/n*ones(n,1);while k==1 w=B*x;v=sign(w); z=B'*v;if norm(z,inf)<=z'*x v=norm(w,1); k=0; elsex=zeros(n,1);[s,t]=max(abs(z)); x(t)=1; k=1; end end end2 问题(1)求解 ex2_1for n=5:20A=hilb(n);B=inv(A、');v=opt(B);K1=v*norm(A,inf);K2=cond(A,inf);disp(['n=',num2str(n)])disp(['估计条件数为',num2str(K1)])disp(['实际条件数为',num2str(K2)])end计算结果为n=5估计条件数为943656实际条件数为943656n=6估计条件数为29070279、0028实际条件数为29070279、0028n=7估计条件数为985194887、5079实际条件数为985194887、5079n=8估计条件数为33872789099、7717实际条件数为33872789099、7717n=9估计条件数为16、422实际条件数为16、422n=10估计条件数为35353368771750、67实际条件数为35353368771750、67n=11估计条件数为1232433965549344实际条件数为1232433965549344Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 2、547634e-17、> In ex2_1 at 3Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 2、547634e-17、> In cond at 47In ex2_1 at 6n=12估计条件数为3、9245e+16实际条件数为3、9245e+16Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 7、847381e-19、> In ex2_1 at 3Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 7、847381e-19、> In cond at 47In ex2_1 at 6n=13估计条件数为1、2727e+18实际条件数为1、2727e+18Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 2、246123e-18、> In ex2_1 at 3Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 2、246123e-18、> In cond at 47In ex2_1 at 6n=14估计条件数为4、8374e+17实际条件数为4、8374e+17Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 8、491876e-19、> In ex2_1 at 3Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 8、491876e-19、> In cond at 47In ex2_1 at 6n=15估计条件数为4、6331e+17实际条件数为5、234289848563619e+17Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 9、137489e-19、> In ex2_1 at 3Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 9、137489e-19、> In cond at 47In ex2_1 at 6n=16估计条件数为8、3166e+17实际条件数为8、3167e+17Warning: Matrix is close to singular or badly scaled、Results may be inaccurate、RCOND = 6、244518e-19、> In ex2_1 at 3Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 6、244518e-19、 > In cond at 47 In ex2_1 at 6 n=17估计条件数为1、43e+18 实际条件数为1、43e+18Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 4、693737e-19、 > In ex2_1 at 3Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 4、693737e-19、 > In cond at 47 In ex2_1 at 6 n=18估计条件数为2、5551e+18 实际条件数为2、8893e+18Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 4、264685e-19、 > In ex2_1 at 3Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 4、264685e-19、 > In cond at 47 In ex2_1 at 6 n=19估计条件数为2、411858563109357e+18 实际条件数为2、411858563109357e+18Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 1、351364e-19、 > In ex2_1 at 3Warning: Matrix is close to singular or badly scaled 、 Results may be inaccurate 、 RCOND = 1、351364e-19、 > In cond at 47 In ex2_1 at 6 n=20估计条件数为2、31633670586674e+18 实际条件数为6、37335273308473e+18结果分析随着矩阵阶数增加,估计值误差开始出现,20,17,16,15 n 时估计条件数与实际值存在误差;且条件数很大,Hilbert 矩阵为病态的。