0

Mathematica での計算に通常の for ループを使用しています。

For[i=1,i<n+1,i++, ...calculation... ]

それぞれについてi、 function を定義する必要がありますF_i[x_,y_]:=...。ここで、「i」は関数のラベルであると仮定します。しかし、これはMathematica の正しい式ではありません。

問題は、ラベル i で区別される複数の関数をどのように定義するかです。つまり、正しい構文は何ですか?

どうもありがとう。

4

2 に答える 2

1

あなたが何をしようとしているのか正確にはわかりませんが、for ループが Mathematica で進むべき道ではないことは確かです。Mathematica にはすでにパターン マッチングがあり、おそらくループは必要ありません。

このようなものはどうですか

f[i_][x_,y_]:= i(x+y) 

またはこのようなもの

f[s_String][x_,y_]:=StringLength[s](x+y)

あるいは

f[s_,x_,y_]:=StringLength[s](x+y)
于 2012-11-19T14:25:27.553 に答える
0

ここに役立つかもしれないいくつかのステップがあります。以下に 2 つのバージョンがあり、2 番目のバージョンiには関数定義の RHS の値が含まれています。

n = 2;

For[i = 1, i < n + 1, i++,
 f[i][x_, y_] := (x + y)*i]

?f

グローバル`f

f[1][x_,y_] := (x+y) 私は

f[2][x_,y_] := (x+y) 私は

Clear[i]

f[2][2, 3]

5 私

Quit[]

n = 2;

For[i = 1, i < n + 1, i++,
 With[{j = i},
  f[i][x_, y_] := (x + y)*j]]

?f

グローバル`f

f[1][x$ ,y$ ] := (x$+y$) 1

f[2][x$ ,y$ ] := (x$+y$) 2

Clear[i]

f[2][2, 3]

10

于 2012-11-19T13:56:34.593 に答える