用Matlab学习线性代数行列式.doc

用Matlab学习线性代数行列式.doc

ID:51087349

大小:35.02 KB

页数:4页

时间:2020-03-09

用Matlab学习线性代数行列式.doc_第1页
用Matlab学习线性代数行列式.doc_第2页
用Matlab学习线性代数行列式.doc_第3页
用Matlab学习线性代数行列式.doc_第4页
资源描述:

《用Matlab学习线性代数行列式.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用Matlab学习线性代数__行列式实验目的理解行列式的概念、行列式的性质与计算Matlab函数det实验内容前面的四个练习使用整数矩阵,并演示一些本章讨论的行列式的性质。最后两个练习演示我们使用浮点运算计算行列式时出现的不同。理论上将,行列式的值应告诉我们矩阵是否是奇异的。然而,如果矩阵是奇异的,且计算其行列式采用有限位精度运算,那么由于舍入误差,计算出的行列式的值也许不是零。一个计算得到的行列式的值很接近零,并不能说明矩阵是奇异的甚至是接近奇异的。此外,一个接近奇异的矩阵,它的行列式值也可能不接近零。1.用如下方法随机生成整数元

2、素的5阶方阵:A=round(10*rand(5))和B=round(20*rand(5))-10用Matlab计算下列每对数。在每种情况下比较第一个是否等于第二个。(1)det(A);det(AT)(2)det(A+B);det(A)+det(B)(3)det(AB);det(A)det(B)(4)det(ATBT);det(AT)det(BT)(5)det(A-1);1/det(A)(6)det(AB-1);det(A)/det(B)2.n阶的幻方阵是否奇异?用Matlab计算n=3、4、5、…、10时的det(magic(n)

3、)。看起来发生了什么?验证当n=24和25时,结论是否仍然成立。3.令A=round(10*rand(6))。下列每种情形下,用Matlab计算给出的另一个矩阵。说明第二个矩阵和矩阵A之间的关系,并计算两个矩阵的行列式。这些行列式之间有什么关联?(1)B=A;B(2,:)=A(1,:);B(1,:)=A(2,:);(2)C=A;C(3,:)=4*A(3,:);(3)D=A;D(5,:)=A(5,:)+2*A(4,:)4.我们可以通过如下方法随机生成一个全部元素为0和1的6阶方阵A:A=round(rand(6))(1)这些0-1矩阵

4、奇异的百分比是多少?可以用Matlab命令估计这个百分比:y=zeros(1,100);然后生成100个测试矩阵,并且若第j个矩阵是奇异的,令y(j)=1,否则为0。这可以通过Matlab中的for循环容易地实现。循环如下:Forj=1:100A=round(rand(6));Y(j)=(det(A)==0);End为了确定生成了多少奇异矩阵,使用Matlab命令sum(y)。生成的矩阵中,奇异矩阵的百分比是多少?(2)对任意正整数n,可以通过下面命令随机生成元素为从0—n的整数的矩阵A:A=floor((n+1)*rand(6))

5、若n=3,采用这种方法生成的矩阵中奇异矩阵的百分比是多少?n=6呢?n=10呢?我们可以采用Matlab对这些问题进行估计。对每种情况,生成100个矩阵,并确定其汇总多少矩阵是奇异的。5.若一个矩阵对舍入误差敏感,则计算得到的行列式将会与真实值有极大的不同。作为这个问题的例子,令U=round(100*rand(10));U=triu(U,1)+0.1*eye(10)理论上,det(U)=det(UT)=10-10且det(UUT)=det(U)*det(UT)=10-20用Matlab计算det(U)、det(U’)和det(U*

6、U’)。计算结果和理论值是否相同?6.用Matlab构造矩阵A:A=vander(1:6);A=A-diag(sum(A’))(1)由构造,A的每一行所有元素的和均为零。为检测结论,令x=ones(6,1),并用Matlab计算乘积Ax。矩阵A应为奇异的。为什么?试说明理由。用Matlab函数det和inv计算det(A)和A-1。哪一个Matlab函数作为奇异的指示器更合理?(2)用Matlab计算det(AT)。计算得到的det(A)和det(AT)是否相等?另一种检测矩阵是否奇异的方法是计算它的行最简形。用Matlab计算A和

7、AT的行最简形。(3)为看清问题在哪里,知道利用Matlab如何计算是很有帮助的。Matlab计算行列式的方法是:首先将矩阵进行LU分解,矩阵L的行列式为±1,正负号依赖于在计算过程中进行了奇数或偶数次行交换。A的行列式的计算值是U的对角线元素的乘积乘以det(L)=±1得到。特别地,如果初始矩阵的元素为整数,则行列式的准确值应为整数。此时Matlab将把它计算的结果舍入到最近的整数。为看到对初始矩阵做了什么,使用下列命令计算,并显示因子U。Formatshorte[L,U]=lu(A);U在精确算术运算时U应为奇异的。计算得到的U

8、是奇异的吗?如果不是,哪里有问题?使用下列命令观察计算d=det(A)的余下过程。Formatshortd=prod(diag(U))d=round(d)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。