資源簡介
內含最速下降法與共個梯度法的對比以及迭代收斂性分析文檔
還有實驗所用的源程序,其中最速下降法程序和共個梯度法程序都有源程序。
代碼片段和文件信息
%?讀取數據,用最共軛梯度法求A11x=b11的解。
%?最后一步的誤差的2范數存在e11中。每一步誤差A范數存在eA11中。
load(‘alldata_2.mat‘);
n=200;???%?迭代次數
x11=zeros(1001);
r=b11-A11*x11;
p=r;
eA11=zeros(1011);
eA11(1)=sqrt(dot(x11-xxA11*(x11-xx)));
for?i=1:n
????a=dot(rr)/dot(A11*pp);
????x11=x11+a*p;
????b_1=dot(rr);
????r=r-a*A11*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA11(i+1)=sqrt(dot(x11-xxA11*(x11-xx)));
end
e11=sqrt(dot(x11-xxx11-xx));
%?用最共軛梯度法求A21x=b21的解。
x21=zeros(1001);
r=b21-A21*x21;
p=r;
eA21=zeros(1011);
eA21(1)=sqrt(dot(x21-xxA21*(x21-xx)));
for?i=1:n
????a=dot(rr)/dot(A21*pp);
????x21=x21+a*p;
????b_1=dot(rr);
????r=r-a*A21*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA21(i+1)=sqrt(dot(x21-xxA21*(x21-xx)));
end
e21=sqrt(dot(x21-xxx21-xx));
%?用最共軛梯度法求A31x=b31的解。
x31=zeros(1001);
r=b31-A31*x31;
p=r;
eA31=zeros(1011);
eA31(1)=sqrt(dot(x31-xxA31*(x31-xx)));
for?i=1:n
????a=dot(rr)/dot(A31*pp);
????x31=x31+a*p;
????b_1=dot(rr);
????r=r-a*A31*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA31(i+1)=sqrt(dot(x31-xxA31*(x31-xx)));
end
e31=sqrt(dot(x31-xxx31-xx));
%?用最共軛梯度法求A41x=b41的解。
x41=zeros(1001);
r=b41-A41*x41;
p=r;
eA41=zeros(1011);
eA41(1)=sqrt(dot(x41-xxA41*(x41-xx)));
for?i=1:n
????a=dot(rr)/dot(A41*pp);
????x41=x41+a*p;
????b_1=dot(rr);
????r=r-a*A41*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA41(i+1)=sqrt(dot(x41-xxA41*(x41-xx)));
end
e41=sqrt(dot(x41-xxx41-xx));
%?用最共軛梯度法求A51x=b51的解。
x51=zeros(1001);
r=b51-A51*x51;
p=r;
eA51=zeros(1011);
eA51(1)=sqrt(dot(x51-xxA51*(x51-xx)));
for?i=1:n
????a=dot(rr)/dot(A51*pp);
????x51=x51+a*p;
????b_1=dot(rr);
????r=r-a*A51*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA51(i+1)=sqrt(dot(x51-xxA51*(x51-xx)));
end
e51=sqrt(dot(x51-xxx51-xx));
%?用最共軛梯度法求A12x=b12的解。
x12=zeros(1001);
r=b12-A12*x12;
p=r;
eA12=zeros(1011);
eA12(1)=sqrt(dot(x12-xxA12*(x12-xx)));
for?i=1:n
????a=dot(rr)/dot(A12*pp);
????x12=x12+a*p;
????b_1=dot(rr);
????r=r-a*A12*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA12(i+1)=sqrt(dot(x12-xxA12*(x12-xx)));
end
e12=sqrt(dot(x12-xxx12-xx));
%?用最共軛梯度法求A13x=b13的解。
x13=zeros(1001);
r=b13-A13*x13;
p=r;
eA13=zeros(1011);
eA13(1)=sqrt(dot(x13-xxA13*(x13-xx)));
for?i=1:n
????a=dot(rr)/dot(A13*pp);
????x13=x13+a*p;
????b_1=dot(rr);
????r=r-a*A13*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA13(i+1)=sqrt(dot(x13-xxA13*(x13-xx)));
end
e13=sqrt(dot(x13-xxx13-xx));
%?用最共軛梯度法求A14x=b14的解。
x14=zeros(1001);
r=b14-A14*x14;
p=r;
eA14=zeros(1011);
eA14(1)=sqrt(dot(x14-xxA14*(x14-xx)));
for?i=1:n
????a=dot(rr)/dot(A14*pp);
????x14=x14+a*p;
????b_1=dot(rr);
????r=r-a*A14*p;
????b=dot(rr)/b_1;
????p=r+b*p;
????eA14(i+1)=sqrt(dot(x14-xxA14*(x14-xx)));
end
e14=sqrt(dot(x14-xxx14-xx));
%?用最共軛梯度法求A15x=b15的解。
x15=zeros(1001);
r=b15-A15*x15;
p=r;
eA15=zeros(1011);
eA15(1)=sqrt(dot(x15-xxA15*(x15-xx)));
for?i=1:n
????a=dot(rr)/dot(A15*pp);
????x15=x15+a*p;
????b_1=dot(rr);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-12-10?15:59??最速下降法&共軛梯度法\
?????文件?????5687432??2012-11-12?10:43??最速下降法&共軛梯度法\alldata.mat
?????文件?????5684028??2012-11-12?10:43??最速下降法&共軛梯度法\alldata_2.mat
?????文件????????5417??2012-11-12?10:43??最速下降法&共軛梯度法\conjugate.m
?????文件????????2138??2012-11-12?10:43??最速下降法&共軛梯度法\data_create.m
?????文件????????2206??2012-11-12?10:43??最速下降法&共軛梯度法\data_create_2.m
?????文件????????8726??2012-11-12?10:43??最速下降法&共軛梯度法\discuss_1.m
?????文件????????3304??2012-11-12?10:43??最速下降法&共軛梯度法\discuss_4.m
?????文件????????2884??2012-11-12?10:58??最速下降法&共軛梯度法\discuss_5.m
?????文件????????5276??2012-11-12?10:43??最速下降法&共軛梯度法\grades.m
?????文件?????5845175??2012-11-12?10:43??最速下降法&共軛梯度法\matrix.mat
?????文件?????????679??2012-11-12?10:43??最速下降法&共軛梯度法\matrix_create.m
?????文件?????1961056??2012-11-12?10:55??最速下降法&共軛梯度法\數值分析實踐1.docx
評論
共有 條評論