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
Groebner[SuggestVariableOrder] - よい変数順序の選択
使い方
SuggestVariableOrder(J, X)
パラメータ
J
-
多項式のリストか集合、または PolynomialIdeal
X
(オプション) 変数のリストか集合
説明
SuggestVariableOrder コマンドは、plex や tdeg の Groebner 基底計算を高速に行える、よい変数の順序を、発見的選択を試みます。実際、悪い変数順序を用いると、もともと単純な問題でも解けなくなってしまうほど、変数の順序は計算効率に影響を与えるものです。変数はオプションの第 2 引数を用いることで明示的に指定できます。
発見的方法は、各変数の多項式の次数と係数の大きさに基づいています。この方法はいつも最適な順序を見つけるわけではなく、また、まれに悪い順序を選択する事もあります。
SuggestVariableOrder は Groebner[Basis] の第 2 引数が名前であり、既知の適当な基底がない場合、このコマンドによって呼び出されます。
例
最初の例は Trinks の問題からです。全次数の Groebner 基底を、変数順序を指定することなく計算します。Groebner[Basis] コマンドは SuggestVariableOrder を自動的に呼び出します。
with(Groebner):
trinks := [-9*w+15*p*t+20*z*s, 99*w-11*s*b+3*b^2, w*p+2*z*t-11*b^3, 45*p+35*s-165*b-36, 35*p+40*z+25*t-27*s, 15*w+25*p*s+30*z-18*t-165*b^2]:
G := Groebner[Basis](trinks, 'tord', order=tdeg):
tord;
続いて、辞書式順序の基底を、選択された変数順序、その逆、ばらばらに並べた という順序それぞれについて比較してみます。
V := SuggestVariableOrder(trinks);
G := Groebner[Basis](trinks, plex(V)):
length(G);
map(length@maxnorm, G); # digits in the largest coefficient
V2 := seq(V[-i], i=1..6); # reverse the variables
G2 := Groebner[Basis](trinks, plex(V2)):
length(G2);
map(length@maxnorm, G2);
V3 := op(combinat[randperm]([V]));
G3 := Groebner[Basis](trinks, plex(V3)):
length(G3);
map(length@maxnorm, G3);
参照
Groebner[Basis], length, maxnorm
Download Help Document