0

Pythonを使用して、定数を定義せずに次のシステムを解決したいと思います。

dx1(t)/dt = - kf1*x1(t)*x2(t) + kr1*x3(t)

dx2(t)/dt = - kf1*x1(t)*x2(t) + kr1*x3(t)

dx3(t)/dt = kf1*x1(t)*x2(t) - kr1*x3(t) - k2*(x3(t) - x4(t))

dx4(t)/dt = k2*(x3(t) - x4(t)) + kf3*x5(t)*x6(t) - kr3*x4(t)

dx5(t)/dt = -kf3*x5(t)*x6(t) + kr3*x4(t)

dx6(t)/dt = -kf3*x5(t)*x6(t) + kr3*x4(t)

x1(0)=x1_0,  x2(0)=x2_0 and x(3)=x(4)=x(5)=x(6)=0

kf1,kr1,k2,kf3,kr3,x1_0 and x2_0実数に置き換えずに系を解きたい

コメント: (3)、(4)、および (5) が中間生成物である DNA 鎖置換反応の反応速度論を説明しています。

(1) + (2) <--> (5) + (6)

sympy を使用して、定数をシンボルとして定義しようとしましたが、成功しませんでした

from sympy import *

x1,x2,x3,x4,x5,x6 =symbols('x1 x2 x3 x4 x5 x6', cls=Function)

kf1,kr1,k2,kf3,kr3 = symbols("kf1 kr1 k2 kf3 kr3")

diffeqq1=Eq(x1(t).diff(t), - kf1*x1*x2 + kr1*x3)
diffeqq2=Eq(x2(t).diff(t), - kf1*x1*x2 + kr1*x3)
diffeqq3=Eq(x3(t).diff(t), kf1*x1*x2 - kr1*x3 - k2*(x3 - x4))
diffeqq4=Eq(x4(t).diff(t), k2*(x3 - x4) + kf3*x5*x6 - kr3*x4)
diffeqq5=Eq(x5(t).diff(t), -kf3*x5*x6 + kr3*x4)
diffeqq6=Eq(x6(t).diff(t), -kf3*x5*x6 + kr3*x4)

dsolve(system,[x1,x2,x3,x4,x5,x6])

私が望む結果は、x1、x2、x5、x6 と定数の間の関数です。

4

1 に答える 1