网络数值线性代数_第1页
网络数值线性代数_第2页
网络数值线性代数_第3页
网络数值线性代数_第4页
全文预览已结束

下载本文档

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

文档简介

1、实验四 高斯消去法4.1 实验目的 掌握高斯消去法的基本思路和迭代步骤; 培养编程与上机调试能力。4.2 算法描述4.2.1 高斯消去法基本思路。设有方程组,设是可逆矩阵。高斯消去法的基本思想就是僵局真的初等行变换作用于方程组的增广矩阵,将其中的变换成一个上三角矩阵,然后求解这个三角形方程组。4.2.2 列主元高斯消去法计算步骤 将方程组用增广矩阵表示。步骤1:消元过程,对(1) 选主元,找使得(2) 如果,则矩阵奇异,程序结束;否则执行(3)。(3) 如果,则交换第行与第行对应元素位置,。(4) 消元,对,计算对,计算步骤 2:回代过程:(1) 若则矩阵奇异,程序结束;否则执行(2)。(2)

2、 对,计算4.3 实验内容解方程组function X=gaussian(A,B,n)C=A B;for i=2:n r,c=max(abs(C(i-1:n,i-1); VEC=C(i-1,:);C(i-1,:)=C(c+i-2,:);C(c+i-2,:)=VEC; if C(i-1,i-1)=0 return end for k=(i-1):(n-1) C(k+1,:)=C(i-1,:)*-C(k+1,i-1)/C(i-1,i-1)+C(k+1,:); endendD=C;B2=C(:,n+1);D(:,n+1)=;X=zeros(1,n);for i=1:n X(n+1-i)=(B2(n+

3、1-i)-D(n+1-i,:)*X')/C(n+1-i,n+1-i); end=运行:>>A=10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8;>>B=6,25,-11,15'>>gaussian(A,B,4)ans = 1.0000 2.0000 -1.0000 1.0000  14回答者: 雪function RA,RB,n,X=gaus(A,b)B=A b; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica>0,disp(&#

4、39;请注意:因为RA=RB,所以此方程组无解.')returnendif RA=RB if RA=ndisp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1for k=p+1:n m= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);endend b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*

5、X(q+1:n)/A(q,q); endelse disp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')endend例3.3.2 用高斯消元法和MATLAB程序求解下面的非齐次线性方程组,并且用逆矩阵解方程组的方法验证.解 在MATLAB工作窗口输入程序>> A=1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1; b=1;0; -1;-1; RA,RB,n,X =gaus (A,b)运行后输出结果请注意:因为RA=RB=n,所以此方程组有唯一解.X = 0 -0.5000 0.5000 0RA = 4RB = 4n

6、 = 4LU分解法.4.2 直接LU分解法及其MATLAB程序将矩阵进行直接LU分解的MATLAB程序function hl=zhjLU(A)n n =size(A); RA=rank(A); if RA=ndisp('请注意:因为A的n阶行列式hl等于零,所以A不能进行LU分解.A的秩RA如下:'), RA,hl=det(A);returnendif RA=n for p=1:nh(p)=det(A(1:p, 1:p);endhl=h(1:n);for i=1:nif h(1,i)=0disp('请注意:因为A的r阶主子式等于零,所以A不能进行LU分解.A的秩RA和各

7、阶顺序主子式值hl依次如下:'), hl;RAreturnendend if h(1,i)=0 disp('请注意:因为A的各阶主子式都不等于零,所以A能进行LU分解.A的秩RA和各阶顺序主子式值hl依次如下:')for j=1:nU(1,j)=A(1,j);endfor k=2:nfor i=2:n for j=2:n L(1,1)=1;L(i,i)=1; if i>jL(1,1)=1;L(2,1)=A(2,1)/U(1,1); L(i,1)=A(i,1)/U(1,1);L(i,k)=(A(i,k)- L(i,1:k-1)*U(1:k-1,k)/U(k,k);elseU(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j);endendendendhl;RA,U,Lendend例3.4.3 用矩阵进行直接LU分解的MATLAB程序分解矩阵.解 在MATLAB工作窗口输入程序>> A=1 0 2 0;0 1 0 1;1 2 4 3;0 1 0 3; hl=zhjLU(A)运行后输出结果L = 1 0 0 0 0 1 0 0 1

温馨提示

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

评论

0/150

提交评论