迭代過程
首先將 方程組中的
係數矩陣
a分解成三部分,即:
a = l+d+u,如圖1所示,其中
d為對角陣,
l為下三角矩陣,
u為上三角矩陣。
之後確定迭代格式,x^(k+1) =
b*x^(k) +
f ,(這裡^表示的是上標,括號內數字即迭代次數),如圖2所示,其中
b稱為迭代矩陣,雅克比迭代法中一般記為
j。(k = 0,1,......)
再選取初始迭代
向量x^(0),開始逐次迭代。
核心部分,迭代實現:
public void calcu5()
if(count2==n)
", count2);break; }
for(int i=0;i
完整:using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace jacobi迭代
set
}double[,] a;
public double[,] a
set
}double x;
public double x
set
}double e = 0.00001;
public double e
set
}private double x2;
public double x2
set
}public void input()
console.writeline("請輸入各行係數(','或' '隔開):");
for (int i = 0; i < n; i++)}}
public void calcu5()
if(count2==n)
", count2);break; }
for(int i=0;i
執行結果:
請輸入階數: 4
請輸入各行係數(','或' '隔開):
10 -1 2 0 6
-1 11 -1 3 25
2 -1 10 -1 -11
0 3 -1 8 15
方程係數為:
10.00 -1.00 2.00 0.00 6.00
-1.00 11.00 -1.00 3.00 25.00
2.00 -1.00 10.00 -1.00 -11.00
0.00 3.00 -1.00 8.00 15.00
迭代發散!!!
方程組的解是:
x1=1
x2=2
x3=-1
x4=1
請按任意鍵繼續. . .
數值計算(迭代法解方程組)
ax b經過一定的變換成x bx f 然後從初始向量出發,計算xk 1 b xk f 經過一定的次數後得到xk 1會收斂於真正的值。問題來了?如何得到x bx f這種形式?如何證明收斂?接下來的幾個演算法都是圍繞這個問題。coding utf 8 import numpy as np a packa...
求解線性方程組 Jacobi迭代法
求解線性方程組 jacobi迭代法 求解線性方程組 jacobi迭代法 include include using namespace std 二維陣列動態分配模板 template t allocation2d int m,int n return a 一維陣列動態分配模板 template t ...
jacobi迭代法求解線性方程組
首先將 方程組中的 係數矩陣 a分解成三部分,即 a l d u,如圖1所示,其中 d為對角陣,l為下三角矩陣,u為上三角矩陣。之後確定迭代格式,x k 1 b x k f 這裡 表示的是上標,括號內數字即迭代次數 如圖2所示,其中 b稱為迭代矩陣,雅克比迭代法中一般記為 j。k 0,1,再選取初始...