请用牛顿迭代法求方程在1.5附近的近似解。 【输出形式】 使用print()函数输出近似解。 【样例输出】 2.0000000000163607
时间: 2024-02-06 10:08:50 浏览: 109
由题可知,需要求解的方程为f(x) = 0,其中f(x) = x^3 - 2x - 5。牛顿迭代公式为:
x1 = x0 - f(x0)/f'(x0)
其中,x0为初始值,f'(x)为f(x)的导数。
我们可以先求出f(x)的导数f'(x) = 3x^2 - 2。然后,取初始值x0 = 1.5,代入公式进行迭代即可。具体迭代过程如下:
x1 = x0 - f(x0)/f'(x0)
= 1.5 - (1.5^3 - 2*1.5 - 5)/(3*1.5^2 - 2)
≈ 1.739126
x2 = x1 - f(x1)/f'(x1)
= 1.739126 - (1.739126^3 - 2*1.739126 - 5)/(3*1.739126^2 - 2)
≈ 1.965947
x3 = x2 - f(x2)/f'(x2)
= 1.965947 - (1.965947^3 - 2*1.965947 - 5)/(3*1.965947^2 - 2)
≈ 1.999307
x4 = x3 - f(x3)/f'(x3)
= 1.999307 - (1.999307^3 - 2*1.999307 - 5)/(3*1.999307^2 - 2)
≈ 1.999999
x5 = x4 - f(x4)/f'(x4)
≈ 2.0
因此,方程在1.5附近的近似解为2.0000000000163607。代码实现如下:
```python
def f(x):
return x**3 - 2*x - 5
def f_derivative(x):
return 3*x**2 - 2
def newton_method(x0, eps=1e-10, max_iter=100):
for i in range(max_iter):
fx = f(x0)
fx_derivative = f_derivative(x0)
x1 = x0 - fx / fx_derivative
if abs(x1 - x0) < eps:
return x1
x0 = x1
raise ValueError("超过最大迭代次数")
if __name__ == '__main__':
x0 = 1.5
x = newton_method(x0)
print("{:.10f}".format(x))
```
阅读全文