0

我是 Mathematica 的新手,在定义某些函数组合时遇到了麻烦。

m1m2成为 映射 使得R 是实m1: R^2 -> R^2线m2:R^2->R^1

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

我怎样才能做到这一点?

4

2 回答 2

1

写: m3[eta_, zeta_] = m2@@m1[eta,zeta]

于 2013-01-11T13:05:59.057 回答
1

您的函数m1返回一个包含 2 个元素的列表,而您的函数m2需要 2 个参数。更改m1返回的内容或m2期望的内容。在这种情况下,重新定义m2

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

线索是,m2[{eta^3, zeta^3}]当您向函数提供错误类型的参数时,Mathematica 给出的那种输出——它返回未计算的输入表达式。当你学习时,你会看到很多。

哦,您可能希望在函数定义中使用SetDelayed(通常写为:=)而不是Set(或=)。请参阅文档以了解您可能想要这个的原因。

于 2013-01-10T15:49:09.460 回答