Python_牛顿迭代法求方程的实根

import math
def f1(x,f):
    if f==0:
        return x**2-3*x+2-math.exp(x) #   函数式
    else:
        return 2*x-3-math.exp(x)      #   函数式的求导
def f2(x,f):
    if f==0:
        return x ** 3 + 2 * x ** 2 + 2 + 10 * x - 20
    else:
        return 3*x**2+4*x+10
count=0                               #   计算循环次数
x1=1.5                                #   x=1时输出小于0,x=0时输出大于0,设初始值为1.5
print("迭代初始值为:x=1.5")
i=x1-f1(x1,0)/f1(x1,1)
while (abs(x1-i)>=1e-8)&(f1(x1,1)!=0):
    #   print的格式化输出,count和x1去补前面两个空位
    print("迭代次数:%f,迭代值为:%f"%(count,x1))
    x2 = x1 - f1(x1, 0) / f1(x1, 1)
    i=x1                              #     暂时存储x1的值
    x1=x2
    count+=1



  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值