最近数值分析有作业要求用Matlab实现Gauss消元法,记录在此。

问题如下:

1.列主元消去法

function []=Gauss_L(A,b)
%列主元求解线性方程组
ZG= [A b]; %增广矩阵
n=length(b);%维度
X=zeros (n, 1); %n维列向量
C=zeros (1, n+1);%n+1维行向量+初始化
for p=1:n-1[~,j]=max(abs(ZG(p:n, p))); %第p列的p到n元素绝对值中的最大值(Y为值,j为第几行)C=ZG(p,:); %C为ZG的第p行元素ZG(p,:)= ZG(j+p-1,:);ZG(j+p-1,:) =C; %交换第p行和最大的行for k=p+1:nm= ZG(k,p) / ZG(p,p);ZG(k,p:n+1) = ZG(k,p:n+1) - m*ZG(p,p:n+1);%消元end
end
b=ZG(1:n,n+1); A=ZG(1:n,1:n);%上三角化后的新增广矩阵[A b]
X(n)=b(n) / A(n,n);%计算最后一行的Xn
for q=n-1:-1:1%以-1为步长递增(实际是减少)X(q) = (b(q) - sum(A(q,q+1:n) * X(q+1:n))) / A (q,q) ;
end
for i=1:nvalue=X(i,1);fprintf('x%d=%.4f; ',i,value)
end
fprintf('\n')

2.全主元消去法

function []=Gauss_Q(A,b)
%全主元求解线性方程组
ZG= [A b]; %增广矩阵
n=length(b);%维度
X=zeros (n, 1); %n维列向量
x=(1:1:n)';%n个解的顺序
C=zeros (1, n+1);%n+1维行向量+初始化
for p=1:n-1max_v=max(max(ZG(p:n,p:n)));[i,j]=find(ZG(:,1:n)==max_v);%矩阵中最大元素的下标H=ZG(p,:); %H为ZG的第p行元素ZG(p,:)= ZG(i,:);ZG(i,:)=H; %交换第p行和最大的行L=ZG(:,p); %L为ZG的第p列元素ZG(:,p)= ZG(:,j);ZG(:,j)=L; %交换第p列和最大的列xx=x(j,1);x(j,1)=x(p,1);x(p,1)=xx;for k=p+1:nm= ZG(k,p) / ZG(p,p);ZG(k,p:n+1) = ZG(k,p:n+1) - m*ZG(p,p:n+1);%消元end
end
b=ZG(1:n,n+1); A=ZG(1:n,1:n);%上三角化后的新增广矩阵[A b]
X(n)=b(n) / A(n,n);%计算最后一行的Xn
for q=n-1:-1:1%以-1为步长递增(实际是减少)X(q) = (b(q) - sum(A(q,q+1:n) * X(q+1:n))) / A (q,q) ;
end
ans_=[x X];%乱序的x及其对应的值
for i=1:n[o,~]=find(ans_==i);value=ans_(o,2);fprintf('x%d=%.4f; ',i,value)
end
fprintf('\n')

输入题目中的测试数据:

>>A=[-0.002,2,2;1,0.78125,0;3.996,5.5625,4]
>>b=[0.4;1.3816;7.4178]

调用函数:

>> Gauss_L(A,b)
x1=1.9273; x2=-0.6985; x3=0.9004;
>> Gauss_Q(A,b)
x1=1.9273; x2=-0.6985; x3=0.9004; 

另附上截图

