【问题描述】编写用牛顿迭代法求一元三次方程根的函数Nmethod(a,b,c,d)。方程为ax3 +bx2 +cx+d=0,系数a、b、c、d由主函数输入,求x在1.5附近的一个实根。求出根后,由主函数输出。牛顿迭代公式为xn+1=xn-f(xn)/f’(xn),其中f’(xn)是f(xn)在xn处的导数。设迭代到|x0-xn|≤10-5时结束。
【输入形式】a,b,c,d=eval(input(“请输入一元三次方程的系数,数据之间以逗号作为分隔符”))
【输出形式】print(“所求方程的根x为{:.2f}”.format(x))
【样例输入】2,-4,3,-6
【样例输出】所求方程的根x为2.00
【样例说明】
【评分标准】
a = 1.5
x = a
z1,z2,z3,z4=eval(input())
y1 = z1 * (x ** 3) +z2 * (x ** 2) + z3 * x +z4
y2 = 3*z1 * x ** 2 - 2*z2 * x + z3
x1 = x - y1 / y2
while abs(x - x1) >= 10**-5:
x = x1
y1 = z1 * (x ** 3) +z2 * (x ** 2) + z3 * x +z4
y2 = 3*z1 * x ** 2 - 2*z2 * x + z3
x1 = x - y1 / y2
print("所求方程的根x为{:.2f}".format(x))