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是缩进敏感语言,一定要缩进!

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TMS320VC5257H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值