2.Newton迭代公式。k+1 = xk-Gigk-与下面选代公式比较thi=xk +αk有p = -Gi'gk,下降方向步长αk =1。11/68
11/68 k k k k x x G g +1 −1 = − 2 . Newton迭代公式。 有 与下面迭代公式比较 k k k k x = x + p +1 , 1 k k k p G g − = − k = 1。 下降方向 步长
3.Newton法算法步骤stepl.给定初始点x,精度ε>0,k:=0step2. 计算gk=Vf(x*)和G=V’ f(x*)当G,可逆时,xk+1=x*-GF'gkstep3.由方程组VQ(x)= gk +G;(x-xh)=0 解出xk+1step4. 若 IIVf(xk+1)I< 8,停止,x* = xk+1;否则,令k:=k+1,转step2。12/68
12/68 step1. 0, : 0 0 给定初始点x ,精度 k = 1 step3. ( ) ( ) 0 + = + − = k k k k 由方程组 Q x g G x x 解出x step2. ( ) ( ) 2 k k k 计算gk = f x 和G = f x k k k k Gk x x G g +1 −1 当 可逆时, = − step4. || ( )|| , ; +1 * +1 = k k 若 f x 停止,x x 否 则,令k := k + 1,转step 2。 3. Newton法算法步骤
>算法框图给定初始点x和精度8计算Vf(x),Vf(x°)停止,输出xlXo := Xi是杏[x-x°</ Vf(x) I≤是否'ra"-否vf(x)停止,输出x0计算x=x"f(x)是停止,解题失败13/68
13/68 ➢算法框图 计算 0 2 0 f x f x ( ), ( ) 0 || ( ) || f x 是 是 停止,输出x 0 ( ) 0 2 0 f x = 是 否 停止,解题失败 ( ) ( ) 2 0 0 1 0 f x f x x x 计算 = − 1 0 | | x x − 否 停止,输出x 1 否 给定初始点x 0和精度 0 1 x := x
例1:求解minf(x) =arctantdt解:取x0=1,计算:1Vf(x) = f(x) =arctanx, "f(x) = f"(x)21+xVf(x*)kk+1迭代过程如下表:计算x=xV"f(xh)f"(x")kAf'(x*)x010.50000.78541-0.5708-0.51781.325820.11690.11631.1373-0.00106114/68
14/68 例1: = x f x tdt 0 求解 min ( ) arctan 解: 取x 0=1,计算: 2 2 1 1 ( ) ( ) arctan , ( ) ( ) x f x f x x f x f x + = = = = 迭代过程如下表: 2 0.1169 0.1163 1.137 3 -0.001061 1 -0.5708 -0.5178 1.3258 0 1 0.7854 0.5000 k k x ( ) k f x ( ) k f x ( ) ( ) 2 1 k k k k f x f x x x = − + 计算
例2:用Newton法求解 min f(x)=xi+25x +xix2取x° =(2,2),ε=10-6解Vf(x)=[4xi +2xix2100x2 + 2xx217[12x? + 2x?编写M文件nwfun2.m:(1)编写M文件detaf.m如下:'clcfunctionf=detaf(x);x=[2;2];f=x(1)^4+25*x(2)^4+x(1)^2*x(2)^2;[f0,g1,g2]=nwfun(x)while norm(g1)>0.00001(2)编写M文件nwfun.m如下:p=-inv(g2)*g1,p=p/norm(p)function [f,df,d2f|=nwfun(x);t=1.0,f=detaf(x+t*p)f=x(1)^4+25*x(2)^4+x(1)^2 *x(2)^2;whilef>fodf(1)=4*x(1)^3+2*x(1)*x(2)^2;t=t/2,f=detaf(x+t*p),%步长减半df(2)=100 *x(2)^3+2*x(1)^2*x(2);endd2f(1,1)=12 *x(1)^2+2 *x(2)^2;X=x+t*pd2f(1,2)=4*x(1)*x(2);[f0,g1,g2]=nwfun(x)d2 f(2,1)=d2f(1,2);endd2f(2,2)=300*x(2)^2+4*x(1)*x(2);
15/68 2 2 2 1 4 2 4 min f (x) = x1 + 25x + x x (2,2) , 0 T x = 6 10− = 例2: 用Newton法求解 取 T f (x) [4x 2x x 100x 2x x ]2 2 1 3 2 2 1 2 3 = 1 + + + + = 2 1 2 1 2 2 1 2 2 2 2 2 1 4 300 4 12 2 4 x x x x x x x x f 解 (1) 编写M文件detaf.m如下: function f=detaf(x); f=x(1)^4+25*x(2)^4+x(1)^2*x(2)^2; (2)编写M文件nwfun.m如下: function [f,df,d2f]=nwfun(x); f=x(1)^4+25*x(2)^4+x(1)^2*x(2)^2; df(1)=4*x(1)^3+2*x(1)*x(2)^2; df(2)=100*x(2)^3+2*x(1)^2*x(2); d2f(1,1)=12*x(1)^2+2*x(2)^2; d2f(1,2)=4*x(1)*x(2); d2f(2,1)=d2f(1,2); d2f(2,2)=300*x(2)^2+4*x(1)*x(2); 编写M文件nwfun2.m: clc x=[2;2]; [f0,g1,g2]=nwfun(x) while norm(g1)>0.00001 p=-inv(g2)*g1',p=p/norm(p) t=1.0,f=detaf(x+t*p) while f>f0 t=t/2,f=detaf(x+t*p), %步长减半 end x=x+t*p [f0,g1,g2]=nwfun(x) end