0
いくつかのデータに2つのパラメータ(Km、kcat)と4つの入力と出力を持つ関数をフィットさせたいと思います。 関数である:Python.scipy:Curve_fit複数の入力と出力を持つ関数
def dxdt(x, t, Km, kcat):
y = np.zeros(4)
reaction1 = Km * x[2] * x[0]
reaction2 = kcat * x[3]
y[0] = - reaction1
y[1] = reaction2
y[2] = reaction2 - reaction1
y[3] = reaction1 - reaction2
return y
例えば、データがあってもよい:
x = [[7.2, 6.1, 5.5, 4.1, 3.3, 2.1, 1.9, 0.2], [0., 1.1, 2.2, 3.5,
4.5, 6.0, 6.6, 7.3], [10., 9.5, 8., 7.1, 6.8, 5., 5.9, 9.9], [0., 1.2,
3., 4.5, 5., 6.1, 2.5, 0.4 ]]
タイムスパンと
:
t = range(9)
を固定開始値:
initial_values = [7.2., 0., 10., 0.]
I関数を定義するパラメータの特定のセットのための出力計算する:今すぐ
def y(timerange, a, b):
result = odeint(dxdt, initial_values, timerange,
args=(a, b))
return result.transpose()
を、私は適切に)(scipy.optimize.curvefitを使用する方法がわかりません。 関数はR^n→Rではなく、R^n-> R^nからではなく、curve_fitの例しか見ていません。 これも可能ですか?
ありがとうございました!それは私のために働く。 2番目の出力は何を意味しますか? (1つ) 出力: 配列([0.04744236,0.33046273])、1 – PascalIv
ドキュメントによると:«整数フラグ。 1、2、3、または4に等しい場合、解が見つかりました。それ以外の場合は、解決策が見つかりませんでした。どちらの場合でも、オプションの出力変数 'mesg'はより多くの情報を提供します。» – JPG