您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页Newton切线法

Newton切线法

来源:小侦探旅游网
Newton切线法

【实验目的】

掌握一维收搜索中Newton切线法求解一维最优化问题。 【实验学时】 2学时

【算法原理】 设

:R1R1在已获得的搜索区间

[a,b]内具有连续二阶导数,求

atbmin(t).

因为(t)在

[a,b]上可微,故(t)在[a,b]上有最小值,令(t)0.

[a,b]中经过k次迭代已求得方程(t)0的一个近似根tk.过(tk,(tk))下面不妨设在区间

作曲线y(t)的切线,其方程是

y(tk)(tk)(ttk). (1)

然后用这条切线与横轴交点的横坐标在令y0的解出来,即

tk1作为根的新的近似(如图4所示).它可由方程(4.4)

tk1tk(tk)(tk).

这就是Newton切线法迭代公式。

图1

【算法步骤】

已知(t),(t)表达式,终止限。

(1)确定初始搜索区间[a,b],要求'(a)0,'(b)0。 (2)选定

t0。

1

(3)计算(4) 若

tt0'(t0)/\"(t0)。

|tt0|,则t0t,转(3)

;否则转(5)。

(5) 打印t,(t),结束。

Newton切线法的计算流程如图5所示。

图2

【程序代码】

%牛顿切线法

%函数原型X=NewtonSearch(f,a,b,eps)

%返回值为长度为3的向量X,分别表示最小值点、最小值、搜索次数 %f:目标函数,a:搜索区间下限,b:搜索区间上限,eps:终止限 function X=NewtonSearch(f,a,b,eps)

syms x;

2

f = f(x);

f1 = diff(f,x); f2 = diff(f,x,2); t0 = (a+b)/2; z = 1; while 1 x = t0;

t = t0-subs(f1)/subs(f2); if abs(t-t0)y = subs(f); X = [x y z]; return; end

if z>1000

disp('搜索次数超过1000次,未找到最小值,结束') x = NaN; y = NaN; return; end

t0 = t; z = z+1; end

3

4

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务