📄 cg.m
字号:
% CG即共轭梯度法求解对称正定型线性方程组
clc
clear all
% u=4;v=4;a0=1;b0=1;
% [A,b]=fem(u,v,a0,b0);
tic
A=[2 -1 0 0;-1 3 -2 0;0 -2 4 -3;0 0 -3 5];
b=[6 1 -2 1]';
% A=[6 3;3 2];
% b=[0;-1];
n=length(b);
%%=========初始化=====================================
x1=zeros(n,1);
x2=zeros(n,1);
r1=zeros(n,1);
r2=zeros(n,1);
p1=zeros(n,1);
p2=zeros(n,1);
r1=b-A*x1;
p1=r1;
k=0;
jingdu=1;
while k<=n | jingdu>1e-6
k=k+1;
if r1==0
break
else
alphi=(r1'*r1)/((A*p1)'*p1);
x2=x1+alphi*p1;
r2=r1-alphi*A*p1;
beta=(r2'*r2)/(r1'*r1);
p2=r2+beta*p1;
end
jingdu=norm(x2-x1,inf);
x1=x2;
r1=r2;
p1=p2;
end
x2
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -