中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python怎么實現一個順序高斯消元法

發布時間:2021-04-14 16:09:24 來源:億速云 閱讀:257 作者:Leah 欄目:開發技術

使用Python怎么實現一個順序高斯消元法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

# coding: utf8
import numpy as np


# 設置矩陣
def getInput():
 matrix_a = np.mat([[2, 3, 11, 5],
      [1, 1, 5, 2],
      [2, 1, 3, 2],
      [1, 1, 3, 4]],dtype=float)
 matrix_b = np.mat([2,1,-3,-3])
 #答案:-2 0 1 1
 return matrix_a, matrix_b

def SequentialGauss(mat_a):
 for i in range(0, (mat_a.shape[0])-1):
  if mat_a[i, i] == 0:
   print("終斷運算:")
   print(mat_a)
   break
  else:
   for j in range(i+1, mat_a.shape[0]):
    mat_a[j:j+1 , :] = mat_a[j:j+1,:] - \
             (mat_a[j,i]/mat_a[i,i])*mat_a[i, :]
 return mat_a


def revert(new_mat):
 #創建矩陣存放答案 初始化為0
 x = np.mat(np.zeros(new_mat.shape[0], dtype=float))
 number = x.shape[1]-1
 # print(number)
 b = number+1
 x[0,number] = new_mat[number,b]/new_mat[number, number]
 for i in range(number-1,-1,-1):
  try:
   x[0,i] = (new_mat[i,b]-np.sum(np.multiply(new_mat[i,i+1:b],x[0,i+1:b])))/(new_mat[i,i])
  except:print("錯誤")
 print(x)
if __name__ == "__main__":
 mat_a, mat_b = getInput()
 # 合并兩個矩陣
 print("原矩陣")
 print(np.hstack((mat_a, mat_b.T)))
 new_mat = SequentialGauss(np.hstack((mat_a, mat_b.T)))
 print("三角矩陣")
 print(new_mat)
 print("方程的解")
 revert(new_mat)

運行結果如下

使用Python怎么實現一個順序高斯消元法

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邢台市| 泗阳县| 陵川县| 河西区| 灌南县| 房产| 昂仁县| 湄潭县| 周宁县| 兴义市| 图片| 张掖市| 博爱县| 涿州市| 高青县| 五华县| 博湖县| 乌拉特前旗| 延川县| 合作市| 赤峰市| 新平| 玉树县| 皋兰县| 繁峙县| 伊宁县| 精河县| 康马县| 获嘉县| 闻喜县| 通海县| 荥阳市| 陈巴尔虎旗| 扶风县| 荆州市| 镇赉县| 宁海县| 连州市| 万全县| 临沂市| 安塞县|