计算方法B_列主元高斯消去

%列主元高斯消去法
%by wu penghao
A=rand(10,10);
b=rand(10,1);
x_c=A\b; %真实值
x=zeros(10,1);
n=length(A);
%消去过程
for k=1:1:n-1
   max=abs(A(k,k));
   m=k;
   for i=k:1:n
       if max<abs(A(i,k))
           max = abs(A(i,k));%每列的最大值
           m=i;%每一列最大值索引
       end
   end
   A([k,m],:)=A([m,k],:);%交换行
   b([k,m])=b([m,k]);%交换系数
   for i= k+1:1:n
       a=A(i,k)/A(k,k);
       b(i)=b(i)-a*b(k);
       for j=k:1:n
           A(i,j)=A(i,j)-a*A(k,j);
       end
   end
end
%回代
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
    for j=k+1:1:n
    b(k)=b(k)-A(k,j)*x(j);
    end
    x(k)=b(k)/A(k,k);
end

  

原文地址:https://www.cnblogs.com/wupenghao95/p/9698490.html

时间: 2024-11-08 23:39:35

计算方法B_列主元高斯消去的相关文章

计算方法B_高斯消去

%计算方法No.1 %20180916 by wupenghao %高斯消去 %!!!循环中的步长一定要设置准确,+1和-1等,一定要注意!!! A=rand(10,10); b=rand(10,1); x=A\b; %消元 cof=zeros(10,1); root=zeros(10,1); for k=1:1:9 for i=k+1:length(A) cof(i)=A(i,k)/A(k,k); b(i)=b(k)*(-cof(i))+b(i); for j=k:length(A) A(i,

高斯消去、追赶法 matlab

1. 分别用Gauss消去法.列主元Gauss消去法.三角分解方法求解方程组 程序: (1)Guess消去法: function x=GaussXQByOrder(A,b) %Gauss消去法 N = size(A); n = N(1); x = zeros(n,1); for i=1:(n-1) for j=(i+1):n if(A(i,i)==0) disp('对角元不能为0'); return; end m = A(j,i)/A(i,i); A(j,i:n)=A(j,i:n)-m*A(i,

令矩阵每个元素四舍五入,使顺序高斯与列主元高斯结果不同

实现思路就是在每次循环中对矩阵进行四舍五入处理 实现代码如下 # 四舍五入 def matrixRound(M, decPts=5): # 对行循环 for index in range(M.shape[0]): # 对列循环 for _index in range(M.shape[1]): M[index, _index] = round(M[index, _index], decPts) return M 原文地址:https://www.cnblogs.com/muty/p/1005759

在实现了高斯消除

高斯消去的实现中使用的增广矩阵成上三角矩阵.然后从下迭代值. 详细是这里. 比方说,有一个线性方程组 然后.出来弄成一个2*2的矩阵,然后再把方程组中等号右边的常数项加进来.成为一个2*3的矩阵 这就是一个增广矩阵了. 接下来变成一个上三角矩阵, 从矩阵的第一行開始,一直到最后一行. 例如说如今面临的是第i行, 那么在i到最后一行,找到第i列数的绝对值最大的那行跟第i行换一个位置,这样交换是有优点的,就是当面对0的情况.哈哈.想一想 然后就用第i行開始把从i+1到最后一行的全部行进行消元操作.消

面试高级算法梳理笔记

面试高级算法梳理笔记 1.1 说明 本篇为<挑战程序设计竞赛(第2版)>读书笔记系列,旨在: 梳理算法逻辑 探索优化思路 深入代码细节 1.2 目录 原文首发于个人博客Jennica.Space,按算法难度划分为初中高三个级别,详细目录及链接如下: 初级篇 穷竭搜索 贪心 动态规划 数据结构 图论 数论 中级篇 二分搜索 常用技巧 数据结构(二) 动态规划(二) 网络流 计算几何 高级篇 数论(二) 博弈论 图论(二) 常用技巧(二) 智慧搜索 分治 字符串 1.3 题解 配套习题及详解同步发

三次样条插值

条件(1)输入$x_{i},y_{i}=f(x_{i}),0\leq i\leq n$(2)要求拟合的曲线$S(x)$满足:对于任意的$1\leq i\leq n-1$,在$x_{i}$处一阶二阶导数连续,$S(x)$ 也连续,且$S^{'}(x_{0})=f^{'}(x_{0})$,$S^{'}(x_{n})=f^{'}(x_{n})$ 求解过程设$S_{x_{j}}^{''}=M_{j}$.对于区间$[x_{j},x_{j+1}]$,$S(x)$是$[x_{j},x_{j+1}]$上的线性函

【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

               本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对

线性方程组 II

当方程组的未知数个数不等于方程个数时,用高斯消元法得到的是行阶梯型矩阵.此时每个主元所在的列可作为方程组的基本列,基本列的个数为矩阵的秩.选择的列可以不同,但个数唯一.即:当用高斯约当法消减时,可看出非基本列是基本列的线性组合:事实上对线性方程组或者说矩阵的理解有这么几个角度:  1.从行的方向来看 每一行的方程就代表一条直线,解方程组就是找到这些直线的交点. 2.从列的方向来看 可看作列的线性组合,第一列对应第一个未知数,以此类推.方程组的解就是找到这样一组系数,使得矩阵每一列乘以对应未知数系

高斯模糊浅析

所谓高斯模糊,就是指一个图像与二维高斯分布的概率密度函数做卷积.它的效果如下: 是不是有点像变成了近视眼的感觉?没错,高斯模糊常常用来模拟人眼中的物体变远.变快的效果.在照片处理中,我们常常将背景施以高斯模糊,使得背景仿佛变远了,从而突出前景的人物或物体.一些所谓“先拍照,后对焦”的技术利用的也是高斯模糊这个效果.若想弄出视点飞快移动的效果,也可以对背景使用高斯模糊.在一些CG动画中,视点移动得越快,背景将被施以越重的高斯模糊,以模拟人的视觉特点.事实上,在早期对人眼的视觉特性研究中,就是使用高