Mathematica での計算に通常の for ループを使用しています。
For[i=1,i<n+1,i++, ...calculation... ]
それぞれについてi
、 function を定義する必要がありますF_i[x_,y_]:=...
。ここで、「i」は関数のラベルであると仮定します。しかし、これはMathematica の正しい式ではありません。
問題は、ラベル i で区別される複数の関数をどのように定義するかです。つまり、正しい構文は何ですか?
どうもありがとう。
Mathematica での計算に通常の for ループを使用しています。
For[i=1,i<n+1,i++, ...calculation... ]
それぞれについてi
、 function を定義する必要がありますF_i[x_,y_]:=...
。ここで、「i」は関数のラベルであると仮定します。しかし、これはMathematica の正しい式ではありません。
問題は、ラベル i で区別される複数の関数をどのように定義するかです。つまり、正しい構文は何ですか?
どうもありがとう。
あなたが何をしようとしているのか正確にはわかりませんが、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)
ここに役立つかもしれないいくつかのステップがあります。以下に 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