Python解線性方程組的迭代法(3)————逐次超鬆弛(SOR)迭代法
程式碼
import numpy as np
def sor(A, b, N, w):
x = np.mat(np.zeros((A.shape[0], 1)))
k = 0
n = A.shape[0]
xj = x.copy()
while k <= N:
for i in range(n):
for j in range(n):
x[i, 0] = (1 - w) * x[i, 0] + w * (b[i, 0] - A[i, 0:i]*x[0:i, 0] - A[i, i+1:n] * xj[i+1:n, 0])/A[i, i]
if sum(abs(A*x - b)) < 10*-8:
break
k = k + 1
xj = x.copy()
if k == N:
print('超過最大迭代次數')
return x
if __name__ == "__main__":
w = float(input('請輸入鬆弛因子:'))
A = np.mat([[10, -1, -2],
[-1, 10, -2],
[-1, -1, 5]])
b = np.mat([[72], [83], [42]])
print('求解結果:')
print(sor(A, b, 1000, w))
求解結果如下:
相關文章
- 實驗五 迭代法解線性方程組與非線性方程(android)Android
- C語言實現牛頓迭代法解方程C語言
- 線性方程組
- 高等代數:3 線性方程組的解集的結構
- 牛頓迭代法求根
- 學習SVM(五)理解線性SVM的鬆弛因子
- 程式設計師的數學筆記3--迭代法程式設計師筆記
- 求平方根 && 牛頓迭代法
- MATLAB版線性代數-線性方程組1Matlab
- 實驗一 直接法解線性方程組(android)Android
- 二叉樹的遍歷 (迭代法)二叉樹
- POJ 2891-trange Way to Express Integers(解線性同餘方程組)Express
- 快速傅立葉變換的迭代法程式碼實現
- 梯度下降法、座標下降法、牛頓迭代法梯度
- matlab練習程式(線性常微分方程組矩陣解)Matlab矩陣
- Python實現連結串列反轉的方法【迭代法與遞迴法】Python遞迴
- python來擬合Langmuir非線性方程PythonUI
- 高等代數理論基礎24:線性方程組有解判別定理
- js 線性最小二乘迴歸線方程JS
- matlab求解非線性方程的Regula Falsi方法Matlab
- 如何在鬆弛中建立互動式按鈕
- 【基底 / 線性組合 / 線性無關(相關)】- 圖解線性代數 02圖解
- 流線方程
- 連續性方程
- 嘗試討論線性方程組相關數學原理、機器學習模型引數求解的數學本質機器學習模型
- 【原創】開源Math.NET基礎數學類庫使用(06)直接求解線性方程組
- matlab求解方程組Matlab
- python超程式設計詳解(3)Python程式設計
- 新的量子演算法有望破解非線性方程 - Quanta Magazine演算法
- 作業系統綜合題之“採用最低鬆弛度優先演算法的實時排程,鬆弛度的公式和在一個就緒佇列如何進行程式排序”作業系統演算法公式佇列行程排序
- Python線性優化基礎講解~Python優化
- ProE常用曲線方程式
- 空間曲線和曲面方程
- ssh連線超時的解決
- 給定區間記憶體在多根情況下的非線性方程求根記憶體
- 超全的Python學習路線圖Python
- Python 基礎 3 - 元組Python
- 字串連線超長的解決(二)字串