2013-01-10 37 views
0

我是Mathematica的新手,我很難定義某個函數的組合。在mathematica中編寫兩個函數

m1m2應地圖,使得m1: R^2 -> R^2m2:R^2->R^1其中R是真正的線

m1[eta_, zeta_] = {eta^3, zeta^3} 
m2[x_, y_] = x^2 + y^2 

m3[eta_, zeta_] = Composition[m2, m1][eta, zeta] 

在評估的最後一行,即shift+enter我得到的輸出

m2[{eta^3, zeta^3}] 

但前面回答對此應該是m3[eta,zeta]=eta^6 + zeta^6

我怎樣才能做到這一點?

+1

這是[秒](http://mathematica.stackexchange.com/q/17541/52)[時間](http://mathematica.stackexchange.com/q/17559/52)你已經交叉張貼了一個問題與對方分鐘。請給人一個回答的機會,首先! – rcollyer

回答

1

您的功能m1返回包含2個元素的列表,而您的功能m2需要2個參數。更改m1返回什麼或m2預期。在這種情況下,它可能更容易重新m2作爲

m2[{x_, y_}] = x^2 + y^2 

線索是m2[{eta^3, zeta^3}]只是那種輸出的當您提供的排序函數參數錯誤的數學給 - 它返回輸入表達式未評估。你會在學習中看到這一點。

哦,你可能想在你的函數定義中使用SetDelayed(一般寫爲:=)而不是Set(或=)。請參閱文檔,瞭解您爲什麼要這麼做。

1

寫:立方米[eta_,zeta_] =平方米@@ M1的η,ζ電]