我有两个 numpy 数组:9x9 和 9x1。我想求解离散时间点的微分方程,但在让 ODEInt 工作时遇到问题。我确实不确定我是否在做正确的事。
对于 Mathematica,方程是:
Solution = {A[t]} /. NDSolve[{A'[t] == Ab.A[t] && A[0] == A0}, {A[t]}, {t, 0, .5}, MaxSteps -> \[Infinity]];
time = 0.25;
increment = 0.05;
MA = Table[Solution, {t, 0, time, increment}];
Run Code Online (Sandbox Code Playgroud)
其中 Ab 是 9x9 矩阵,A0 是 9x1 矩阵(初始)。在这里,我解决了时间问题,生活很美好。
在Python实现中,我有以下代码,它给了我错误的答案:
from scipy.integrate import odeint
from numpy import array, dot, pi
def deriv(A, t, Ab):
return dot(Ab, A)
def MatrixBM3(k12,k21,k13,k31,k23,k32,delta1,delta2,delta3,
w1, R1, R2):
K = array([[-k21 -k23, k12, k32, 0., 0., 0., …Run Code Online (Sandbox Code Playgroud) 我正在尝试基于条件减法创建一个新列。我想首先从 A 列对数据框进行分组,然后取 C 的行值,其中 B 是最小值,然后从 C 列中的所有值中减去该值。
import pandas as pd
data = [
["R", 1, 2],
["R", 2, 4],
["R", 3, 6],
["R", 4, 8],
["S", 0, 5],
["S", 1, 4],
["S", 2, 1],
["S", 3, 3]]
df = pd.DataFrame(data=data, columns=["a", "b", "c"])
df
Out[1]:
a b c
0 R 1 2
1 R 2 4
2 R 3 6
3 R 4 8
4 S 0 5
5 S 1 4
6 S 2 1
7 …Run Code Online (Sandbox Code Playgroud)