高斯消元法是解线性方程组的一种常见的方法,下面是高斯消元法的实现过程,下面的算法仅能解决各主元素不为0的情况。

下面是算法的实现思路:

1.算法总共分为两大步骤,第一个步骤是将增广矩阵消元形成上三角矩阵,第二个步骤是从下向上进行回带完成解方程的步骤。

2.在第一个步骤里总共有三重循环

1>第一重循环是要控制一共要有多少次消元。如下图要将左边的矩阵变成右边的矩阵要进行2次消元。

2>第二重循环是要将当前消元的主元素变成一,同时该主元素所在的行同时缩小相应的倍数。例如:将a11这一行的元素同时除以a11,这行元素变为1,a12/a11,a13/a11,b1/a11

3>第三重循环将主元素所在的列,完成消元归零的操作。将a11所在的列都变成0,a21-a21*1 ,a22-a21*a12/a11,a23-a21*a13/a11,b32-a21*b1/a11

3.回带

  

import matplotlib.pyplot as plt
from pylab import mpl
import math"""利用高斯消元法,求解方程组的解。方程组如下:6x1+15x2+55x3=152.615x1+55x2+225x3=585.655x1+225x2+979x3=2488.8"""def calculate_parameter(data):# i用来控制列元素,line是一行元素,j用来控制循环次数,datas用来存储局部变量。保存修改后的值i = 0;j = 0;line_size = len(data)# 将行列式变换为上三角行列式while j < line_size - 1:line = data[j]temp = line[j]templete = []for x in line:x = x / temptemplete.append(x)data[j] = templete# flag标志应该进行消元的行数flag = j + 1while flag < line_size:templete1 = []temp1 = data[flag][j]i = 0for x1 in data[flag]:if x1 != 0:x1 = x1 - (temp1 * templete[i])templete1.append(x1)else:templete1.append(0)i += 1data[flag] = templete1flag += 1j += 1# 求相应的参数值parameters = []i = line_size - 1# j标识减去元素个数# flag_rol标识除那一列flag_j = 0rol_size = len(data[0])flag_rol = rol_size - 2# 获得解的个数while i >= 0:operate_line = data[i]if i == line_size - 1:parameter = operate_line[rol_size - 1] / operate_line[flag_rol]parameters.append(parameter)else:flag_j = (rol_size - flag_rol - 2)temp2 = operate_line[rol_size - 1]# result_flag为访问已求出解的标志result_flag = 0while flag_j > 0:temp2 -= operate_line[flag_rol + flag_j] * parameters[result_flag]result_flag += 1flag_j -= 1parameter = temp2 / operate_line[flag_rol]parameters.append(parameter)flag_rol -= 1i -= 1return parametersparemeters=[[6,15, 55,152.6], [15, 55, 225, 585.6], [55,225,979,2488.8]]
results=calculate_parameter(paremeters)
print(" x1="+str(results[2])+"\n x2="+str(results[1])+"\n x3="+str(results[0]))

