Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
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