Как посчитать уравнение в mathcad

REDMOND

Решение уравнений в пакете Mathcad

Для решения уравнения, как известно, применяются графический, аналитический и численные методы.
В среде пакета Mathcad уравнения мы будем решать комбинированно: графическим методом и, используя встроенные в Mathcad функции (они, в свою очередь, реализуют некоторые численные методы для решения уравнений, какие – узнаем позднее).

Итак, графическим решением уравнения является построение графика функции и определение точек пересечения функции с осью OX. Используя заготовку «Декартов график», вызываемую с панели графиков кнопкой (Shift-2) можно построить график функции. Изменяя границы построения графика функции по осям, графически определяются корни уравнения. Так на рис.1 показан график функции .

Рисунок 1 – График функции
а) начальное приближение; б) уточнение корня на диапазоне [-1; 5]

При начальном построении автоматически получаем график функции на диапазоне [-10; 10]. Чтобы изменить диапазон, меняем соответствующие значения в заполнителях по осям. На рис.1 б) видны две точки пересечения с осью OX: в точке -0.4 и в точке 3.8. Поскольку заданная функция периодична – определение других корней не целесообразно. Найденные значения и являются графически решением уравнения.

Теперь рассмотрим некоторые существующие способы решения уравнения в пакете Mathcad.

Способ 1. Применение функции root

Функция root может быть вставлена вручную или же с помощью мастера функций, запускающегося с кнопки (рис.2). Синтаксически функция root записывается так: root(<Выражение>,<Переменная>), где <Выражение> – левая часть уравнения вида F(x)=0, нулевой корень которого следует вычислить; <Переменная> – указывается имя ведущей переменной уравнения, т.е. переменной, относительно которой решается уравнение. Определим с помощью этой функции корни уравнения (рис.3).

Перед вставкой функции выбираем начальное приближение для переменной x. Графически мы определили два корня: -0.4 и 3.8. Начальное приближение нужно задавать в окрестностях этих найденных значений. С помощью функции root корень может быть найден только один, поэтому если корней несколько – функцию придется применять несколько раз (рис.3).

Способ 2. Применение решающего блока Given и функции Find

Еще одним удобным способом решения уравнений является использование решающего блока Given и функции Find. Точно так, как и при применении функции root, изначально задается нулевое приближение для переменной x. Далее вручную вносится зарезервированное системой слово Given и ниже записывается уравнение в виде F(x)=0. Чтобы набрать приравнивание нулю используется кнопка (Ctrl+=) с панели «Булева алгебра», открывающаяся с кнопки – это будет логическое равенство. Данный способ применяется и для решения уравнений и неравенств.

Определим этим способом корни уравнения (рис.4). Поскольку корней – два, два раза определяем нулевое приближение и два раза создаем решающий блок.

Способ 3. Символьное решение уравнения

Еще одним важным способом решения уравнения является его символьное решение. Выполняется такой расчет при помощи функции , которая вставляется с панели «Символьные» (кнопка ). В результате расчета при помощи этой функции в виде вектора будут выведены все корни уравнения в пределах одного периода. Переменная, относительно которой производится расчет, ранее не должна быть определена на рабочем листе. Покажем решение все того же уравнения этим способом (рис.5).

Считаем разностные схемы в Mathcad Express

Продолжаю зарисовки об использовании бесплатного математического редактора Mathcad Express. На этот раз предлагаю обратиться к численному решению дифференциальных уравнений (в сегодняшнем примере — с частными производными). Файл с дальнейшими расчетами в форматах Mathcad и XPS вы найдете здесь.

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

На графике показано начальное распределение температуры вдоль оси Х (красная линия) и два расчетных профиля – после первого шага и после нескольких шагов по времени.

REDMOND

Уравнение теплопроводности

В качестве примера дифференциального уравнения в частных производных мы рассматриваем уравнение теплопроводности (или, по-другому, диффузии тепла).

Это уравнение параболического типа, содержащее первую производную по времени t и вторую по пространственной координате x. Оно описывает динамику температуры u(x,t) в присутствии источников тепла, например, при нагреве металлического стержня. Таким образом, неизвестной функцией, подлежащей определению, является функция u(x,t). Это уравнение линейно, если источник и коэффициент диффузии D либо не зависят от температуры, либо источник зависит от нее линейно, т.к. в этом случае неизвестная функция u(x,t) (и все ее производные) входит в уравнение в первой степени.

