A=[3 1 1;1 3 -1;1 -1 3]; b=[-1 1 1]'; 共轭梯度法解线性方程组 matlab,不要调用函数的
1个回答
2012-06-11
展开全部
A=[3 1 1;1 3 -1;1 -1 3
b=[-1 1 1]';
N=length(b); %解向量的维数
fprintf('库函数计算结果:');
x=inv(A)*b %库函数计算结果
x=zeros(N,1);%迭代近似向量
eps=0.0000001;%精度
r=b-A*x;d=r;
for k=0:N-1
fprintf('第%d次迭代:',k+1);
a=(norm(r)^2)/(d'*A*d)
x=x+a*d
rr=b-A*x; %rr=r(k+1)
if (norm(rr)<=eps)||(k==N-1)
break;
end
B=(norm(rr)^2)/(norm(r)^2);
d=rr+B*d;
r=rr;
end
b=[-1 1 1]';
N=length(b); %解向量的维数
fprintf('库函数计算结果:');
x=inv(A)*b %库函数计算结果
x=zeros(N,1);%迭代近似向量
eps=0.0000001;%精度
r=b-A*x;d=r;
for k=0:N-1
fprintf('第%d次迭代:',k+1);
a=(norm(r)^2)/(d'*A*d)
x=x+a*d
rr=b-A*x; %rr=r(k+1)
if (norm(rr)<=eps)||(k==N-1)
break;
end
B=(norm(rr)^2)/(norm(r)^2);
d=rr+B*d;
r=rr;
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询