Mapleトップページ
サポート・マニュアル

繰り返し計算

パラメータを動かしながら計算させるような場合は、for 文を用います。パラメータの変化範囲は適宜指定することができます。

> for k from 1 to 6 do
x^(2^k) - 1 = factor(x^(2^k) - 1);
end do;

x2 - 1 = (x - 1)(x + 1)
x4 - 1 = (x - 1)(x + 1)(x2 + 1)
x8 - 1 = (x - 1)(x + 1)(x2 + 1)(x4 + 1)
x16 - 1 = (x - 1)(x + 1)(x2 + 1)(x4 + 1)(x8 + 1)
x32 - 1 = (x - 1)(x + 1)(x2 + 1)(x4 + 1)(x8 + 1)(x16 + 1)
x64 - 1 = (x - 1)(x + 1)(x2 + 1)(x4 + 1)(x8 + 1)(x16 + 1)(x32 + 1)

繰り返しのステップ幅(刻み幅)を変更するには、by 句で指定します。

> for i from 1 to 5 by 2 do
dsolve(diff(y(x),x$i)=y(x)+x^i, y(x));
end do;

for 文は入れ子にすることもできます。入れ子にした for 文はデフォルトで出力が省略されます。入れ子の for 文出力を表示するようにするには、(入れ子のレベルに応じて)printlevel 値を 2 以上にセットします。

> M := Matrix([[cos(x), -sin(x)], [sin(x), cos(x)]]);

次の例は、行列 M に対して各要素を変数 x で微分する計算を行っています。

> printlevel := 2:
for i from 1 to 2 do
for j from 1 to 2 do
diff(M[i,j], x);
end do;
end do;

-sin(x)
-cos(x)
cos(x)
-sin(x)

同じ計算を in 句を用いて行うこともできます。in 句は行列やベクトル、配列などのすべての要素に対して演算するときに利用できます。

> printlevel := 1:
for t in M do
diff(t, x);
end do;

-sin(x)
cos(x)
-cos(x)
-sin(x)



お問い合わせ サイバネットシステム株式会社 システムCAE事業部
TEL: 03-5297-3299 (受付時間 9:00〜12:00 / 13:00〜17:30 ※土日祝及び弊社休業日を除く)
メールでのお問い合わせ  お問い合わせフォーム  お問い合わせ一覧

モデルベース開発