#include "stdio.h"
#define F(x) (x*x+2*x+3) //目标函数
#define dF(x) (2*x+2) //函数一阶导
#define dF_(x) 2 //函数二阶导
#define update(x) (x-dF(x)/dF_(x)) //x更新规则
void main()
{
double x0, y0, x1, y1;
int i;
x0 = 2;
y0 = 11; //设定初值
for (i = 0; i < 10; i++)
{
x1 = update(x0);
y1 = F(x1);
x0 = x1;
y0 = y1;
}
printf("x=%f,y=%f\n", x0, y0);
}
运行结果: