问题. 牛顿迭代法求ax^3+bx^2+cx+d=0在1附近的根。(系数由用户自己输入)
因为此方法本身是数学问题这里不做讨论也无须讨论。进入我们编程的主题。
记住此法核心的公式:x = x0-f(x0)/f'(x0). 我们令x1=f(x0),x2=f'(x0),这样写起来简洁明了。
步骤: (1 ) 在1附近任意找一个实数作为x0的初始值,如此题,我们取x=1,让x0=x,即x0=1.
(2) 用初始值x0带入方程计算出f(x0)和f'(x0).即求出x1和x2;
(3) 带入上述核心公式计算出x = x0-f(x0)/f'(x0)的值。
(4) 用新产生的x替换原来的x0,为下一次迭代做准备。
(5) 若|x-x0|>=1e-5;则继续上述迭代,否则转(6).
(6) 所得x即为多远方程ax^3+bx^2+cx+d=0的根,输出。
代码如下:(经过VS2008测试无误 测试输入1,2,3,4 输出:-1.65)