![](/img/trans.png)
[英]Getting an expression over a horizon for a given recursive equation in sympy/numpy
[英]Sum SymPy expression over NumPy array
所以,如果我這樣做
import sympy as sp
import numpy as np
u = np.random.uniform(0, 1, 10)
w, k = sp.symbols('w k')
l = sum(1 - sp.log(k + w) + sp.exp(k + w) for k in u)
我得到了我想要(通過象征性的u
作為一個函數w
)。 但是,編寫它會更有用
f = 1 - sp.log(k + w) + sp.exp(k + w)
l = sum(f for k in u)
但后來我明白了
10*exp(k + w) - 10*log(k + w) + 10
這是怎么回事? 有沒有辦法得到我想要的金額? (SymPy有幾種求和整數的方法,但我沒有找到一個用於數組的方法)(版本:Python 2.7.6,NumPy 1.8.1,SymPy 0.7.4.1)
問題是沒有為每個k
評估f
。 試試這個:
sum([f.subs(dict(k=k)) for k in u])
它會給你正確的結果。 其中subs()
被用於強制的評價f
對的每個值k
。
使fa函數返回結果計算是需要在這里發生的,以使其按照您的方式工作。
f = lambda k,w : 1 - sp.log(k + w) + sp.exp(k + w)
l = sum(f(k,w) for k in u)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.