# coding:utf-8 import numpy as np import 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 mat def 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]
高斯消元法(三):用Python简单实现顺序消元法
最新推荐文章于 2025-02-21 16:40:04 发布