2

NumPy では、次の形式の微分方程式を表現しようとしていますy' = p(t)y + g(t)。ここp(t)で、 は nxn 行列、 およびg(t)は nx1 行列です。何かのようなもの:

y' = [[1,5], [2,1]] + [[e^t], [1]]

NumPy で行列を表す方法は知っていますが、変数 (2tまたは などe^t) を含む行列はどのように表すのでしょうか?

4

1 に答える 1

1

この意味での「変数」(yの関数であるなどt) は、おそらくその変数のドメインの 1 次元配列で表されるはずです。これにより、配列の次元が増加し(n, n, m)ますm(ドメインのサイズ(長さ)になりますt)。

scipy ode ソルバーを使用する予定がある場合は、それを関数として記述します。

t = np.arange(0, 10, .1)
y' = [[1,5]*len(t), [2,1]*len(t)] + [[np.exp(t)], [1]*len(t)]

次のようなことをする必要があります:

def yderiv(t):
    return [[1,5], [2,1]] + [[np.exp(t)], [1]]
于 2013-04-30T15:52:38.940 に答える