我在试着解这个方程:log(1+x)/x - 1/(1+x) == 2/3 * q * x**2
用于x
和q = 4e-4
我试
import numpy as np
import scipy.optimize as so
q = 4e-4
eqn = lambda x: np.log(1+x) / x - 1 / (1+x) - 2/3 * q * x**2
sol = so.fsolve(eqn, 1)[0]
print(sol)
和
q = 4e-4
eqn = lambda x: np.log(1+x) / x - 1 / (1+x) - 2/3 * q * x**2
sol = so.root_scalar(eqn, bracket=(1e-6, 1e20)).root
print(sol)
却得到荒谬的答案
我试着画出如下的方程:
答案是x ~ 20
。我怎么才能拿到这个?
2条答案
按热度按时间gr8qqesn1#
当你提供一个好的初始猜测或一个更紧的括号时,这些算法工作得最好。
yqkkidmi2#
只需修改x的init值就可以了
将输出