Gauss消元法(特解与通解)
这里给出了加强版本的高斯消元算法的实现,当未知数的个数多于方程的数量时,则将方程的解表示为其余某些未知数与常数的线性组合,若可确定解,则给出常数解。
基本思路是:
(1)(1)找到第i列不是0的元素,将它交换到第i行,然后将第i+1到n行的中的第i个元素全部消为0。经过n-1次循环,最后得到一个上三角矩阵。
(2)(2)从最后一行开始进行展开,将下一行未知数解出,然后带入上一行,解出新的未知数的解的多项式,然后不停迭代。
(3)(3)当方程的解只有特解时,得到的是只关于常数的一系列多项式。通解是关于后n−R(A)n-R(A)个未知数的线性组合;
def gauss(a):ep = 0.1**(15)n = len(a)num = len(a[0])array = []for i in range(0,n):p = -1for k in range(i,n):if abs(a[k][i])>ep:p=k;breakif p==-1:continuea[i],a[p] = a[p],a[i]if a[i]!=[0]*num:array.append(a[i])x = a[i][i]for j in range(i+1,n):if abs(a[j][i])<ep:continuek = -a[j][i]/(x)for m in range(i,num):a[j][m]+= k*a[i][m]a = array;n = len(a);num = len(a[0])for index in range(0,num-1):if a[-1][index]!=0:breaklast = deque()for k in range(0,num-index-2):last.append([1 if m==k else 0 for m in range(num-index-2)]+[0])for i in range(n-1,-1,-1):sum_1 = [0]*(num-index-2)constant = 0for item in zip(a[i][i+1:num-1],last):constant += item[0]*item[1][-1]#compute the constantfor ind in range(len(item[1])-1):sum_1[ind] -= item[0]*item[1][ind]/a[i][i]sum_1.append((a[i][-1]-constant)/a[i][i])last.appendleft(sum_1)print(a,last)
#gauss([[1,1,2,3,3],[2,1,2,4,5],[1,1,4,5,3],[1,3,7,4,6]])
Gauss消元法(特解与通解)相关推荐
- 【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 ...
- Gauss 消元法求解线性方程组
Gauss 消元法求解线性方程组 内容 消元法是将方程组中的一方程的未知数用含有另一未知数的代数式表示,并将其代入到另一方程中,这就消去了一未知数,得到一解:或将方程组中的一方程倍乘某个常数加到另外一 ...
- 负基础也能搞懂之“Gauss消元法的MATLAB实现”
目录 前言 问题描述 可能需要的知识 MATLAB代码.注释与分析 分析说明 消元过程 回代过程 MATLAB代码 输入命令 进阶程序 后记 前言 我这个人是比较懒的,不太愿意写blog.但是有一天看 ...
- Gauss 消元法矩阵LU分解
(13)Gauss 消元法矩阵LU分解
- 列主元Gauss消元法求解线性方程组的MATLAB实现
目录 顺序高斯消去法求解线性方程组的MATLAB实现 列主元Gauss消元法求解线性方程组的MATLAB实现 一.简介 MATLAB实现列主元Gauss消去法求解线性方程组,并与不列主元的Gauss消 ...
- 用列主元高斯(Gauss)消元法求n阶线性方程组的解(python)
(一)目的 通过设计.编制.调试2~3个求n阶线性方程组数值解的程序,加深对其数值计算方法及有关的基础理论知识的理解. (二)要求 用编程语言实现用高斯(Gauss)消元法求n阶线性方程组的解.用列主 ...
- 顺序Gauss 消元法
顺序Gauss消元法是求解联立线性代数方程的流行方法,他的主要思想是通过一系列行变换将增广矩阵简化成上三角矩阵,然后再进行回代,最终得到所有的解,他要求系数矩阵为非奇异的.这种方法的结果有可能产生病态 ...
- Python解线性方程组:列主元Gauss消元法
目录 算法流程 代码 测试 列主元Gauss消元法各大教科书都有,是很基础的解方程组方法.其主要思想是把方程组化为上三角方程组,然后通过回代的方法求得方程组的解. Gauss的具体原理请参照数值分析的 ...
- Gauss消元法求解线性方程组的Matlab实现(列主元、全主元)
最近数值分析有作业要求用Matlab实现Gauss消元法,记录在此. 问题如下: 1.列主元消去法 function []=Gauss_L(A,b) %列主元求解线性方程组 ZG= [A b]; %增 ...
最新文章
- Udacity机器人软件工程师课程笔记(十一)-ROS-编写ROS节点
- 计算机屏幕亮度调到多少合适,电脑屏幕的亮度和对比度调到多少比较合适,对眼睛伤害最小?有哪位高手了解?...
- 【OpenCV 例程200篇】75. Numpy 实现图像傅里叶变换
- html基础电子文档,html基础
- react-native icon使用方式
- SqlServer2012自增主键跳跃增长的问题解决方案
- Centos7安装完毕后无法联网的解决方法
- C Primer Plus 第5章 运算符、表达式和语句 5.2基本运算符
- Java多线程:线程死锁
- C/C++指针和取地址操作
- Hello designer|PPT笔记
- Ramda 函数库参考教程
- 检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
- 韦福怎么编译c 语言,c语言第1章 绪论.ppt
- Pod环境变量和initContainer
- 启动虚拟机sd 0:0:0:0: [sda] Assuming drive cache: write through错误解决 本人实测!
- 恒烁M0+系列CX32L003单片机及其GPIO的操作
- Caused by: org.xml.sax.SAXParseException;必须为元素类型 mapping 声明属性 resourse。
- 软件的生命周期的若干阶段
- 股票数据的获取(tushare)