用牛顿迭代法求方程的根(C语言)
题目要求:牛顿迭代法是一种重要的基本的求方程根的方法。现有方程为axˆ3+bxˆ2+cx+d=0,系数a,b,c,d的值一次为1,2,3,4,由主函数输入。求x在1附近的一个实根。
思路:
- 首先,设fx=axˆ3+bxˆ2+cx+d,则可在坐标图上画出fx。此时fx与横坐标的交点即为方程的,现在来求这个解的值
- 当x0=1时,fx=ax0ˆ3+bx0ˆ2+cx0+d
- 在(x0,fx)上作fx的切线,切线的斜率f为fx求导,得f=3axˆ2+2bx+c,交横坐标于(x1,0)点
- 根据三角函数定理,有f=fx/(x0-x1),转换得x1=x0-fx/f
- 可以看到,x1比x0离方程的解更接近
- 此时在(x1,fx1)上进行上述同样的操作。可以看到,切线与横坐标的交点离方程的解越来越近
- 如此循环,可以设置当(x1-x0)的绝对值小于1e-5即停止循环,最后的x1即为方程的近似解,可以通过放大或缩小1e-5的值来获得更为粗略或者精确的解
如图所示:

以下是具体代码:
#include <stdio.h>
#include

最低0.47元/天 解锁文章
3万+





