0

私はMathematicaに不慣れで、関数の特定の構成を定義するのに苦労しています。

Rが実数直線であるようなマップm1になりましょう。m2m1: R^2 -> R^2m2: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 に答える