python环境下使用牛顿迭代法求任意实数立方根

要求如下图所示,编程环境为python 3.7.3 windows 32版本

一、什么是牛顿迭代法?

百度百科上说是这样

https://baike.baidu.com/item/%E7%89%9B%E9%A1%BF%E8%BF%AD%E4%BB%A3%E6%B3%95/10887580?fr=aladdin

 

推导过程如下:

一般牛顿迭代法的图名都叫做Newton-Raphson。也就是牛顿-拉弗森法

二、使用牛顿迭代法的例程

使用牛顿迭代法时,需要预先估计迭代的起点X0,可以看一下下面的例子。

具体代码如下:

执行的结果是

三、使用牛顿迭代法求立方根

仿照上例,求一个实数的立方根比如X³=a,那么可以将该式子改为X³-a=0

运行结果如下:9的立方根,以及8的立方根都计算出来了。

代码如下:

import math

a = float(input("请输入一个实数"))

 

def f(x):

    return x**3-a

 

def f_derivative(x):

    return 3*x**2

 

ep=0.00000001

xk=1

xk1=1

 

while True:

    xk1=xk

    xk=xk1-f(xk1)/f_derivative(xk1)

    print(xk1,xk)

    if math.fabs(xk-xk1)<ep:

        break

print(xk)

注意:def的函数,从冒号“:”后的下一行,一定要缩进!一定要缩进!因为python是缩进敏感语言,一定要缩进!

发布了37 篇原创文章 · 获赞 18 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/youngwah292/article/details/91432203