التوثيق |
---|
https://msolve.lip6.fr/
msolve
هي مكتبة لغة C مفتوحة المصدر تطبق خوارزميات الجبر الحاسوبية لحل أنظمة متعددة الحدود (مع معاملات عقلانية أو معاملات في مجال رئيسي).
حاليًا، باستخدام msolve
، يمكنك حل أنظمة متعددة الحدود متعددة المتغيرات. وهذا يشمل:
البرنامج التعليمي متاح هنا
بعض وظائف msolve متاحة بالفعل في أنظمة الجبر الحاسوبية Oscar وSageMath. انظر أدناه للحصول على مزيد من المعلومات حول هذا الموضوع.
انظر ملف التثبيت.
يتم تقديم المزيد من المعلومات في البرنامج التعليمي (انظر https://msolve.lip6.fr)
يجب أن تكون ملفات الإدخال msolve
بالتنسيق التالي:
السطر الأول : المتغيرات كقائمة مفصولة بفواصل، على سبيل المثال x1,x2,x3,x4,y1,y2
.
السطر الثاني : خاصية المجال، على سبيل المثال 0
.
الأسطر التالية : إنشاء متعددات الحدود، جميعها باستثناء الأخيرة تحتاج إلى الإنهاء بـ ,
على سبيل المثال
x1,x2,x3,x4,y1,y2
101
x1+x2+x3+x4,
2*y1-145*y2
قد تكون كثيرات الحدود متعددة الحدود، وبالتالي ,
كفاصل.
يمكن أن تكون المعاملات عقلانية، باستخدام /
، على سبيل المثال -2/3*x2*y1^2+...
.
بعض الأوامر الأساسية هي كما يلي:
./msolve -f in.ms -o out.ms
سوف:
msolve
بعزل الحلول الحقيقيةmsolve
بحساب معلمات الحلول يتم عرض جميع بيانات الإخراج في الملف out.ms
تسمح لك العلامة -v
بالتحكم في الإسهاب، مما يعطي نظرة ثاقبة لما يفعله msolve
. جرب هذا.
./msolve -v 2 -f in.ms -o out.ms
يحسب msolve
قواعد Groebner عندما يكون الحقل الأساسي إما حقل أرقام منطقية أو حقل أولي (يجب أن تكون الخاصية أقل من 2^31).
الأمر التالي
./msolve -g 1 -f in.ms -o out.ms
سوف يقوم بحساب أحاديات الحد الرائدة لأساس جروبنر المخفض للمثالية التي تم إنشاؤها بواسطة نظام الإدخال in.ms
لما يسمى بالترتيب المعجمي العكسي المتدرج. يتيح لك ذلك استنتاج بُعد مجموعة الحل لمتعددات الحدود المدخلة (في إغلاق جبري للحقل الأساسي) بالإضافة إلى درجة المثالية التي تولدها.
باستخدام العلامة -g 2
على النحو التالي
./msolve -g 2 -f in.ms -o out.ms
سيعيد أساس جروبنر المخفض للترتيب المعجمي العكسي المتدرج.
يتيح لك msolve
أيضًا إجراء حسابات قواعد Groebner باستخدام ترتيب أحادي الحد للتخلص من كتلة واحدة بفضل العلامة -e
. الأمر التالي
./msolve -e 1 -g 2 -f in.ms -o out.ms
سيتم إجراء حساب أساس جروبنر مع حذف المتغير الأول. وبشكل أكثر عمومية، فإن استخدام -ek
سوف يزيل متغيرات k
الأولى.
عندما يكون لنظام الإدخال متعدد الحدود معاملات عقلانية وعندما يكون لديه عدد لا نهائي من الحلول المعقدة ، فإن msolve
، افتراضيًا، سيحسب الحلول الحقيقية لنظام الإدخال. يتم ترميزها بمربعات معزولة لجميع الإحداثيات لجميع الحلول الحقيقية.
على سبيل المثال، في ملف الإدخال in.ms
كما يلي
x, y
0
x^2+y^2-4,
x*y-1
سيتم عرض المكالمة ./msolve -f in.ms -o out.ms
في الملف out.ms
الإخراج التالي
[0, [1,
[[[-41011514734338452707966945920 / 2^96, -41011514734338452707966945917 / 2^96], [-153057056683910732545430822374 / 2^96, -153057056683910732545430822373 / 2^96]],
[[-612228226735642930181723289497 / 2^98, -612228226735642930181723289492 / 2^98], [-164046058937353810831867783675 / 2^98, -164046058937353810831867783674 / 2^98]],
[[612228226735642930181723289492 / 2^98, 612228226735642930181723289497 / 2^98], [164046058937353810831867783674 / 2^98, 164046058937353810831867783675 / 2^98]],
[[41011514734338452707966945917 / 2^96, 41011514734338452707966945920 / 2^96], [153057056683910732545430822373 / 2^96, 153057056683910732545430822374 / 2^96]]]
]]:
وهي صناديق العزل الأربعة للجذور الأربعة الدقيقة التي تكون تقريباتها الرقمية (-0.5176380902, -1.931851653)
، (-1.931851653, -0.5176380902)
، (1.931851653, 0.5176380902)
و (0.5176380902, 1.931851653)
.
تتم موازنة العديد من مكونات msolve
من خلال الخيوط المتعددة. الكتابة
./msolve -t 4 -f in.ms -o out.ms
يقول msolve
لاستخدام 4 المواضيع. يتم استخدام خيوط متعددة في msolve
في
msolve
في حل جبري AlgebraicSolving هي حزمة جوليا التي تغلف msolve
وتوفر المزيد من الوظائف مثل حوسبة الحلول العقلانية. انظر هنا لمزيد من المعلومات والوثائق.
msolve
في أوسكار يتم استخدام msolve
في أوسكار لحل أنظمة متعددة الحدود ذات معاملات عقلانية.
سوف يكتشف ما إذا كان نظام الإدخال يحتوي على عدد لا نهائي من الحلول المعقدة، وفي هذه الحالة سيُخرج معلمات عقلانية لمجموعة الحلول بالإضافة إلى الحلول الحقيقية لنظام الإدخال (انظر البرنامج التعليمي msolve
هنا).
يمكنك إلقاء نظرة على هذا وتوثيق أوسكار.
هنا هو كيف يمكنك استخدامه.
julia> R,(x1,x2,x3) = PolynomialRing(QQ, ["x1","x2","x3"])
(Multivariate Polynomial Ring in x1, x2, x3 over Rational Field, fmpq_mpoly[x1, x2, x3])
julia> I = ideal(R, [x1+2*x2+2*x3-1, x1^2+2*x2^2+2*x3^2-x1, 2*x1*x2+2*x2*x3-x2])
ideal(x1 + 2*x2 + 2*x3 - 1, x1^2 - x1 + 2*x2^2 + 2*x3^2, 2*x1*x2 + 2*x2*x3 - x2)
julia> real_solutions(I)
((84*x^4 - 40*x^3 + x^2 + x, 336*x^3 - 120*x^2 + 2*x + 1, PolyElem[-184*x^3 + 80*x^2 - 4*x - 1, -36*x^3 + 18*x^2 - 2*x], fmpz[-1, -1]), Vector{fmpq}[[744483363399261433351//1180591620717411303424, 372241681699630716673//1180591620717411303424, -154187553040555781639//1180591620717411303424], [1, 0, 0], [71793683196126133110381699745//316912650057057350374175801344, 71793683196126133110381699745//633825300114114700748351602688, 173325283664805084153412401855//633825300114114700748351602688], [196765270119568550571//590295810358705651712, 1//590295810358705651712, 196765270119568550571//590295810358705651712]])
msolve
في SageMath عند تثبيت msolve
، يتم استخدامه بواسطة SageMath عند استدعاء الدالة Variety
لحل الأنظمة متعددة الحدود ذات المعاملات الحقيقية.
يمكنك إلقاء نظرة هنا وهنا
نحن ممتنون لمارك ميزروبا الذي بدأ استخدام msolve
في SageMath وفريق التطوير بأكمله في SageMath، ولا سيما أولئك المشاركين في هذه التذكرة
msolve
إذا كنت قد استخدمت msolve
في إعداد بعض الأوراق، فنحن ممتنون لاستشهادك بها على النحو التالي:
msolve: A Library for Solving Polynomial Systems,
J. Berthomieu, C. Eder, M. Safey El Din, Proceedings of the
46th International Symposium on Symbolic and Algebraic Computation (ISSAC),
pp. 51-58, ACM, 2021.
أو، إذا كنت تستخدم إدخالات BibTeX:
@inproceedings{msolve,
TITLE = {{msolve: A Library for Solving Polynomial Systems}},
AUTHOR = {Berthomieu, J{'e}r{'e}my and Eder, Christian and {Safey El Din}, Mohab},
BOOKTITLE = {{2021 International Symposium on Symbolic and Algebraic Computation}},
ADDRESS = {Saint Petersburg, Russia},
SERIES = {46th International Symposium on Symbolic and Algebraic Computation},
PAGES = {51--58},
PUBLISHER = {{ACM}},
YEAR = {2021},
MONTH = Jul,
DOI = {10.1145/3452143.3465545},
PDF = {https://hal.sorbonne-universite.fr/hal-03191666v2/file/main.pdf},
HAL_ID = {hal-03191666},
HAL_VERSION = {v2},
}
يمكن تحميل الورقة هنا.
يتم دعم تطوير msolve
من قبل Forschungsinitiative Rheinland-Pfalz.