2011-11-13 61 views
3

評估中給出點的系統在數學

f1[x_, y_] := x^2 - 10 x + y^2 + 8; 
f2[x_, y_] := x*y^2 + x - 10 y + 8; 
f[x_, y_] := {f1[x, y], f2[x, y]} ; 
x0 = {0, 0}; 

我想要判斷x0f[x_, y_],所以f[0, 0]

我這樣做,但不工作,什麼是正確的方法是什麼?

MatrixForm[f[{x0}]] 

我得到f[{{0, 0}}]

,但要{8, 8}代替

+3

要麼定義爲f [{x_,y_}]:= {f1 ...}要麼保持原樣並使用f [Sequence @@ x0] –

+2

@DanielLichtblau,使用'f @@ x0直接。 – rcollyer

回答

12
In[61]:= f @@ x0 

Out[61]= {8, 8} 

出了什麼問題?當您評估f[{x0}]時,這等於f[{{0,0}}],它與f的定義模式不匹配。 [email protected]@x0代替Apply[f,x0]的縮寫代替x0的頭部(內部等於List[0,0],因此其頭部爲List),其中f。然後您得到f[0,0],它與f的參數模式相匹配。您然後得到正確的結果。