高斯列主元消元法解方程组 下载本文

内容发布更新时间 : 2024/5/25 13:13:20星期一 下面是文章的全部内容请认真阅读。

实验一、高斯列主元消元法解方程组 题目: 1,12121314,,,,131415,,,1n1n?11n?2,求解:HnX=bn,Hn=13,1n,1n?11n?212n?1????2?,bn??3?,n=4;6;50;100;…… ?????n???**?8求解精度为10,并验证:bn?HnX及bn?HnX/x随着n的逐渐增大,你会发现什么? 一、实验目的: 1、学习使用matlab编写数值计算程序。 2、了解高斯列主元消元法解方程组原理和编程方法。 3、根据高斯列主元消元法解方程组原理编写matlab程序,并运行得出结果。 二、实验原理: 第一步:选a i1,1?maxai1,交换第1行和第i1行,1?i?n然后进行消元,得(1)?a11?[A(2),b(2)]??????(1))a12?a1(1n(2)(2)a22?a2n???(2)(2)anann2a1(,1n)?1?(2)?an,n?1???(2)?an,n?1??2) 第二步:选ai(22,)2?maxai(2,交换第2行和第i2行,2?i?n然后进行消元,得[A(3),b(3)].(k) 第k步:选ai(kk,)k?maxakn,交换第k行和第ik行,k?i?n然后进行第k次消元. 如此至多经过n-1步,就得到与之同解的上三角形方程组的增广矩阵,再用回代过程即可得方程组的解. 温州大学计算机科学与工程学院 计算方法上机实验报告

三、实验内容与步骤: 1、实验内容:依照实验原理编写高斯列主元消元法解方程组的程序。 2、实验步骤:首先,在电脑上安装matlab,然后,启动matlab,新建一个gauss.m文件。 实验程序如下: 程序代码 function x = gauss(A,b) [n,n] = size(A); x = zeros(n,1); Aug = [A,b]; for k = 1:n-1 [piv,r]=max(abs(Aug(k:n,k))); r = r + k - 1; if r>k temp=Aug(k,:); Aug(k,:)=Aug(r,:); Aug(r,:)=temp; end if Aug(k,k)==0, error('对角元出现0'), end 程序代码说明 % use the function。 % 求矩阵A的大小。 % 初始化x为0。 % 增广矩阵 % for循环 % 找列主元所在子矩阵的行r % 列主元所在大矩阵的行 % 矩阵为0,报错 物理与电子信息工程学院 计算机科学与技术专业 陈波 20091121 选修

温州大学计算机科学与工程学院 计算方法上机实验报告

for p = k+1:n Aug(p,:)=Aug(p,:)-Aug(k,:)* Aug(p,k)/Aug(k,k); end end A = Aug(:,1:n); b = Aug(:,n+1); x(n) = b(n)/A(n,n); for k = n-1:-1:1 x(k)=b(k); for p=n:-1:k+1 x(k) = x(k)-A(k,p)*x(p); end x(k)=x(k)/A(k,k); end % 把增广矩阵消元成为上三角 % 解上三角方程组 % 求得x值 四、实验数据及结果: 1、当n为4时,在command窗口输入如下代码: format long n=4; for a=1:n; for c=1:n; A(a,c)=1/(a+c-1); end end b=[1:n]'; x=gauss(A,b); fprintf('.8f ',x) 物理与电子信息工程学院 计算机科学与技术专业 陈波 20091121 选修