共轭斜向法求解线性方程组
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);
%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);
相关文章推荐
- POJ 1061 青蛙的约会(拓展欧几里得算法求解模线性方程组详解)
- 数值分析 追赶法求解三对角线性方程组 MATLAB实现
- 高斯消元法求解线性方程组的解集
- vs2010+matlab求解线性方程组
- 线性方程组求解库
- 求解线性方程组之Gauss_Seidel迭代法求解对角线占绝对优势的系统
- Eigen教程5 - 求解稀疏线性方程组
- 高斯列主元消元法求解线性方程组
- 求解线性方程组的三种基本迭代法
- Lapack求解线性方程组
- 中国剩余定理求解同余线性方程组(模数互素和非互素的情况)
- 求解线性方程组--高斯消去法
- 如何使用拓展欧几里得算法求解模线性方程组(详解)
- 开源Math.NET基础数学类库使用(06)直接求解线性方程组
- 雅可比迭代法求解线性方程组的MATLAB实现
- 迭代法求解线性方程组
- 采用GAUSS列主消元法求解线性方程组(MATLAB)
- opencv 中,使用cvSolve函数,求解线性方程组,或者最小二乘法问题
- 高斯消元求解线性方程组
- 数值计算 && 实验8 && Gauss-Seidel迭代法求解线性方程组