python入门学习笔记003--趣学Python算法--第3例牛顿迭代法求方程根
问题描述编写用牛顿迭代法求方程根的函数。方程为ax3+bx2+cx+d=0,系数a、b、c、d由主函数输入,求x在1附近的一个实根。求出根后,由主函数输出。牛顿迭代法的公式:x=x0-[f(x0)/f'(x0)],设迭代到|x-x0|≤10-5时结束。
中心思想
牛顿迭代法是取x0之后,在这个基础上找到比x0更接近的方程根,一步一步迭代,从而找到更接近方程根的近似根。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def solution(a,b,c,d): x = 1.5 x0 = x #f用来描述方程的值,fd用来描述方程求导之后的值 f = a * x0 * x0 * x0 + b * x0 * x0 + c * x0 + d fd = 3 * a * x0 * x0 + 2 * b * x0 + c h = f / fd x = x0 - h #求更接近方程根的x的值 while abs (x - x0)> = 1e - 5 : x0 = x f = a * x0 * x0 * x0 + b * x0 * x0 + c * x0 + d fd = 3 * a * x0 * x0 + 2 * b * x0 + c h = f / fd x = x0 - h return x print ( "请输入方程的系数:" ) a,b,c,d = map ( float , input ().split()) print ( "方程的参数为:" ,a,b,c,d) x = solution(a,b,c,d) print ( "所求方程的根为x=%.6f" % x) |
分类:
趣学python算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?