题目:编写程序用梯度下降法求解
f(x)=a∗x3+b∗x2+c∗x+d
的局部最小值
我的思路是迭代求得函数
f′(x)
的零点。
S1:选择一个起始点
x0
,求出
f′(x0)
,那么容易求出在
x0
这一点做函数
f(x)
的切线,与x轴的交点为
x0−f′(x0)f(x0)
S2:那么令
x1=x0−f′(x0)f(x0)
,重复S1,则有
xk=xk−1−f′(xk−1)f(xk−1)
.
S3:终止条件:
|f′(xk)−f′(xk−1)|<eps
但是笔试题中还给出了
xold
和
xnew
,我就不是很懂题目的意思了,好像也没有给出编程的语言,我最后写的乱七八糟的,希望能进入面试环节吧。