您的位置:首页 > 其它

共轭斜向法求解线性方程组

2012-08-17 13:51 211 查看
%共轭斜向法求解线性方程组

%Conjugate Gradient Method

%本函数只能求解当A为n*n的矩阵

%2010-10-23

function x=CJM(A,b)

tic;

t=size(A);%获取A的行列

n=t(1);

x=ones(n,1);

r=b-A*x;

p=r;

fid=fopen('Fconj-Output.txt','w');%用文件保存每次迭代结果

y=1;%y代表迭代深度

while norm(r)>1e-10

alpha=p'*r/(p'*A*p);

x=x+alpha*p;

r=r-alpha*A*p;

beta=-(p'*A*r)/(p'*A*p);

p=r+beta*p;

fprintf(fid,'%d\t',y);

for z=1:n %将数据写入文件

fprintf(fid,'%2.8f\t',x(z));

end

fprintf(fid,'alpha=%f\tbeta=%f',alpha,beta);

fprintf(fid,'\r\n');%输出完一次结果,换行

y=y+1;

end

fclose(fid);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: