高斯消元法(三):用Python简单实现顺序消元法
来源:互联网 发布:cms监控软件手机版安卓 编辑:程序博客网 时间:2024/06/05 17:33
# coding:utf-8import numpy as npimport sys# 设置矩阵def set_matrix(): # 设置系数矩阵A matrix_a =np.mat([ [2.0, 1.0, 2.0], [5.0, -1.0, 1.0], [1.0, -3.0, -4.0]],dtype=float) matrix_b = np.mat([5, 8, -4],dtype=float).T return matrix_a, matrix_b# 高斯顺序消去法def gauss_shunxu(mat): for i in range(0,mat.shape[0]-1): # 判断顺序顺序主子式的首个元素不为0 if mat[i,i] == 0: print mat print 'break:(', i, ',', i, ')元素为0' break else: # i行下面的每一行分别跟i行做计算,消掉第i个元素 mat[i+1:,:] = mat[i+1:,:] - (mat[i+1:,i]/mat[i,i])*mat[i,:] return matdef huidai(mat): x = np.mat(np.zeros(mat.shape[0],dtype=float)) # 先算x(n) 用 b(n)/a(nn) n = x.shape[1]-1 x[0,n] = mat[n,n+1]/mat[n,n] # 再分别带入上一部式子算出n-1 for i in range(n): n -= 1 x[0,n] = (mat[n,mat.shape[1]-1] - np.sum(np.multiply(x[0, n+1:], mat[n,n+1:mat.shape[1]-1])))/mat[n,n] return xif __name__ == "__main__": # 增广矩阵m为系数矩阵A加上列矩阵b m = np.hstack(set_matrix()) #按列合并:vstack() 按行合并:hstack() print '原矩阵:' print m # 顺序消去过程 m1 = gauss_shunxu(m) print '\n上三角矩阵:' print m1 # 回带过程 x = huidai(m1) print '\n\nX的值为:', x
阅读全文
0 0
- 高斯消元法(三):用Python简单实现顺序消元法
- 三、简单程序设计(顺序结构程序设计)
- 【顺序表】用c语言简单实现顺序表
- 用C++实现简单的顺序表
- 顺序栈简单实现
- 简单顺序表实现
- 实现简单工厂(三)
- 卷积神经网络(三):卷积神经网络CNN的简单实现(部分Python源码)
- 卷积神经网络(三):卷积神经网络CNN的简单实现(部分Python源码)
- [Python下载CSDN博客]1. 简单实现(三)
- 用python实现简单爬虫
- 简单顺序表的实现
- 顺序表的简单实现
- 顺序队列的简单实现
- 顺序表的简单实现
- 顺序栈的简单实现
- 顺序表的简单实现
- 顺序栈的简单实现
- ArrayList数组变成字符串
- GLSurfaceView渲染过程详解
- DVD管理系统:为某音像店开发一个迷你DVD管理器,实现DVD碟片的管理,包括如下功能:
- 自创简易加密算法
- UML建模浅析
- 高斯消元法(三):用Python简单实现顺序消元法
- 查询今天、昨天、本周、上周、本月、上月数据
- 与秒米合作4
- CSS3边框与圆角
- ORA-01261和ORA-01263的解决方法
- JQUERY 监控回车键,并实现跳转(翻页功能)
- SQL Server Management Studio连不上数据库设置方法
- 12月的一点收获
- MySQL中的isnull、ifnull和nullif函数用法