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
- 梯度下降法、座標下降法、牛頓迭代法梯度
- Python實現連結串列反轉的方法【迭代法與遞迴法】Python遞迴
- matlab練習程式(線性常微分方程組矩陣解)Matlab矩陣
- 增補部落格 第二十二篇 python 牛頓迭代法Python
- python來擬合Langmuir非線性方程PythonUI
- 齊次方程組(超定方程組)的最小二乘解,及利用其擬合空間平面
- 【數值計算方法】線性方程組迭代演算法的Python實現演算法Python
- 【數值計算方法】線性方程組的迭代解法-數值實驗
- 高等代數理論基礎24:線性方程組有解判別定理
- js 線性最小二乘迴歸線方程JS
- matlab求解非線性方程的Regula Falsi方法Matlab
- 如何在鬆弛中建立互動式按鈕
- 【基底 / 線性組合 / 線性無關(相關)】- 圖解線性代數 02圖解
- 利用matlab求解方程和方程組Matlab
- 流線方程
- 連續性方程
- 嘗試討論線性方程組相關數學原理、機器學習模型引數求解的數學本質機器學習模型
- 【原創】開源Math.NET基礎數學類庫使用(06)直接求解線性方程組
- python超程式設計詳解(3)Python程式設計
- matlab求解方程組Matlab
- 新的量子演算法有望破解非線性方程 - Quanta Magazine演算法
- 作業系統綜合題之“採用最低鬆弛度優先演算法的實時排程,鬆弛度的公式和在一個就緒佇列如何進行程式排序”作業系統演算法公式佇列行程排序