python-牛顿迭代法
【题目描述】编写程序,使用牛顿迭代法求方程 在x附近的一个实根。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】请在一行中输入方程系数a、b、c、d和实数x,数据中间以空格为间隔。
【输出格式】对每一组输入的数据,输出牛顿迭代法求出的实根(格式为保留小数点后2位,四舍五入)。
【输入样例】1.0 2.0 3.0 4.0 1.0
【输出样例】-1.65
关于牛顿迭代法是什么,参考:如何通俗易懂地讲解牛顿迭代法求开方(数值分析)?
代码:
num = input() n1 = num.split(" ") n = [] for i in n1[::]: if i == '': n1.remove(i) for i in n1: n.append(float(i)) def f(x): return n[0] * pow(x, 3) + n[1] * pow(x, 2) + n[2] * pow(x, 1) + n[3] def fd(x): return 3 * n[0] * pow(x, 2) + 2 * n[1] * pow(x, 1) + n[2] def newtonMethod(assum): x = assum a = f(x) b = fd(x) if f(x) == 0.0: print(round(x, 2)) return x else: next = x - a / b # print('next x = ' + str(next)) # 输出下一条切线的值 if a - f(next) < 1e-6: print(round(next, 2)) # 设置跳出条件,同时输出满足f(x) = 0 的x的值 else: return newtonMethod(next) # 递归 newtonMethod(n[4])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律