Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
seq - 式列の作成
使い方
seq(f, i = m..n)
seq(f, i = m..n, step)
seq(f, i = 1..m, step)
seq(f, i = x)
seq(f, i in x)
seq(m .. n, step)
パラメータ
f
-
任意の式
i
名前
m, n
数値
x
式
step
(オプション) 数値
説明
seq コマンドは値の式列を作るために用いられます。もっとも典型的な使い方は、seq(f(i), i = 1..n) で、式列 を生成します。より一般に、seq(f(i), i = m..n) は、式列 を生成します。
seq(f(i), i = x) の使い方は、x のそれぞれの被作用子または入力に f を適用した式列を生成します。ここで x はほとんどの場合集合またはリストですが、和や積のように op が適用できる他のどんなデータ構造でも構いません。x に tables や rtables が入力されると、x は被作用子として読み込まれません。この形の seq コマンドは、string (文字列) の中の文字に繰り返し適用することもできます。
seq(m..n) と seq(m..n, step) の使い方は、m から数値の式列を生成し、次に m + step を生成していきます。最後の値は n より大きくはなりません。step が省略された場合、デフォルトの増分は 1 になります。
seq コマンドは for ループ処理に関連しています。最初の 2 つの seq の使い方を正確に理解するには、以下に示すように for ループを用いて定義するとよいでしょう。ここで、式 f は通常 i の関数を表します。
seq(f, i=m..n) == S := NULL;
old := i;
for i from m to n do S := S,f end do;
i := old;
S; # 計算結果
seq(f, i=x) == S := NULL;
for i in x do S := S,f end do;
注意 : 上記のように、seq を使用するほうが、for ループ処理を行うよりも効率的です。これは for ループ処理においては、最終的な結果を構築する過程で多くの中間的な和や積が作られるからです。特に、seq を使う場合のコストは式列の長さに比例しますが、for ループでは 2 乗に比例します。
注意 : 端点 m と n は literal の定数 (整数、分数、浮動小数点数または文字) に評価される必要があります。特別な場合として、m は infinity (無限大) に評価されてもよく、n は -infinity (マイナス無限大) に評価されても構いません。m が n より大きいとき、seq は空の式列 (NULL) を返します。
注意 : インデックス変数 i は seq の呼び出しに対して private ではありません。インデックス変数がプロシージャ内でローカルであると常に明示的に宣言することを推奨します。
x がスパース Matrix、Vector または rtable である場合、0 でないエントリーだけが読み込まれます。そうでなければ、indexing function もしくは storage にかかわらず、オブジェクトの全インデックススペースが読み込まれます。
seq と同様に働く add と mul コマンド (seq が式列を作るのに対して、この 2 つのコマンドはぞれぞれ和と積を作ることを除けば同様に働く) も参照してください。
seq(f(i), i in x) の使い方は seq(f(i), i = x) と等しくなります。
procedure parameter 修飾子、seq がある場合、これはプロシージャの呼び出しの中で、特定の型の複数引数が単一のパラメータに (式列として) 割り当てられることを宣言します。
スレッド安全性
seq コマンドは、Maple 15 以後スレッドセーフです。ただし、f の評価自体がスレッドセーフである場合に限ります。 さらに、インデックス変数 i が、スレッド間で共有されないことが必要です。ローカルのプロシージャの使用を推奨します。
スレッド安全性に関する詳細は、index/threadsafe を参照してください。
例
seq( i^2, i=1..5 );
seq( sin(Pi*i/6), i=0..6 );
seq( x[i], i=1..5 );
X := [seq( i, i=0..6 )];
{seq( i^2 mod 7, i=X )};
Y := [seq( i^2, i=X )];
[seq( [X[i],Y[i]], i=1..nops(X) )];
seq( i, i="Hello" );
seq( i, i="a".."f" );
[seq( i, i=0..-infinity )];
L:=[seq(i,i=1..10,2)];
seq(i/2, i in L);
A:=Matrix([[seq(i,i=1..3)],[seq(i,i=4..6)]]);
s:=seq(i, i in A);
seq(0..100,10);
C := proc(f,x) local i; # declare index variable to be local [seq( coeff(f,x,i), i=0..degree(f,x) )]; end proc:
C( 2*x-4+x^3, x );
T := table({color="red",size="XL"});
seq( e, e=eval(T) ); #eval required for tables
関連項目
add、dollar、for、map、mul、op、sequence、The seq Modifier、Threads[Seq]
Download Help Document