高斯消元法的python实现相关推荐

  1. 列主元高斯消元法(Python实现)

    列主元素消去法是为控制舍入误差而提出来的一种算法,列主元素消去法计算基本上能控制舍入误差的影响,其基本思想是:在进行第 k(k=1,2,...,n-1)步消元时,从第k列的 akk及其以下的各元素中选 ...

  2. 高斯消元法python编程_高斯消元法的Python实现

    高斯消元法 节约内存的算法: 例1:用高斯消元法求解线性方程组: # -*- coding: utf-8 -*- """ 求解线性方程组: [12 -3 3] [x1] ...

  3. 高斯消元法求解方程组(要有python基础和线性代数的基础)

    本人这学期开的是一门数值分析课,老师要求用python写出实现某些算法的代码,当遇到第一个高斯消元法,印象深刻的是这个编程与以往的编程不一样,从这几点来讲:首先,我是在上这门课之前就将python的基 ...

  4. 高斯消元法python编程_Python 实现顺序高斯消元法示例

    我就废话不多说,直接上代码吧! # coding: utf8 import numpy as np # 设置矩阵 def getInput(): matrix_a = np.mat([[2, 3, 1 ...

  5. 高斯消元法python编程_Python基于高斯消元法计算线性方程组示例

    本文实例讲述了Python基于高斯消元法计算线性方程组.分享给大家供大家参考,具体如下: #!/usr/bin/env python # coding=utf-8 # 以上的信息随自己的需要改动吧 d ...

  6. 高斯消元法python实现

    高斯消元法 消元结果 依次回代 代码 import numpy as npdef gauss(a,b):n,m = a.shapex = np.empty(m) # 解#一共要有(行-1)次消元for ...

  7. 高斯消元法解线性方程组数学原理及Python手工实现

    一.基本思想 先逐次消去未知数,将方程化为同解的上三角形方程组,此过程称为消元.然后按方程相反顺序求解上三角形方程组,得到原方程组的解,此过程称为回代.这种方法称为高斯消元法. 二.例子  消元过程如 ...

  8. 高斯消元法求解线性方程组(附python代码)

    输入:a是m×n的系数矩阵,b是m×1的(列)向量. 输出:方程组的通解. 用高斯消元法(行化简法)解线性方程组步骤 1.构造方程组的增广矩阵 2.从最左边列往右,使用行化简算法把增广矩阵化为阶梯形, ...

  9. 【Python算法】数值分析—列主元高斯消元法——附源码

    一.背景 线性方程组有很多种解法,可以最简单的直接代入消元计算,但是运算量较大,且过程复杂不直观. 高斯消元法目的是预处理方程组的系数矩阵,将系数矩阵变换为上三角矩阵,这样整个方程就变得清晰直观很多, ...

最新文章

  1. (十二) 完整注释的代码摘录
  2. 一个免费分享绘图代码的网站
  3. 阿里人工智能实验室新入职两名首席科学家,年薪百万美元
  4. 【BZOJ3527】【ZJOI2014】力
  5. java高级用法之:JNA类型映射应该注意的问题
  6. 优化案例(part5)--sparse subspace clustering via Low-Rank structure propagation
  7. (优秀文章保存)Quartz优秀文章保存
  8. 2010伊始就这么忙
  9. matlab imagesc 白色,[转载]matlab 中imagesc的用法
  10. Xcode Undefined symbols 错误
  11. 改进left函数,截取varchar需要的字符串长度
  12. 字体图标和变形 transform属性的使用
  13. Flex ikev2
  14. 罗马仕荣获中国质量认证中心、CESI颁发的全国首批“双新认证”证书
  15. c语言程序设计 大学考试题库,广东工业大学《C语言程序设计》考试复习重点题库.pdf...
  16. Microsoft Windows CredSSP 远程执行代码漏洞CVE-2018-0886
  17. C# 闹钟「定时提醒,整点报时」
  18. IDC销售是什么?难在哪里?
  19. Background sticky concurrent mark sweep GC freed 842(58KB) AllocSpace objects
  20. Android手机拍照APP闪退问题及应对措施

热门文章

  1. Pause Giant AI Experiments: An Open Letter(暂停大型人工智能实验: 一封公开信)
  2. 如何解决数据关联查询
  3. 第二次作业:《国际贸易学》—自由贸易理论
  4. 暑假实习 + 提前批 +校园招聘(更新中)
  5. 机器学习算法(七): 基于LightGBM的分类预测(基于英雄联盟10分钟数据判断红蓝方胜负)
  6. Python爬虫实战:爬取维基百科
  7. LVGL misc log日志系统(lv_log.h)
  8. 2022上海市安全员C证考试题库模拟考试平台操作
  9. 2021年氯化工艺复审考试及氯化工艺作业模拟考试
  10. commons-codec使用简介