БлогNot. Mathcad: найти все решения уравнения в заданной области определения

Mathcad: найти все решения уравнения в заданной области определения

Если вы считаете "в числах", а не символьно, Mathcad, разумеется, найдёт только ближайшее к заданному начальному приближению решение Вашего уравнения (см. инструмент Математика - Блок решения). Впрочем, в символьном виде будет ещё хуже - обычно Вы получите кучу выражений с комплексными числами. :)

Можно ли вывести все решения сразу? Да, если ограничить поиск некой областью определения функции уравнения. Основная идея очень проста - блок решения оформляется в виде функции, аргументом которой является элемент вектора начальных точек. Затем каждая начальная точка из желаемого диапазона подставляется в функцию и находится очередное решение.

Разумеется, близкие начальные точки будут давать один и тот же корень уравнения, так что полученный вектор решений придётся почистить от дублей. Готовой функции удаления повторяющихся элементов вектора в Mathcad не предусмотрено, но это нетрудно сделать программкой на встроенном языке программирования. Вот пример с решением конкретного уравнения третьей степени:

Решение уравнения в заданном диапазоне начальных приближений, Mathcad Prime 7 и выше
Решение уравнения в заданном диапазоне начальных приближений, Mathcad Prime 7 и выше

Здесь и далее предполагается, что системная переменная ORIGIN равна нулю (значению по умолчанию).

Так как численное решение уравнения неизбежно создаст погрешности, мы сравниваем дубли в векторе не "напрямую", а с точностью ε. По графику в приложенном документе видно, что найдены все три корня.

Аналогично можно поступать и с системами уравнений или с "недоопределёнными" уравнениями, например, диофантовыми. Нас интересовало множество решений уравнения вида a×x + b×y = d с целочисленными коэффициентами и корнями. К сожалению, Mathcad не позволяет ни добавить в задачу оптимизации ограничения на целочисленность, ни ввести их искусственно для пары переменных (мы ввели только для x), поэтому функция исключения из таблицы решений одинаковых с точностью ε пар целочисленных значений (x, y) получилась заметно более громоздкой (не приведена на скрине).

Решение системы уравнений в заданном диапазоне начальных приближений, Mathcad Prime 7 и выше
Решение системы уравнений в заданном диапазоне начальных приближений, Mathcad Prime 7 и выше

Заметим, что на практике для решения в целых числах диофантовых уравнений и их систем бывает проще использовать брутфорсинг, особенно если переменных немного.

 Скачать документы Mathcad Prime 7 и выше из этой статьи в архиве .zip (12 Кб)

05.10.2025, 14:28 [316 просмотров]


теги: mathcad математика

показать комментарии (1)