Matlab 共轭梯度法求解任意线性方程组!function x = cg(A,b)tol=1e-10;r = b + A*b;w = -r;z = A*w;s = w'*z;t = (r'*w)/s;x = -b + t*w;for k = 1:numel(b);r = r - t*z;if( norm(r) < tol )return;endB = (r'*z)/s;w = -r + B*w;z = A*w;s = w'*z;t = (
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/02 03:30:19
Matlab 共轭梯度法求解任意线性方程组!function x = cg(A,b)tol=1e-10;r = b + A*b;w = -r;z = A*w;s = w'*z;t = (r'*w)/s;x = -b + t*w;for k = 1:numel(b);r = r - t*z;if( norm(r) < tol )return;endB = (r'*z)/s;w = -r + B*w;z = A*w;s = w'*z;t = (
Matlab 共轭梯度法求解任意线性方程组!
function x = cg(A,b)
tol=1e-10;
r = b + A*b;
w = -r;
z = A*w;
s = w'*z;
t = (r'*w)/s;
x = -b + t*w;
for k = 1:numel(b);
r = r - t*z;
if( norm(r) < tol )
return;
end
B = (r'*z)/s;
w = -r + B*w;
z = A*w;
s = w'*z;
t = (r'*w)/s;
x = x + t*w;
end
Matlab 共轭梯度法求解任意线性方程组!function x = cg(A,b)tol=1e-10;r = b + A*b;w = -r;z = A*w;s = w'*z;t = (r'*w)/s;x = -b + t*w;for k = 1:numel(b);r = r - t*z;if( norm(r) < tol )return;endB = (r'*z)/s;w = -r + B*w;z = A*w;s = w'*z;t = (
你这样问不解决问题的,共轭梯度法虽然是最简单的Krylov子空间方法,但是对一般的本科生而言仍然比较困难,你得找本教材来慢慢看,把整个推导过程自己算一遍,这样才能搞明白程序的原理.
求用matlab解方程 最好有共轭梯度法 不用内部函数 只用四则运算 循环 等b is a vector here. if b is matrix, Ax(i,:) = b(i,:), i
...
晕