0

方程式を解こうとしていますbrentqが、符号の変化がないため使用できません。の値をどのように見つけることができますrか?

>>> import numpy as np
>>> 
>>> def f(r):
    return 0.1 + 1 / (2 * r ** 2) - 2 / (3 * np.sqrt(r ** 3))
4

1 に答える 1

1

符号の変化があると思いますが、次の方法で解決できます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))

出力:

ここに画像の説明を入力

于 2013-04-09T23:02:54.440 に答える