Трудно полностью доказать это, но, скорее всего, OldSolve
слишком слаб для этой системы.
Несколько важных моментов из руководства :
Эта команда пытается решить одно или несколько уравнений.
Следовательно, никаких гарантий.
Обратите внимание, что только одно решение найдено и возвращено.
Это означает, что, безусловно, нет способа получить все три упомянутых вами решения.
Опять вчаще всего возвращается одно решение.
Тот факт, что вы получили BB == BB
и P == P
, означает бесконечное число решений, поэтому, возможно, мы можем рассматривать его как доказательство неудачи в решенииsystem.
Решается множество уравнений рекурсивно : во-первых, ищется уравнение, в котором одна из переменных встречается ровно один раз ;тогда это уравнение решается с помощью таких слов;и, наконец, решение заменяется в других уравнениях на Eliminate, уменьшая число уравнений на единицу.Этого достаточно для всех линейных уравнений и большой группы простых нелинейных уравнений
Итак, этот вид объясняет, почему OldSolve
может не работать в вашей системе.Во-первых, он нелинейный, не дает никаких гарантий.Во-вторых, каждая из переменных появляется в каждом из уравнений 1-4 раза.Если я правильно понимаю алгоритм, после решения одного уравнения (скажем, AA
) и подстановки решения в два других - все готово.Это связано с тем, что тогда и BB
, и P
появляются в обоих оставшихся уравнениях более одного раза (и в результате OldSolve
не может решить ни одно из них).Вы также можете попробовать изменить порядок уравнений;вы увидите, что тогда решается другая переменная.