-1

for ループを使用してリストを定義したいのですが、n-iterate の関数を使用してそれを行う必要があります。私は持っている:

初期化

In[176]:  Subscript[y, 0] = {1, 2, 3}

Out[180]:  {1,2,3}

関数:

In[181]:  F[n_] := For[l = 1, l++, l <= 3, Subscript[y, n + 1][[l]] :=Subscript[y, n][[l]]+ n]

関数を呼び出します

F[0]

そして私は得る:

In[183]:   Subscript[y, 1]

Out[183]:  Subscript[0, 1]

私は持っている必要があり{1,2,3}ます。

なぜそれがうまくいかないのか誰にも分かりますか?

4

1 に答える 1

0

エラー、問題を再現するのに苦労しています。

nあなたがベクトルに追加したいのは理解しています。ここnで、添字の数です。

ループと添え字を避けて、質問に答える別の方法を次に示します。

Clear@y;
y[0] = {1, 2, 3};
y[n_Integer] : =y[n - 1] + n

(そのまま、ベクトルに追加して、を回避できPlusます)ListablenFor

そして、それを次のように呼び出します。

y[0]
{1,2,3}

また

y[5]
{16,17,18}

または、メモ化を使用してy、次のように定義できます。

y[n_Integer] := y[n] = y[n - 1] + n

これにより、すでに計算された値が保存されます (?yたとえば、y[5] を実行した後に確認してください)。Clear y変更する場合は忘れずにy

明らかに、このような機能については、次のことを検討する必要があります。

y[n_Integer] := y[0] + Total[Range[n]]
于 2013-05-12T12:08:49.400 に答える