牛顿迭代法-最优化方法

原理

五次及以上多项式方程没有根式解,这个是被伽罗瓦用群论做出的最著名的结论。但牛顿迭代法将探索高阶函数的问题简化为探索切线的问题。


牛顿迭代法-最优化方法_第1张图片
image.png

详细描述:
如何通俗易懂地讲解牛顿迭代法? - 马同学 - CSDN博客

代码实践

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'''

你可能感兴趣的:(牛顿迭代法-最优化方法)