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
LinearAlgebra[IsDefinite] - 行列が正定値または負定値かを判定
使い方
IsDefinite(A, q)
パラメータ
A - 正方行列
q - query = attribute の形の等式で attribute は 'positive_definite', 'positive_semidefinite', 'negative_definite', 'negative_semidefinite' のいずれか
説明
IsDefinite(A, query = 'positive_definite') は、A が実対称または複素エルミート行列であってすべての固有値が正の値であることが確定すれば true を返します。デフォルトは query = 'positive_definite' であるため、このコマンドは、IsDefinite(A) と同じです。
同様に、実対称または複素エルミート行列に対して、以下の呼び出し手順は指定された結果を返します。
IsDefinite(A, query = 'positive_semidefinite') はすべての固有値が非負の値であることが確定すれば true を返します。
IsDefinite(A, query = 'negative_definite') はすべての固有値が負の値であることが確定すれば true を返します。
IsDefinite(A, query = 'negative_semidefinite') はすべての固有値が非正の値であることが確定すれば true を返します。
固有値が上で述べたものとは異なっていることが確定すれば、false の値が返されます。
要求された判定 に答えを出せない場合、このルーチンは、判定が true となる場合に満たされるべき条件を表わす論理式を返します。
正定値の定義は、すべての列ベクトル x に対して、HermitianTranspose(x) . A . x > 0 となることです。
半正定値、負定値、半負定値の定義は等号入りの不等号にしたり不等号を逆向きにすることにより得られます。
実非対称(複素非エルミート)行列に対して、定値性は A の対称 (エルミート) 部分、すなわち 1/2*(A+HermitianTranspose(A)) を考察することによって確かめられます。
実非対称行列の場合、対称な部分、1/2*(A+Transpose(A)) は A と同じ定値性を持ちます。
この関数は LinearAlgebra パッケージの一部ですから、コマンド with(LinearAlgebra) を実行した後にのみ IsDefinite(..) の形で使うことができます。ただし、長い形の名前 LinearAlgebra[IsDefinite](..) を使えばいつでもアクセスすることができます。
例
with(LinearAlgebra): A := DiagonalMatrix([-5,0,-1]);
IsDefinite(A);
IsDefinite(A, 'query' = 'positive_semidefinite');
IsDefinite(A, 'query' = 'negative_semidefinite');
B := <<1,8,3>|<-4,5,2>|<6,1,0>>;
IsDefinite(B);
C := <<1,2+I>|<2-I,5>>;
IsDefinite(C);
IsDefinite(C, 'query' = 'positive_semidefinite');
IsDefinite(C, 'query' = 'negative_semidefinite');
次の例では、判定の結果は、 x と y に割り当てられる値に依存します。
assume(x,real,y,real); IsDefinite( <<x,0>|<0,y>> );
参照
Matrix, LinearAlgebra[Eigenvalues], LinearAlgebra[Eigenvectors], LinearAlgebra[HermitianTranspose], attributes, type
Download Help Document