1。 用雅克比迭代法和高斯——賽德爾迭代法求解下列方程組,取迭代初值[0;0;0]。
(1) 程式設計求解,並與用數學軟體求解的結果對比。
(2) 考察迭代法的收斂性,若均收斂,對比兩種方法的收斂速度。
解:源程式:
①雅克比迭代法:建立函式檔案jacobi。m
function [n,x]=jacobi(A,b,X,nm,w)
%用雅克比迭代法求解方程組Ax=b
%輸入:A為方程組的係數矩陣,b為方程組右端的列向量,X為迭代初值構成的列向量,nm為最大迭代次數,w為誤差精度
%輸出:x為求得的方程組的解構成的列向量,n為迭代次數
n=1;
m=length(A);
D=diag(diag(A)); %令A=D-L-U,計算矩陣D
L=tril(-A)+D; %令A=D-L-U,計算矩陣L
U=triu(-A)+D; %令A=D-L-U,計算矩陣U
M=inv(D)*(L+U); %計算迭代矩陣
g=inv(D)*b; %計算迭代格式中的常數項
%下面是迭代過程
while n<=nm
x=M*X+g; %用迭代格式進行迭代
if norm(x-X,2)