2017-08-10 32 views
0

如何用索引變量替換符號?

import sympy as s 
 
H0,z,g=s.symbols('H0 z g') 
 
def f(H0,g,z): 
 
    H1=(6/H0)/(g+(6-g)*(1+z)**3) 
 
    return H1

如何更換,其中x [0]和X [1]中的符號H0和g H1? (不通過置換,因爲我的實際H1是一個很大的表達式)

+1

如何調用'f(x [0],x [1],z)'? – Stelios

+0

什麼是'x [0]'和'x [1]'?你可以請[編輯]你的問題來澄清你想達到的目標。最好給我們一個示例代碼和期望的結果,或者告訴我們什麼不起作用。另請閱讀[mcve]。 – Wrzlprmft

+0

我想優化H1。我得到錯誤TypeError:f()缺少1所需的位置參數:'g'。所以我想在一個變量中定義我的函數 – Shareef

回答

0

如果你想f有一個參數,怎麼樣:

def f(x): 
    H0, g, z = x 
    H1=(6/H0)/(g+(6-g)*(1+z)**3) 
    return H1 

或者,如果你想要x和z是獨立的參數,然後

def f(x, z): 
    H0, g = x 
    H1=(6/H0)/(g+(6-g)*(1+z)**3) 
    return H1