sympyで配列入力をlamdifyしたいと思います。Sympyは配列と組み合わせてlambdifyエラーを発生します
>>> sBeta(psi)
>>> AttributeError: 'Mul' object has no attribute 'exp'
私はそれをしようとした場合、この方法は、次のエラーが表示されます:
>>> sBeta(*psi)
>>> TypeError: <lambda>() takes exactly 1 argument (79 given)
私は今、次のエラーが表示される関数を呼び出ししようとした場合
import sympy as sym
import numpy as np
# Load Data
data = np.loadtxt("D:\data.r2023.c87.dat", skiprows=1)
# Access to columns
vza = data [:,2]
sza = data [:,4]
# var_psi is the array input
psi = (1/(np.cos(sza))) + (1/(np.cos(vza)))
var_tau, var_omega, var_psi = sym.symbols('var_tau var_omega var_psi', real = True)
sBetaFunc = sym.exp(-var_tau * var_psi)
sBeta = sym.lambdify(var_psi, sBetaFunc, modules=[“numpy”, "sympy"])
:ここに私の最初の試みでした
私はこの問題についてたくさん読んでいます。しかし、何も私の問題や私の場合に適しているようです。
非常に複雑な関数を区別するためにsympyのdiff関数を使用したいので、これはsympy関数で必要です。
ありがとうございます。
編集:今、私はこの試みた
:
import sympy as sym
import numpy as np
from sympy.abc import w, x, y, z
sBetaFunc = sym.exp(-var_tau * x)
sBeta = sym.lambdify(x, sBetaFunc, modules=["sympy"])
は今、別のエラーが表示されます。
>>> sBeta(psi)
>>> ValueError: sequence too large; cannot be greater than 32
その有用で包括的な回答をいただきありがとうございます! – petermailpan