Gauss消元法求解线性方程组的Matlab实现(列主元、全主元)相关推荐

  1. 列主元Gauss消元法求解线性方程组的MATLAB实现

    目录 顺序高斯消去法求解线性方程组的MATLAB实现 列主元Gauss消元法求解线性方程组的MATLAB实现 一.简介 MATLAB实现列主元Gauss消去法求解线性方程组,并与不列主元的Gauss消 ...

  2. Gauss 消元法求解线性方程组

    Gauss 消元法求解线性方程组 内容 消元法是将方程组中的一方程的未知数用含有另一未知数的代数式表示,并将其代入到另一方程中,这就消去了一未知数,得到一解:或将方程组中的一方程倍乘某个常数加到另外一 ...

  3. matlab用高斯消元法解线性方程组,用matlab利用高斯消元法求解线性方程组

    用matlab利用高斯消元法求解线性方程组Tag内容描述: 1.用C语言编写软件完成以下任务:请用高斯列主元消元法解下列线性方程组:方法说明(以4阶为例):第1步消元在增广矩阵(A,b)第一列中找到绝 ...

  4. 【Java例题】4.3 3. 使用Gauss消元法求解n元一次方程组的根,

    3. 使用Gauss消元法求解n元一次方程组的根, 举例,三元一次方程组: 0.729x1+0.81x2+0.9x3=0.6867 x1+x2+x3=0.8338 1.331x1+1.21x2+1.1 ...

  5. 数值计算大作业:Jacobi与Gauss -Seidel迭代求解线性方程组(Matlab实现)

    作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业. 我把Jacobi与Gauss -Seidel迭代求解线性方程组的数值计算作业在MATLAB中编程实现.具体的程序详细标注后放在文 ...

  6. matlab约当消去法,Gauss消去法解线性方程组(Matlab)

    clear;clc; % Gauss消去法解线性方程组 A=[3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2; 2 -1 7 5 -1 6 11; -1 1 3 2 7 -1 - ...

  7. 松弛迭代法matlab,逐次超松弛迭代法求解线性方程组的MATLAB实现

    function [X_reality,n_reality] = SOR(A,b,X_start,w,n_limit,tolerance) %% % A为迭代的系数矩阵 % b为方程组右边的常数项(列 ...

  8. 高斯列主元消元法求解线性方程组

    一.高斯消去法的基本思想     例1. 解方程组:                  解 方程组矩阵形式为: AX=b ,其中:               第一步,消元过程:对增广矩阵进行消元 即 ...

  9. 雅可比(Jacobi)及高斯-塞德尔(Gauss_Seidel)迭代法求解线性方程组的matlab现实

    雅可比迭代法的实现代码: function X=Jacobi(A,B,P,delta,max1) %Input -A is a X*N nosingular matrix % -B is a N*1 ...

最新文章

  1. 网管心得:优化网络性能给局域网提速[好文章]
  2. android 4.4 下拉菜单 透明,4.2状态栏,下拉,全局透明教程
  3. 如何检测支付宝接口中notify_url.php有没有返回,微信小程序支付成功,但是notify_url接收不到回调如何排查此问题?...
  4. seo自动工具_【SEO工具】搭建一个网站需要用到哪些SEO工具?
  5. iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)
  6. .NET导入导出Excel
  7. myeclipse自带tomcat
  8. Node.js学习心得
  9. salt 服务启动失败
  10. 30个灵感来自大自然的国外网页设计作品欣赏
  11. MySQL几种常见的数据类型
  12. 图解物联网---物联网基础知识
  13. 关于TUN/TAP网卡二三事以及物理网卡Ring buffer
  14. 基于java的超市进销存财务管理系统源码【包调试】
  15. 一枚菜鸟前端工程师月度工作总结
  16. Chrome设置--disable-web-security解决跨域问题
  17. Matlab矩阵和向量中的常用函数
  18. dvi和hdmi 知乎_HDMI和DVI有什么区别? 哪个更好?
  19. idea和eclipse哪个更好用?为什么呢?
  20. 改springboot项目遇到的@Restcontroller返回网页问题

热门文章

  1. 视频录制30帧还是60帧清晰?
  2. 计算机三级数据库安全管理(一)、授权语句、WITH GRANT OPTION、guest、用户定义的数据库角色、Oracle安全管理、收权语句、安全管理、数据库用户、角色、用户分类、GRANT
  3. 孙叫兽VUE学习笔记总结(值得收藏),很全很详细!!!
  4. springboot项目实例
  5. atom为什么可以运行android,Intel:22nm Atom可运行Android操作系统
  6. Android 获取ROM版本号
  7. python自动发送邮件脚本
  8. 正式对标苹果,小米 12 系列三箭齐发,MIUI 欲成为跨设备操作系统!
  9. 事业单位,你们为啥不能周末上班周一周二休息?
  10. PHP 打印支票,PHP_支票打印的日期大写问题Access2007,      财务人 - phpStudy