高斯消元法、列主元高斯消去法、全主元高斯消去法Python实现
求解有解的线性方程组;
代码实现:
高斯消元法:
import numpy as np
def Gauss_elimination(A): # 高斯消去法求解# 消元,化为上三角for k in range(len(A[0])): for i in range(k+1,len(A)): m=A[i][k]/A[k][k]for j in range(k,len(A[0])): A[i][j]-=m*A[k][j]#回代X=[] #设置空列表X来存储方程组的解x1,x2,...X.append(A[len(A)-1][len(A[0])-1]/A[len(A)-1][len(A[0])-2]) #将所得的xn添加置列表Xfor i in range(len(A)-2,-1,-1): s=A[i][len(A[0])-1] for j in range(i+1,len(A)):s = s - A[i][j] * X[len(A)-1-j] X.append(s/A[i][i]) X.reverse() return XA = np.array([[3,1,-1,4],[4,0,4,8],[12,-3,3,9]])
print(Gauss_elimination(A))
列主元高斯消去法 :
import numpy as numpy
def Gauss_Lelimination(A): # 列主元高斯消去法求解for k in range(len(A[0])-1): # 在整个系数矩阵中选择列主元max=A[k][k]for i in range(k+1,len(A)): # 选主元if (abs(max)<abs(A[i][k])): max=A[i][k]x=i #记录选择交换的行数A[[k,i],:]=A[[i,k],:]return Gauss_elimination(A)
def Gauss_elimination(A):# 消元,化为上三角for k in range(len(A[0])): for i in range(k+1,len(A)): m=A[i][k]/A[k][k]for j in range(k,len(A[0])): A[i][j]-=m*A[k][j]#回代X=[] #设置空列表X来存储方程组的解x1,x2,...X.append(A[len(A)-1][len(A[0])-1]/A[len(A)-1][len(A[0])-2]) for i in range(len(A)-2,-1,-1): s=A[i][len(A[0])-1] for j in range(i+1,len(A)):s = s - A[i][j] * X[len(A)-1-j] X.append(s/A[i][i]) X.reverse() return X
A = np.array([[3,1,-1,4],[4,0,4,8],[12,-3,3,9]])
print(Gauss_Lelimination(A))
全主元高斯消去法:
import numpy as numpy
def Gauss_Qelimination(A):# 全主元高斯消去法求解for k in range(len(A[0])-1):max=A[k][k]for i in range(k,len(A)):for j in range(k,len(A[0])-1):if (abs(max)<abs(A[i][j])): #选去绝对值最大者作为主元max=A[i][j]x=i #记录选择交换的行数y=j #记录选择交换的列数A[[k,x],:]=A[[x,k],:] #交换第k行和第x行A[:,[k,y]]=A[:,[y,k]] #交换第k列和第y列for i in range(k+1,len(A)):m=A[i][k]/A[k][k]for j in range(k,len(A[0])): A[i][j]-=m*A[k][j]#回代X=[] #设置空列表X来存储方程组的解x1,x2,...X.append(A[len(A)-1][len(A[0])-1]/A[len(A)-1][len(A[0])-2]) for i in range(len(A)-2,-1,-1): s=A[i][len(A[0])-1]for j in range(i+1,len(A)):s = s - A[i][j] * X[len(A)-1-j] X.append(s/A[i][i]) X.reverse() return X
A = np.array([[0.007,-0.8,0.7],[-0.1,10,10]])
print(Gauss_Qelimination(A))
运行结果:
[1.0, 1.75, 0.75]
[1.0, 2.0, 1.0]
[-14.0, -1500.0]
高斯消元法、列主元高斯消去法、全主元高斯消去法Python实现相关推荐
- matlab 高斯消去法程序,高斯消去法解线性方程的Matlab程序
1151091杨晨辉 高斯消去法解线性方程的Matlab程序 方法一: function x = gauss(A,b) n = length(b); for k = 1 : n-1 if A(k,k) ...
- Gauss消元法求解线性方程组的Matlab实现(列主元、全主元)
最近数值分析有作业要求用Matlab实现Gauss消元法,记录在此. 问题如下: 1.列主元消去法 function []=Gauss_L(A,b) %列主元求解线性方程组 ZG= [A b]; %增 ...
- 高斯消元法求解线性方程组(附python代码)
输入:a是m×n的系数矩阵,b是m×1的(列)向量. 输出:方程组的通解. 用高斯消元法(行化简法)解线性方程组步骤 1.构造方程组的增广矩阵 2.从最左边列往右,使用行化简算法把增广矩阵化为阶梯形, ...
- 列主元的Gauss-Jordan消元法-python实现
算法参考 https://wenku.baidu.com/view/d7d169d0be23482fb4da4c96.html?from=search 直接上代码 import math import ...
- 数值分析3-解线性方程组的高斯消去法、LU分解法及列主元消去法的matlab程序和调试方法
对于形如Ax=b的线性方程组,在线性代数中是通过求逆的方式求解的,即x=A-1b,而在数值分析中,解线性方程组的方法是通过直接法或者迭代法来实现的,今天写的三个程序都属于直接法,分别为高斯消去法.LU ...
- C语言实现高斯消去法和列主元高斯消去法
本篇主要实现高斯消去法和列主元高斯消去法 高斯消去法和列主元高斯消去法都是为了解线性方程组的有效方法,但列主元高斯消去法是高斯消去法的一个优化版本,强烈建议后面许多地方用到解方程组时,都用列主元高斯消 ...
- 列主元高斯消去法解线性方程组——C语言实现
原理 高斯消去法 的基本原理就是用初等变换将用行的,逐次消去未知数的方法,把原来的方程组,化为与其等价的上三角方程组. 设有线性方程Ax=B\boldsymbol{A}\boldsymbol{x}=\ ...
- Matlab 列主元高斯消去法
列主元高斯消去法是高斯消去法的优化版本,通过找出列中的最大值,避免了除以很小的数时容易引起的数值偏差. function x=Elim_Gauss(Matrix,n,b) %列主元高斯消去法 %输入- ...
- 计算方法——C语言实现——全主元高斯消元法求解非线性方程
最近在上计算方法这门课,要求是用MATLAB做练习题,但是我觉得C语言也很棒棒啊~ 题目: 高斯消元法是线性方程组的直接解法,可能会造成很大的失真,尤其是高斯顺序消元法,对方法进行改进,使每次都选取绝 ...
最新文章
- 深入分析 java 8 编程语言规范:Threads and Locks
- php7简短而安全的数组遍历方法
- cf552 G Minimum Possible LCMn个数,求最小得一对lcm
- 2019.2.14 t3 车辆销售
- 奢侈品级别的广告位,到底要不要继续砸钱?
- mysql 多张表公用一个序列_Mysql--序列3--分库分表策略
- spss练习数据_读硕博,为你推荐5本最实用的SPSS数据统计书
- 设计模式(一)---单一职责原则
- 设计灵感|优秀案例教你如何像杂志一样排版?
- ES6高频面试题目整理
- iOS数据库的使用(一):FMDB多线程
- 周立功USBCAN资料分享
- C# HttpServer 框架
- ARM处理器开发详解
- 猜大小(python)
- linux 安装Docker
- Rb-tree中删除元素后树形调整函数_Rb_tree_rebalance_for_erase
- cubase怎么添加midi设备_在 Cubase 中设置 MIDI 键盘的走带控制器和旋钮推子等控制器...
- 在美国学CS能挣多少钱?美国IT公司标准 offer package详细数字及绿卡政策 | 美国留学申请与就业找工作咨询博客|Warald|一亩三分地论坛...
- 黑马程序员:移动web
热门文章
- 2010年湖南省第六届大学生程序设计大赛 F题 “Biggest Number” CSG - 1051 // UVA 11882 (dfs+bfs+剪枝)
- 2022-06-04 前端周报总结 - 科技无障碍
- Contacts和RawContacts的区别
- EasyApi的使用~~~Yapi
- Python入门-基础篇笔记02
- 双一流大学最牛计算机专业,42所双一流大学2000-2018年国家三大奖统计,科研实力一目了然...
- ufl计算机科学排名,美国佛罗里达大学排名解析
- suricata 各个线程干的事情 -- WorkerThread
- 苏生:“月入三万”的背后,竟然是......
- win10系统设置锁屏界面时不能成功的解决办法