Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mathcad_теория.doc
Скачиваний:
21
Добавлен:
21.08.2019
Размер:
498.69 Кб
Скачать

Анимация

Пожалуй, самый зрелищный способ представления результатов расчетов – это анимация. Mathcad позволяет создавать анимационные ролики и сохранять их в видеофайлах.

Основной принцип анимации в Mathcad – покадровая анимация. Анимационный ролик – это последовательность кадров, представляющих собой участок документа, который выделяется пользователем. Расчеты производятся обособленно для каждого кадра, причем формулы и графики, которые в нем содержатся, должны быть функцией от номера кадра. Номер кадра задается системной переменной FRAME, которая может принимать только натуральные значения и ноль. По умолчанию, если не включен режим подготовки анимации, FRAME=0.

Последовательность действий для создания ролика анимации

  • Введите в документ необходимые выражения и графики, в которых участвует переменная номера кадра FRAME. ( Например, определение функции f(x,t) и ее декартов график f(x, FRAME)). Подготовьте часть документа, которую вы желаете сделать анимацией, таким образом, чтобы она находилась в поле вашего зрения на экране.

  • Выполните команду Tools| Animation| Record (Инструменты| Анимация| Запись).

  • В диалоговом окне Animate (Анимация) задайте номер первого кадра в поле From (От), номер последнего кадра в поле To (До) и скорость анимации в кадрах в секунду в поле At (Скорость).

  • Выделите в документе протаскиванием указателя мыши при нажатой левой кнопке мыши область, которая станет роликом анимации.

  • В диалоговом окне Animate (Анимация) нажмите кнопку Animate (Анимация). После этого в окошке диалогового окна Animate (Анимация) будут появляться результаты расчетов выделенной области. П о окончании этого процесса на экране появится окно проигрывателя анимации.

  • Запустите просмотр анимации в проигрывателе нажатием кнопки воспроизведения в левом нижнем углу окна проигрывателя.

  • В случае, если вид анимации вас устраивает, сохраните ее в виде видеофайла, нажав кнопку Save As (Сохранить как) в диалоговом окне Animate (Анимация). В появившемся диалоговом окне Save Animation (Сохранить анимацию) обычным для Windows способом укажите имя файла и его расположение на диске.

  • Закройте диалоговое окно Animate (Анимация) нажатием кнопки Cancel (Отмена) или соответствующую кнопку управления окном.

Сохраненный видеофайл можно использовать за пределами Mathcad.

Решение нелинейных уравнений и систем

Пусть имеется одно уравнение с неизвестным x

f(x)=0, (1)

где f(x) – некоторая функция. Требуется найти корни уравнения, т.е. все значения x, которые обращают уравнение в верное равенство.

Иногда с помощью символьного процессора удается аналитически вычислить значение корней. Для этого

  • Введите выражение f(x).

  • Выделите переменную, относительно которой будет решаться уравнение.

  • Выберите в меню Symbolics (Символика) пункт Variable| Solve (Переменная| Решить).

Однако в большинстве случаев аналитически решать уравнение не удается, и необходимо привлекать численные методы. Как правило, отыскание корней численными методами связано с несколькими задачами

  • Исследование существования корней, определение их количества и примерного расположения.

  • Собственно определение корней с заданной погрешностью (TOL).

Последнее означает, что необходимо найти значения x0, при которых |f(x0)|<TOL. Почти все встроенные функции системы Mathcad, предназначенные для решения нелинейных алгебраических уравнений, нацелены на решение второй задачи, т.е. предполагают, что корни уравнения уже приблизительно локализованы.

Для решения уравнения (1) Mathcad имеет встроенную функцию root, которая реализует алгоритм секущих и может включать два или четыре аргумента

root(f(x),x) или root(f(x), x, a, b)

где f(x) – скалярная функция, которую можно задать в виде выражения; x – скалярная переменная, относительно которой решается уравнение; a, b – границы интервала, внутри которого происходит поиск корня.

Использование типа функции root(f(x),x) с двумя аргументами требует задания начального значения переменной x, т.е. нужно предварительно присвоить x некоторое значение. Поиск корня будет производиться вблизи этого значения. Это требует априорной информации о примерной локализации корня.

