已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验题目5 相对Gauss列主元消去法摘要由一般线性方程组在使用Gauss消去法求解时,从求解过程中可以清楚地看到,若,必须施以行交换的手续,才能使消去过程继续下去。有时既使,但其绝对值很小,由于舍入误差的影响,消去过程也会出现不稳定现象。因此,为使这种不稳定现象发生的可能性减至最小,在施行消去过程时每一步都要选主元素,即要寻找行,使并将第行与第行交换,以使的当前值(即的数值)远大于0。这种列主元消去法的主要步骤如下:1消元过程 对,做 1 选主元,记 若,说明方程组系数矩阵奇异,则停止计算,否则进行2。 2 交换(增广矩阵)的两行元素 3 计算2回代过程 对,计算前言利用Gauss列主元消去法、显式相对Gauss列主元消去法、隐式相对Gauss列主元消去法求解线性方程组 Ax=b程序设计流程是否否是开 始输入(增广矩阵)交换中两行输出结 束问题1(1) 程序运行如下:x = GaussSysSolve(Mat1_1,b1_1)x = 1.0000 1.0000 1.0000 1.0000x = GaussExpSysSolve(Mat1_1,b1_1)x = 1.0000 1.0000 1.0000 1.0000x = GaussIneSysSolve(Mat1_1,b1_1)x = 1.0000 1.0000 1.0000 1.0000(2) 程序运行如下:x = GaussSysSolve(Mat1_2,b1_2)x = 1.0000 1.0000 1.0000 1.0000x = GaussExpSysSolve(Mat1_2,b1_2)x = 1.0000 1.0000 1.0000 1.0000x = GaussIneSysSolve(Mat1_2,b1_2)x = 1.0000 1.0000 1.0000 1.0000(3) 程序运行如下:x = GaussSysSolve(Mat1_3,b1_3)x = 1.0000 1.0000 1.0000 1.0000x = GaussExpSysSolve(Mat1_3,b1_3)x = 1.0000 1.0000 1.0000 1.0000x = GaussIneSysSolve(Mat1_3,b1_3)x = 1.0000 1.0000 1.0000 1.0000(4) 程序运行如下:x = GaussSysSolve(Mat1_4,b1_4)x = 1.0000 1.0000 1.0000 1.0000x = GaussExpSysSolve(Mat1_4,b1_4)x = 1.0000 1.0000 1.0000 1.0000x = GaussIneSysSolve(Mat1_4,b1_4)x = 1.0000 1.0000 1.0000 1.0000问题2(1) 程序运行如下:= GaussSysSolve(Mat2_1,b2_1)x = 1.0915 0.2832 1.1463 -0.1008x = GaussExpSysSolve(Mat2_1,b2_1)x = 1.0915 0.2832 1.1463 -0.1008x = GaussIneSysSolve(Mat2_1,b2_1)x = 1.0915 0.2832 1.1463 -0.1008(2) 程序运行如下:x = GaussSysSolve(Mat2_2,b2_2)x = 0.5162 0.4152 0.1100 1.0365x = GaussExpSysSolve(Mat2_2,b2_2)x = 0.5162 0.4152 0.1100 1.0365x = GaussIneSysSolve(Mat2_2,b2_2)x = 0.5162 0.4152 0.1100 1.0365(3) 程序运行如下:x = GaussSysSolve(Mat2_3,b2_3)x = 1.0000 1.0000 1.0000x = GaussExpSysSolve(Mat2_3,b2_3)x = 1 1 1x = GaussIneSysSolve(Mat2_3,b2_3)x = 1.0000 1.0000 1.0000(4) 程序运行如下:x = GaussSysSolve(Mat2_4,b2_4)x = 1 1 1x = GaussExpSysSolve(Mat2_4,b2_4)x = 1.0000 1.0000 1.0000x = GaussIneSysSolve(Mat2_4,b2_4)x = 1 1 1使用的函数function x = GaussSysSolve(A, b)% GaussSysSolve 用Gauss消去法解线性方程组 Ax = b% Synopsis: x = GaussSysSolve(A, b)% Input: A = 系数矩阵% b = 方程组右端% Output: x = 线性系统的解向量 m,n = size(A); b = b(:); %将b变为列向量 if m = n %A必须为方阵 error(Argument matrix A must be square!); elseif m = length(b) %b的长度应与A维度相同 error(The dimentions of A and b do not agree!); end Ab = A b; %构造增广矩阵 for i = 1:n amax, imax = max(Ab(i:n, i); %选择主元 if amax = 0 %主元为0,矩阵奇异 error(Tne Linear System is singular!); elseif i = imax+i-1 %主元行数与i不同时,交换这两行 Ab(i imax+i-1,:) = Ab(imax+i-1 i, :); end for j = i+1:n %向下消元 Ab(j,:) = Ab(j,:) - Ab(i,:) * Ab(j,i)/amax; end end x = zeros(n,1); x(n) = Ab(n,n+1)/Ab(n,n); for k = n-1:-1:1 %计算x x(k) = ( Ab(k,n+1) - Ab(k,k+1:n)*x(k+1:n) ) / Ab(k,k); endfunction x = GaussExpSysSolve(A, b)% GaussExpSysSolve 用显式Gauss列主元消去法解线性方程组 Ax = b% Synopsis: x = GaussExpSysSolve(A, b)% Input: A = 系数矩阵% b = 方程组右端% Output: x = 线性系统的解向量 m,n = size(A); b = b(:); %将b变为列向量 if m = n %A必须为方阵 error(Argument matrix A must be square!); elseif m = length(b) %b的长度应与A维度相同 error(The dimentions of A and b do not agree!); end Ab = A b; %构造增广矩阵 for i = 1:n %显式平衡技术 s = max(Ab(i,1:n); Ab(i,:) = Ab(i,:)/s; end for i = 1:n amax, imax = max(Ab(i:n, i); %选择主元 if amax = 0 %主元为0,矩阵奇异 error(Tne Linear System is singular!); elseif i = imax+i-1 %主元行数与i不同时,交换这两行 Ab(i imax+i-1,:) = Ab(imax+i-1 i, :); end for j = i+1:n %向下消元 Ab(j,:) = Ab(j,:) - Ab(i,:) * Ab(j,i)/amax; end end x = zeros(n,1); x(n) = Ab(n,n+1)/Ab(n,n); for k = n-1:-1:1 %计算x x(k) = ( Ab(k,n+1) - Ab(k,k+1:n)*x(k+1:n) ) / Ab(k,k); endfunction x,det = GaussIneSysSolve(A, b)% GaussIneSysSolve 用隐式Gauss列主元消去法解线性方程组 Ax = b% Synopsis: x = GaussIneSysSolve(A, b)% Input: A = 系数矩阵% b = 方程组右端% Output: x = 线性系统的解向量% det = 系数矩阵行列式的值 m,n = size(A); b = b(:); %将b变为列向量 if m = n %A必须为方阵 error(Argument matrix A must be square!); elseif m = length(b) %b的长度应与A维度相同 error(The dimentions of A and b do not agree!); end Ab = A b; %构造增广矩阵 det = 1; %初始化系数矩阵行列式为1 for i = 1:n %隐式平衡技术 s(i) = max(abs(Ab(i,1:n); if s(i) = 0 error(Tne Linear System is singular!); %系数矩阵某行全为0时,矩阵奇异 end end s = s(:); for k = 1:n-1 c, kmax = max(abs(Ab(k:n, k)./s(k:n); %选择主元 if c = 0 %主元为0,矩阵奇异 det = 0; error(Tne Linear System is singular! det(A) = 0); elseif k = kmax+k-1 %主元行数与k不同时,交换这两行 s(k kmax+k-1) = s(kmax+k-1 k); Ab(k kmax+k-1,:) = Ab(kmax+k-1 k, :); det = -det; end for j = k+1:n %向下消元 Ab(j,:) = Ab(j,:) - Ab(k,:) * Ab(j,k)/Ab(k,k); end det = Ab(k,k)*det; end if Ab(n,n) = 0 det = 0; error(Tne Linear System is singular!); %最后一行唯一非0元素为0时,矩阵奇异 end x = zeros(n,1); x(n) = Ab(n,n+1)/Ab(n,n); for k = n-1:-1:1 %计算x x(k) = ( Ab(k,n+1) - Ab(k,k+1:n)*x(k+1:n) ) / Ab(k,k); end det = Ab(n,n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国蓝宝石用CMP抛光液行业市场占有率及投资前景预测分析报告
- 湘教版小学三年级下册音乐教案
- 全国河大版(三起)小学信息技术第三册第2单元第6课《统计交通数据-制作表格》教学设计
- 中国超硬切削刀具行业市场规模及投资前景预测分析报告
- 《艾青诗选》名著导读教学设计2023-2024学年统编版语文九年级上册
- 中国轨道翻车机行业市场前景预测及投资价值评估分析报告
- 中国连杆式干油泵行业市场占有率及投资前景预测分析报告
- 浙美版一年级下册13 机器人来了教案
- 中国铝制T型槽挤压件行业市场前景预测及投资价值评估分析报告
- 中国铝铁行业市场前景预测及投资价值评估分析报告
- 江苏省盐城市大丰区实验初中教育集团联考2024-2025学年九年级上学期10月期中物理试题
- GB/T 3487-2024乘用车轮辋规格系列
- 低层模块化生态钢结构mehouse介绍
- 同心共育静待花开 课件高一下学期期中考试分析家长会
- 总工会招聘考试考前必做500道
- 2024年秋季新外研版三年级上册英语课件 Unit 4 第2课时 (Start up)
- 房产代持协议范本
- 田径运动会各种记录表格
- 二手人防车位使用权转让协议书
- Python数据分析与可视化(微课版) 课件 ch05 数据清理案例实战
- 全面质量管理的七种统计分析方法
评论
0/150
提交评论