Блок решения – это контейнер, который может содержать любые другие области, кроме блоков текста. Блоки решения используются для решения систем линейных, нелинейных или дифференциальных уравнений, а также для решения задач оптимизации. Блоки решения осуществляют поиск решения методом итераций, начиная с заданных значений начальных приближений. Часто найденное решение является аппроксимацией фактического решения, приемлемость которой определяется значениями допуска сходимости TOL и допуска ограничения CTOL. Каждый блок решения может иметь только одну функцию решения.
Кроме функции блока решения необходимо задать начальные приближения, а также начальные или граничные условия. Если ожидается, что решение будет комплексным, необходимо задать комплексные начальные приближения. Если задача решается для n переменных, блок решения должен содержать n уравнений. Допускается матричное представление как при решении с матричными переменными.
Преимущества блока решения:
Решатели и блоки решения можно использовать для выполнения следующих задач:
Решатели оптимизации были заменены в PTC Mathcad Prime усовершенствованной библиотекой ПО оптимизации KNITRO. Библиотека KNITRO обеспечивает лучшие характеристики и надежность, чем старые решатели, предоставляя два алгоритма: Interior-Point (метод барьеров) и метод Active-Set.
Функции блока решения обрабатывают задачи, определенные в блоках решения, и вызывают решатели, которые возвращают решения данных задач.
Функции find(var1, var2, ...), minerr(var1, var2, ...) возвращают значения var1, var2, ..., удовлетворяющие уравнениям и неравенствам, заданным в блоке решения. Если требуется найти n переменных, блок решения должен содержать n уравнений. Допускается матричное представление как при решении с матричными переменными.
Функция find выбирает подходящий метод из группы имеющихся методов в зависимости от того, является задача линейной или нелинейной, а также исходя из других параметров.
Функция minerr отличается от функций find и minimize тем, что если выбранный алгоритм не сходится, то возвращается ответ, найденный на последней допустимой итерации, даже если он не удовлетворяет критерию сходимости. Если алгоритм сходится, то функция minerr возвращает те же результаты, что и find.
Если имеется только одна неизвестная переменная, решением будет скаляр. В противном случае решением будет вектор, в котором первый элемент – переменная var1, второй – var2 и т. д.
Пример. Электронагреватель имеющий форму цилиндра диаметром d = 55 мм и длиной l = 1.4 м, расположен горизонтально и потребляет мощность N = 2 кВт. Степень черноты поверхности нагревателя e = 0.9, температура окружающего воздуха tv = 20 °С. Определить температуру поверхности нагревателя. Для решения задачи требуется знание физических свойств воздуха, таких как: теплопроводность l и кинематическая вязкость n.
Функция root может решить только одно уравнение с одним неизвестным. Для решения системы из нескольких уравнений используйте функцию find или minerr.
Пример. Определить толщину тепловой изоляции d, которую нужно наложить на трубопровод внутренним диаметром d1 = 32 мм и наружным d2 = 38 мм, при условии, что температура поверхности изоляции не превышает tиз = 45 °С. Коэффициент теплопроводности материала l = 45 Вт/мК. Коэффициент теплоотдачи от жидкости к внутренней поверхности a1 = 3000 Вт/м2·К, к наружной поверхности a2 = 17 Вт/м2·К, температура жидкости внутри tж1 = 130 °С, снаружи tж2 = 25 °С. Материал изоляции имеет коэффициент теплопроводности равный lиз = 0.02 Вт/м·К.
Если для системы уравнений находится более одного решения, можно попробовать изменить начальное приближение и посмотреть, как изменится при этом результат. Для задания ограничений в блоках решения можно использовать матричное представление. Если функция find не может больше улучшить решение, и при этом не выполнены условия всех ограничений, решатель прекращает поиск и выдает сообщение об ошибке. Эта проблема может быть вызвана следующими причинами.
Если система не сходится, можно найти приближенное решение с помощью функции minerr вместо функции find.
Блоки решения можно использовать для поиска функции, удовлетворяющей обыкновенному дифференциальному уравнению (ОДУ) в заданном диапазоне значений. При использовании ОДУ в блоках решения необходимо учитывать следующие ограничения.
Но даже учитывая все эти ограничения эффективно использовать данный инструмент пока не представляется возможным. PTC Mathcad порой не может решить простейшее дифференциальное уравнение, например, решить одномерное дифференциальное уравнение теплопроводности с граничными условиями третьего рода не получиться. Будем надеется, что в следующих версиях данный инструмент будет серьезно дорабатываться.