Часто удобнее (и надежнее) задавать не начальное приближение к корню, а интервал [a,b], внутри которого находится искомый корень. В этом случае следует использовать функцию root(f(x), x, a, b) с четырьмя аргументами. Следует помнить, что при этом значения f(a) и f(b) должны иметь разный знак.

Если функция f(x) является полиномом степени n , то все корни можно найти, используя встроенную функцию polyroots(v), где – вектор, составленный из коэффициентов полинома. Первым в векторе v должен быть свободный член, вторым – коэффициент при x1 и т.д. Последним n+1 элементом вектора v должен быть коэффициент при xn. Результатом действия функции polyroots является вектор, составленный из n корней рассматриваемого полинома.

Следует помнить, что любой полином степени n имеет с учетом кратности ровно n корней, среди которых могут быть и комплексные.

Рассмотрим теперь решение системы n нелинейных уравнений с m неизвестными

(2)

Здесь , … – некоторые скалярные функции от скалярных переменных . Уравнений может быть как больше, так и меньше числа неизвестных. Система может включать и неравенства.

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

  • Given – ключевое слово.

  • Система, записанная логическими операторами в виде равенств и, возможно, неравенств.

  • Find(x1, …, xm) – встроенная функция для решения системы относительно переменных x1, …, xm.

Блок Given/ Find использует для поиска решения итерационные методы, поэтому, как и для функции root, требуется до ключевого слова Given задать начальные значения для всех переменных. Вставлять логические операторы следует пользуясь панелью инструментов Boolean (Логические операторы).

Значение функции Find это вектор, составленный из решения по каждой переменной, так что число элементов вектора равно числу аргументов функции Find.

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

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

В Mathcad вычислительным блоком Given/ Find система нелинейных уравнений (2) может быть представлена и решена в векторном виде

f(x)=0,

где – вектор, составленный из переменных, а f(x) – соответствующая векторная функция.

В отличие от функции root, Find реализует итерационные градиентные численные методы, в которых последовательные приближения вычисляются с применением производных. Вычислительный блок использует системную константу CTOL в качестве меры погрешности выполнения уравнений, введенных после ключевого слова Given.

Mathcad предлагает три различных вида градиентных методов. Чтобы изменить численный метод

  • Щелкните правой кнопкой мыши на названии функции Find.

  • Наведите указатель мыши на пункт Nonlinear (Нелинейный) в контекстном меню.

  • В появившемся подменю выберите один из предлагаемых методов: Conjugate Gradient (Сопряженных градиентов), Quasi-Newton (Квазиньютоновский) или Levenberg-Marquardt (Левенберг).

Чтобы вернуть автоматический выбор численного метода, в контекстном меню нужно выбрать пункт Autoselect (Автоматический выбор). Помимо выбора самого метода, имеется возможность устанавливать некоторые его параметры. Для этого нужно вызвать с помощью того же контекстного меню диалоговое окно Advanced Options (Дополнительные параметры) в пункте Nonlinear (Нелинейный).

Некоторые уравнения удается решить символьно с использованием блока Given/ Find. В этом случае присваивать неизвестным начальные значения не нужно, а после функции Find нужно ввести знак символьных вычислений → (стрелку) вместо знака = (равно). Символьные вычисления могут производиться и над уравнениями, в которые, помимо неизвестных, входят параметры.

Задачу определения корней системы уравнений можно свести к задаче поиска экстремума функции многих переменных. В этом случае вместо требования точного выполнения уравнений минимизируется их невязка. Для этого в вычислительном блоке вместо функции Find используется функция Minerr, имеющая тот же набор параметров. При помощи этой функции можно решать и несовместные системы (т.е. не имеющие корней). В последнем случае численный алгоритм выдаст в качестве результата значения переменных, наилучшим образом удовлетворяющих уравнениям.

Вычислительный блок Given | Minerr задается следующим образом

  • Начальные значения для неизвестных.

  • Ключевое слово Given.

  • Система, записанная логическими операторами в виде равенств и неравенств.

  • Minerr(x1, …, xm) – приближенное решение системы относительно переменных x1, …, xm, минимизирующее невязку.

В функции Minerr реализованы те же алгоритмы, что и в функции Find, иным является только условие завершения работы численного алгоритма. Следует иметь в виду, что функция находит локальный минимум, а не глобальный, т.е. могут найтись другие решения, для которых невязка меньше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]