下载此文档

一维搜索牛顿法.docx


文档分类:高等教育 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
2013-2014 (1)专业课程实践论文
题目:一维搜索牛顿法
一、算法理论
牛顿法是一种函数逼近法,基本思想是:在极小点附近用 函数的二阶泰勒多项式近似代替目标函数,从而求得目标函数 的极小点的近似值。
对f (x)在xk点2013-2014 (1)专业课程实践论文
题目:一维搜索牛顿法
一、算法理论
牛顿法是一种函数逼近法,基本思想是:在极小点附近用 函数的二阶泰勒多项式近似代替目标函数,从而求得目标函数 的极小点的近似值。
对f (x)在xk点二阶泰勒展开:
f (x) = f(X ) + " )(X f ) + 2 f "(xk )(X - Xk )2 + 心-Xk )2) 略去高阶项得
f (x)牝 f (x)+「*)(x—x)+2Ek)(x一xk)2
两边对 x 求导,f '(x)机 f '(x ) + f "(x )(x 一 x )
令 f '(x)=0 ,得到
f \ x )
— f "(x ) k
x =x
k+1 k
f \ x )
1
f "(x )
k
作为新的迭代点,继续迭代,直到达到精度,这样就得到了
函数f的一个驻点
。以上过程即Newton法。
二、算法框图
停,失败
X砰1
七甘=妙TL) /S)
三、算法程序
#include<iostream>
#include<> using namespace std;
double fun(double t)
{
return (t*t*t-2*t+1);
}
double dfun(double t)
{
return (3*t*t-2);
}
void NewtonIterative(double(*pfun)(double t),double (*pdfun)(double t)) {
int maxflag=1000,k=1;
double t0=1,err=,t;
do
{
t0=t;
t=t0-pfun(t0)/pdfun(t0);
k++;
}while(fabs(t-t0)>err&&k<maxflag);
if(k>=maxflag)
cout<<endl<<"牛顿迭代失败!迭代次数为k="<<k<<endl;
else
{
cout<<endl<<"牛顿迭代

一维搜索牛顿法 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人suijiazhuang2
  • 文件大小126 KB
  • 时间2022-07-18
最近更新