Линейное уравнение теплопроводности имеет аналитическое решение, в то время, как подавляющее большинство нелинейных уравнений в частных производных можно решить только численно. Для того, чтобы уравнения в частных производных имело единственное решение, необходимо поставить нужное количество начальных и граничных условий, т.е., в данном случае, соотношения типа u(x,0)=Init(x) (начальное условие) вместе с u(0,t)=f1(t) и u(L,t)=f2(t) (граничные условия, если уравнение решается на интервале от 0 до L).

В приведенной интерпретации одномерное уравнение диффузии тепла описывает динамику температуры некоторого удлиненного тела, например, металлического стержня:

Мы будем рассматривать случай нулевого источника тепла, а в качестве начального условия выберем некоторый реалистичный профиль температуры (стержень, сильно нагретый в центре). В качестве граничных условий зададим поддержание краев стержня при постоянной температуре. Разумеется, динамика решения описывает ожидаемую картину выравнивания температуры стержня со временем (за счет перетекания тепла от центра к периферии стержня благодаря механизму теплопроводности). Скорость передачи тепла определяется значением коэффициента диффузии D. (Заинтересовавшемуся читателю я предлагаю поэкспериментировать с прилагаемыми расчетами в Mathcad Express, выбирая различные значения коэффициента диффузии).

Разностная схема

Покажем, как реализовывать в Mathcad основной вычислительный подход к решению уравнений в частных производных – метод сеток. Будем делать это «вручную», чтобы не выйти за рамки бесплатной версии Mathcad Express.

Суть метода сеток заключается в покрытии расчетной области (x,t) сеткой из МхN точек, что определит шаги по времени и пространству τ и Δ соответственно. Тем самым, определяются узлы, в которых будет осуществляться поиск решения. Затем надо заменить дифференциальное уравнения аппроксимирующим его уравнением в конечных разностях, для каждого (i,n)-го узла сетки. В случае уравнения теплопроводности достаточно просто заменить первую производную по времени и вторую по пространству их разностными аналогами (такой метод дискретизации называют методом Эйлера, а получившуюся систему разностных уравнений – разностной схемой).

Выписанная схема является явной, т.к. в ней неизвестное значение искомой функции (на n+1 шаге по времени) можно выразить через уже вычисленные ранее значения функции на предыдущем n-м шаге («слое») по времени. Более того, т.к. и на каждом слое уравнения связаны между собой рекуррентно, т.е. значение в каждом неизвестном узле на n-м слое можно найти, зная только вычисленные ранее значения с предыдущего слоя. Это позволяет организовать процесс т.н. «бегущего счета», решая соответствующие уравнения на каждом слое (исходя из известного решения на предыдущем слое).

Следующий расчет реализует описанный алгоритм разностной явной схемы бегущего счета в Mathcad Express:

Собственно, вычисленные значения матрицы U и приведены на графике, который был показан в самом начале статьи (до ката).

Устойчивость

В заключение, остановимся на свойстве устойчивости разностных схем. Параметр задачи, который характеризует отношение шагов разностной схемы по пространству и времени, называется коэффициентом (или «числом») Куранта:

Существенно, что предыдущие расчеты по явной схеме проводились при соотношении Куранта менее 1. А вот если попробовать увеличить шаг по времени в явной схеме, так, чтобы соотношение Куранта стало больше 1, то мы столкнемся с катастрофой: решение «разваливается», и вместо ожидаемого (и просчитанного при меньших соотношениях Куранта случаях) решения получается быстроосцилирующее, совершенно неправдоподобное решение.

Этот пример демонстрирует важное свойство разностных схем, называемое устойчивостью. Оказывается, многие схемы (безусловно, или при определенном соотношении параметров, как наша схема) им не обладают, и применять такие схемы для решения задач нельзя.

Более подробную информацию о разностных схемах и примерах их расчета в Mathcad читатель может найти в моей книге по вычислительной физике (разностным схемам посвящены главы 5 и 6, книга в свободном доступе). В частности, предлагаю попробовать решить разностным методом «обратное уравнение теплопроводности», которое получается заменой переменной t на -t и которое (по идее) должно описывать реконструкцию исходного профиля температуры стержня по данным наблюдения через некоторое время.

И повторюсь, что файл с расчетами, описанными в этой статье, вы найдете здесь, а дистрибутив Mathcad Express можно скачать по ссылке.

REDMOND

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *