小编Stu*_*fyQ的帖子

使用 Scipy/Numpy- NDSolve 等效项在 Python 中求解矩阵微分方程?

我有两个 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)

python wolfram-mathematica numpy scipy odeint

5
推荐指数
1
解决办法
1万
查看次数

Pandas groupby 条件减法

我正在尝试基于条件减法创建一个新列。我想首先从 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)

python pandas

5
推荐指数
2
解决办法
446
查看次数

标签 统计

python ×2

numpy ×1

odeint ×1

pandas ×1

scipy ×1

wolfram-mathematica ×1