%sor:逐次超鬆弛迭代法
%本函式只能求解當a為n*n的矩陣
%2010-10-21
function x=sor(a,b,w)
tic;
if nargin==2
w=1.23;%預設鬆弛因子w=1.23
endif w<0
error('matlab:sor:argument w:should be larger than 0',...
'recomanded range is 0j
l(i,j)=a(i,j);
elseif i1 %譜半徑大於1,迭代不收斂……
error('matlab:sor:the iteration matrix may not be astringent.see sor.');
endfid=fopen('sor-output.txt','w');%用檔案儲存每次迭代結果
y=1;%y代表迭代深度
while 1 %matlab中沒有do-while迴圈,可用break跳出
for i=1:n
temp1=0;
for j=1:i-1
temp1=temp1+a(i,j)*x2(j)/a(i,i);
endtemp2=0;
for j=i+1:n
temp2=temp2+a(i,j)*x1(j)/a(i,i);
endx2(i)=w*(b(i)/a(i,i)-temp1-temp2-(1-1/w)*x1(i));
endfprintf(fid,'%d\t',y);
for z=1:n %將資料寫入檔案
fprintf(fid,'%2.8f\t',x2(z));
endfprintf(fid,'\r\n');%輸出完一次結果,換行
if norm(x2-x1)<1e-10
break;%迭代結束
endx1=x2; %繼續下一輪迭代
y=y+1;
endx=x2;%返回計算結果
fclose(fid);%關閉檔案
toc;
超鬆弛迭代法求方法組的解(Python實現)
求方程組 5x 1 2x 2 x 3 12 x 1 4x 2 2x 3 20 2x 1 3x 2 10x 3 2 end right.5x 1 2 x2 x3 12 x1 4x2 2x3 20 2x1 3x 2 1 0x3 2 超鬆弛迭代其實基於高斯 塞德爾迭代的 可以對比著之前的高斯迭代法對比一下...
牛頓迭代法
創新工廠的筆試題 不用庫函式sqrt 求乙個整型數n的開方,要求精度達到0.001即可。在這裡首先介紹一下牛頓迭代法 假設乙個方程為 f x 0 那麼假設其解為x0,則用泰勒級數展開之後可得 f x f x0 f x0 x x0 0 其中x為其近似解。根據上式推導出 x x0 f x0 f x0 這...
牛頓迭代法
目前接觸到的牛頓迭代法主要應用於兩個方面 1 方程求根問題 2 最優化問題。1 求解方程。並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。原理是利用泰勒公式,在x0處展開,且展開到一階,即f x f x0 x x0 f x0 求解方程f x 0,即f x0 ...