我正在尝试求解方程
f(x) = cos(x) - sqrt(x)
在 python 中使用 Newton-Raphson 方法
f'(x) = -sin(x) - (1/2*sqrt(x))
对于我的初步猜测,我正在尝试从 0 到 4 的值。它在 0.00001 到 2.45 的范围内工作正常
问题是超过 2.45,它输入虚数(复数)。我如何处理生成复数?
import numpy as np
def eqn(x):
return np.cos(x) - np.sqrt(x)
def eqn_derivation(x):
return (-(1/(2*(np.sqrt(x)))) - (np.sin(x)))
def new-raphson(eqn,eqn_derivation,start_guess,eps):
x0=start_guess
if funDeriv(x0) != 0:
x1=x0-fun(x0)/funDeriv(x0)
while np.abs(x1-x0)>eps:
x0=x1
if funDeriv(x0) != 0:
x1=x0-fun(x0)/funDeriv(x0)
return x1
Wolfram Alpha 建议第二次迭代输出复数。我不确定如何返回/生成/转换/处理返回复数的函数值