最优化-牛顿法(Newton)

凸优化这里遇到了牛顿法,头疼了一会,想了想吕老师上仿真课的时候讲过但是忘了。又到了面向百度学习的时候。

牛顿法定义

Python求解方程(x3)3=0(x-3)^3=0 的根。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def f(x):
return (x-3)**3 '''定义 f(x) = (x-3)^3'''

def fd(x):
return 3*((x-3)**2) '''定义 f'(x) = 3*((x-3)^2)'''

def newtonMethod(n,assum):
time = n
x = assum
Next = 0
A = f(x)
B = fd(x)
print('A = ' + str(A) + ',B = ' + str(B) + ',time = ' + str(time))
if f(x) == 0.0:
return time,x
else:
Next = x - A/B
print('Next x = '+ str(Next))
if A - f(Next) < 1e-6:
print('Meet f(x) = 0,x = ' + str(Next)) '''设置迭代跳出条件,同时输出满足f(x) = 0的x值'''
else:
return newtonMethod(n+1,Next)

newtonMethod(0,4.0) '''设置从0开始计数,x0 = 4.0'''
文章作者: EderOdan
文章链接: ederodan.com/2019/10/26/%E6%9C%80%E4%BC%98%E5%8C%96-%E7%89%9B%E9%A1%BF%E6%B3%95%EF%BC%88Newton%EF%BC%89/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 EderOdan|梓人的博客