前提・実現したいこと
Python3で1変数ベクトル値関数の微分を計算したいと思っています。例として
f(x)からf'(x)を計算したいです。ただし,xに関して離散化し,2次元配列として扱いたいと思っております。例は3次元ベクトルですが、1〜70万次元を想定しております。ある計算の一部の計算として想定しておりますので,できる限り速く計算する方法が知りたいです。
該当のソースコード
Python3
1import numpy as np 2 3x = np.linspace(-1, 1, 1000) 4y = np.array([x, x**2, np.exp(x)]).T #yは1000×3の配列 5dy = np.gradient(y, x) 6print(dy)
発生している問題・エラーメッセージ
Traceback (most recent call last): File "test.py", line 4, in <module> dy = np.gradient(y, x) File "/Users/user/.pyenv/versions/3.6.5/lib/python3.6/site-packages/numpy/lib/function_base.py", line 1013, in gradient raise TypeError("invalid number of arguments") TypeError: invalid number of arguments
試したこと
numpyのgradientを用いて計算しようと考え,スカラー関数についてはうまく計算することができましたが,ベクトル値関数では計算することができませんでした。numpyのgradientにこだわるつもりはありませんが,できるかぎり計算時間を短くしたいです。
補足情報(FW/ツールのバージョンなど)
Python 3.6.5
numpy 1.16.4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/05 14:11
2020/12/05 14:53 編集
2020/12/06 10:37
2020/12/06 11:46
2020/12/06 12:18