当前位置:文档之家› 完整word版最速下降法求解线性代数方程组

完整word版最速下降法求解线性代数方程组

最速下降法求解线性代数方程组要求:对于给定的系数矩阵、右端项和初值,可以求解线性代数方程组
一、最速下降法数学理论
PP?tX?Xf(X)的负梯中,在基本迭代公式每次迭代搜索方向取为目标函数kk1kkk?t)X??f(P?取为最优步长,由此确定的算法称为最速度方向,即,而每次迭代的步长kkk下降法。

X)Xminf(kk。

现在次,获得了第,假定我们已经迭代了为了求解问题个迭代点k X出发,可选择的下降方法很多,一个非常自然的想法是沿最速下降方向(即负梯度方从k X邻近的范围内是这样。

因此,去搜索方向为 )进行搜索应该是有利的,至少在向k P???f(X).
kk P k?1进行一维搜索,由此得到第为了使目标函数在搜索方向上获得最多的下降,沿k个跌带点,即
X?X?t?f(X),kk1k?k t按下式确定其中步长因子k f(X?t?f(X))?minf(X?t?f(X)),
kkkkkk X?ls(X,??f(X)). ( 1)
k1k?k X X,XX,, ,,?k0,12是初始点,由计算就可以得到一个点列,显然,令其中0210{X}f)X(X)(f 的满足一定的条件时,由式()所产生的点列必收敛于者任意选定。

当1k极小点。

二、最速下降法的基本思想和迭代步骤
???,)(Xf(X)g. ,终止限已知目标函数及其梯度和321Xf?f(X),g?g(X)k?0.
,计算;置(1)选定初始点00000X?ls(X,?g)f?f(X),g?g(X). (2)作直线搜索:;计算
k?1kk1?k1k?kk?1?1(X,f(X))k?k?1,置,结束;用终止准则检验是否满足:若满足,则打印最优解否则,1k?1?k转(2)
(3)最速下降法算法流程图如图所示.
X
结束
三、最速下降法的matlab实现
function [x,n]=twostep(A,b,x0,eps,varargin) %两步迭代法求线性方程组Ax=b的解
if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin<3
error
return
elseif nargin ==5
M = varargin{1};
end
D=diag(diag(A)); %求A的对角矩阵
L=-tril(A,-1); %求A的下三角阵
U=-triu(A,1); %求A的上三角阵
B1=(D-L)\U;
B2=(D-U)\L;
f1=(D-L)\b;
f2=(D-U)\b;
x12=B1*x0+f1;
x =B2*x12+f2;
n=1; %迭代次数
while norm(x-x0)>=eps
x0 =x;
x12=B1*x0+f1;
x =B2*x12+f2;
n=n+1;
if(n>=M)
'); 迭代次数太多,可能不收敛! disp('Warning: return;
end
end
的解最速下降法求线性方程组Ax=bfunction [x,n]= fastdown(A,b,x0,eps) %if(nargin == 3)
eps = 1.0e-6;
end
x=x0;
n=0;
tol=1;
以下过程 % while(tol>eps)
可参考算法流程 r = b-A*x0;
d = dot(r,r)/dot(A*r,r);
x = x0+d*r;
tol = norm(x-x0);
x0 = x;
n = n + 1;
end
四、最速下降法的算例实现
A=[5 2 0;6 4 1;1 2 5];
b=[10 18 -14]';
eps=1.0e-6;
x =
-0.8750
7.1875
-5.5000 k =
60。

相关主题