我是Mathematica的新手,我无法定义某种功能组合。
让m1
和m2
成为m1: R^2 -> R^2
和m2: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
我该怎么做?
答案 0 :(得分:1)
您的函数m1
返回包含2个元素的列表,而您的函数m2
需要2个参数。更改m1
返回的内容或m2
期望的内容。在这种情况下,将m2
重新定义为
m2[{x_, y_}] = x^2 + y^2
线索是m2[{eta^3, zeta^3}]
只是Mathematica在为函数提供错误的参数时给出的输出 - 它返回未评估的输入表达式。你学习的时候会看到很多。
哦,您可能希望在函数定义中使用SetDelayed
(通常写为:=
)而不是Set
(或=
)。请参阅文档,了解您可能需要的原因。
答案 1 :(得分:1)
写:m3 [eta_,zeta_] = m2 @@ m1 [eta,zeta]