Mathcad: найти все решения уравнения в заданной области определения
Если вы считаете "в числах", а не символьно, Mathcad, разумеется, найдёт только ближайшее к заданному начальному приближению решение Вашего уравнения (см. инструмент Математика - Блок решения). Впрочем, в символьном виде будет ещё хуже - обычно Вы получите кучу выражений с комплексными числами. :)
Можно ли вывести все решения сразу? Да, если ограничить поиск некой областью определения функции уравнения. Основная идея очень проста - блок решения оформляется в виде функции, аргументом которой является элемент вектора начальных точек. Затем каждая начальная точка из желаемого диапазона подставляется в функцию и находится очередное решение.
Разумеется, близкие начальные точки будут давать один и тот же корень уравнения, так что полученный вектор решений придётся почистить от дублей. Готовой функции удаления повторяющихся элементов вектора в Mathcad не предусмотрено, но это нетрудно сделать программкой на встроенном языке программирования. Вот пример с решением конкретного уравнения третьей степени:
Решение уравнения в заданном диапазоне начальных приближений, Mathcad Prime 7 и выше
Здесь и далее предполагается, что системная переменная ORIGIN равна нулю (значению по умолчанию).
Так как численное решение уравнения неизбежно создаст погрешности, мы сравниваем дубли в векторе не "напрямую", а с точностью ε. По графику в приложенном документе видно, что найдены все три корня.
Аналогично можно поступать и с системами уравнений или с "недоопределёнными" уравнениями, например, диофантовыми. Нас интересовало множество решений уравнения вида a×x + b×y = d с целочисленными коэффициентами и корнями. К сожалению, Mathcad не позволяет ни добавить в задачу оптимизации ограничения на целочисленность, ни ввести их искусственно для пары переменных (мы ввели только для x), поэтому функция исключения из таблицы решений одинаковых с точностью ε пар целочисленных значений (x, y) получилась заметно более громоздкой (не приведена на скрине).
Решение системы уравнений в заданном диапазоне начальных приближений, Mathcad Prime 7 и выше
Заметим, что на практике для решения в целых числах диофантовых уравнений и их систем бывает проще использовать брутфорсинг, особенно если переменных немного.
Скачать документы Mathcad Prime 7 и выше из этой статьи в архиве .zip (12 Кб)
05.10.2025, 14:28 [316 просмотров]

