@xshangtiao (syu kami)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

python matplotlib フィッティングにて値の表示の仕方

pythonにてフィッティングをしているのですが、関数のkの値とy0のときのxの値を表示したいのですが、printの後何と書けば表示されるか知りたいです。コードは以下の通りです。よろしくお願いします。

コード

data1 = pd.read_csv("sotuken1.csv")

X = data1.loc[:,'Ekkusu']
y = data1.loc[:,'Wai']

import numpy as np

X = np.array(X)
y = np.array(y)

plt.scatter(X, y)

def f(x, C, k): # y = f(x)
return C / (1 + 2*C*k*x)

C, k = curve_fit(f, X, y)[0]
print(f"y = {C:.6} / (1 + 2{C:.6}{k:.6}x)")
print(f"k =
print(f"y0 =

x = np.arange(0,50 , 0.01)
y = f(x, C, k)
plt.plot(x, y,color = "red")
plt.show()
0 likes

1Answer

kの値はそのまま書けばよいと思います。

y0が何を指すのかはわかりませんが、関数fの返り値から引数xの値を求めたいということだと解釈します。

今回のように、関数fが初等関数で表せるなら逆関数を定義するのが良いでしょう。

def f_inverse(y, C, k) :
    return (C - y) / (2 * C * k * y)

print(f"y = {C:.6} / (1 + 2{C:.6}{k:.6}x)")
print(f"k = {k}")
print(f"x(y0) = {f_inverse(y0, C, k)}")
0Like

Your answer might help someone💌