91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

使用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

依兰县| 西林县| 惠来县| 嘉鱼县| 大港区| 商都县| 方山县| 阿城市| 叶城县| 衡南县| 团风县| 平乡县| 文山县| 常山县| 玉溪市| 巩义市| 南昌市| 九寨沟县| 沈阳市| 临沭县| 临泽县| 宁武县| 渑池县| 峨眉山市| 库车县| 高雄县| 肥东县| 龙游县| 九台市| 葫芦岛市| 吉木乃县| 常熟市| 洪泽县| 台南市| 永宁县| 长汀县| 元氏县| 镇宁| 韶山市| 北票市| 重庆市|