方程式を解こうとしていますbrentq
が、符号の変化がないため使用できません。の値をどのように見つけることができますr
か?
>>> import numpy as np
>>>
>>> def f(r):
return 0.1 + 1 / (2 * r ** 2) - 2 / (3 * np.sqrt(r ** 3))
方程式を解こうとしていますbrentq
が、符号の変化がないため使用できません。の値をどのように見つけることができますr
か?
>>> import numpy as np
>>>
>>> def f(r):
return 0.1 + 1 / (2 * r ** 2) - 2 / (3 * np.sqrt(r ** 3))
符号の変化があると思いますが、次の方法で解決できますfsolve
。
from scipy.optimize import fsolve
import numpy as np
def f(r):
return 0.1 + 1 / (2 * r ** 2) - 2 / (3 * np.sqrt(r ** 3))
r = fsolve(f, 1)
f(r)
結果:
r = 2.22213541
編集
2 つの解決策があります。
import numpy as np
def f(r):
return 0.1 + 1 / (2 * r ** 2) - 2 / (3 * np.sqrt(r ** 3))
r = np.linspace(0.6, 3, 1000)
plot(r, f(r))
出力: