Что такое given в mathcad
Перейти к содержимому

Что такое given в mathcad

  • автор:

3 Решение систем уравнений: вычислительный блок Given/Find

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

Здесь , …, – некоторые скалярные выражения, зывисящие от скалярных переменных и возможно еще каких–то переменных.

Для решения систем в MathCAD применяется специальный вычислительный блок Given/Find (Дано/Найти), состоящий из трех частей, идущих последовательно друг за другом:

  1. Given – ключевое слово;
  2. система, записанная логическими операторами в виде равенств и, возможно, неравенств;
  3. Find() – встроенная функция для решения системы относительно переменных

Вставлять логические операторы следует, пользуясь панелью инструментов Boolean(Булевы операторы). Блок Given/Find использует для поиска решения итерационные методы, поэтому, как и для функции root, требуется задать начальные значения всех . Сделать это необходимо до ключевого слова Given. Значение функции Find представляет собой матрицу, составленную из всевозможных решений по каждой переменной, причем количество ее строк в точности равно числу аргументов Find. Задание: Решить систему уравнений .Решение:Результат: В первых двух строках вводятся функции, которые определяют систему уравнений. Затем переменным x и y, относительно которых она будет решаться, присваиваются начальные значения. После этого следует ключевое слово Given и два логических оператора, выражающих рассматриваемую систему уравнений. Завершает вычислительный блок функция Find, значение которой присваивается вектору v. В последних двух строках осуществляется проверка правильности решения системы уравнений. Вычислительным блоком с функцией Find можно найти корень уравнения с одним неизвестным. Действия Find в этом случае совершенно аналогичны действиям в уже рассмотренном примере. Задача поиска решения рассматривается как задача решения системы, состоящей из одного уравнения. Единственным отличием будет скалярный, а не векторный тип числа, возвращаемого функцией Find. Задание: Решить алгебраическое уравнение Решение:

Оптимизация

1 Экстремум функции одной переменной

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

  1. Minimize(f,) – вектор значений аргументов, при которых функция f достигает минимума
  2. Maximize(f,) – вектор значений аргументов, при которых функция f достигает максимума, где

f() – функция, – аргументы, по которым проводится минимизация (максимизация). Всем аргументам функции f следует присвоить предварительно некоторые значения, причем для тех переменных, по которым проводится минимизация, они будут восприниматься как начальные приближения. Существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы. Задание: Найти минимум и максимум функции одной переменной . Решение:Результат: Как вы заметили, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы.

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

Вычисление корней численными методами включает два основных этапа:

· отделение корней;

· уточнение корней до заданной точности.

Рассмотрим эти два этапа подробно.

Отделение корней нелинейного уравнения

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

Пример. Дано алгебраическое уравнение

Определить интервалы локализации корней этого уравнения.

Пример. Дано алгебраическое уравнение

Определить интервалы локализации корней этого уравнения.

На рисунке приведен график функции , построенный в MathCAD . Видно, что в качестве интервала изоляции можно принять интервал . Однако уравнение имеет три корня. Следовательно, можно сделать вывод о наличии еще двух комплексных корней. ¨

Уточнение корней нелинейного уравнения

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

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

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

Заметим, что для вычисления всех трех корней использовался прием понижения порядка алгебраического уравнения, рассмотренный в п. 8.1.1. ¨

Функция root с двумя аргументами требует задания (до обращения к функции) переменной начального значения корня из интервала локализации.

Пример 8.1.5. Используя функцию root , вычислить изменения корня нелинейного уравнения при изменении коэффициента а от 1 до 10 с шагом 1.

Функция polyroots . Для вычисления всех корней алгебраического уравнения порядка (не выше 5) рекомендуется использовать функцию polyroots . Обращение к этой функции имеет вид polyroots (v) , где v – вектор, состоящий из n +1 проекций, равных коэффициентам алгебраического уравнения, т.е. . Эта функция не требует проведения процедуры локализации корней.

Пример. Используя функцию polyroots , найти все три корня уравнения , включая и два комплексных

Блок Given . При уточнении корня нелинейного уравнения можно использовать специальный вычислительный блок Given , имеющий следующую структуру:

Решаемое уравнение задается в виде равенства, в котором используется «жирный» знак равно, вводимый с палитры Логичес­кий .

Ограничения содержат равенства или неравенства, которым должен удовлетворять искомый корень.

Функция Find уточняет корень уравнения, вызов этой функции имеет вид Find ( x ), где x – переменная, по которой уточняется корень. Если корня уравнения на заданном интервале не существует, то следует вызвать функцию Minerr ( x ), которая возвращает приближенное значение корня.

Для выбора алгоритма уточнения корня необходимо щелкнуть правой кнопкой мыши на имени функции Find ( x ) и в появившемся контекстном меню (см. рисунок) выбрать подходящий алгоритм.

Аналогично можно задать алгоритм решения и для функции Minerr ( x ).

Использование численных методов в функциях Find ( x ), Minerr ( x ) требует перед блоком Given задать начальные значения переменным, по которым осуществляется поиск корней уравнения.

Пример. Используя блок Given , вычислите корень уравнения в интервале отделения .

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

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

· алгебраические системы уравнений;

· трансцендентные системы уравнений.

Среди алгебраических систем уравнений особое место занимают системы линейных алгебраических уравнений (СЛАУ).

Системы линейных алгебраических уравнений

Системой линейных алгебраических уравнений (СЛАУ) называется система вида:

В матричном виде систему можно записать как

где – матрица размерности , – вектор с проекциями.

Для вычисления решения СЛАУ следует использовать функцию lsolve , обращение к которой имеет вид: lsolve (А, b ), где А – матрица системы, – вектор правой части.

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

MathCAD дает возможность находить решение системы уравнений численными методами, при этом максимальное число уравнений в MathCAD 2001 i доведено до 200.

Для решения системы уравнений необходимо выполнить следующие этапы.

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

Пример. Дана система уравнений:

Определить начальные приближения для решений этой системы.

Видно, что система имеет два решения: для первого решения в качестве начального приближения может быть принята точка (-2, 2), а для второго решения – точка (5, 20). ¨

Вычисление решения системы уравнений с заданной точностью . Для этого используется уже известный вычислительный блок Given .

Функция Find вычисляет решение системы уравнений с заданной точностью, и вызов этой функции имеет вид Find ( x ), где x – список переменных, по которым ищется решение. Начальные значения этим переменным задаются в блоке < Начальные условия >. Число аргументов функции должно быть равно числу неизвестных.

Следующие выражения недопустимы внутри блока решения:

· ограничения со знаком ¹ ;

· дискретная переменная или выражения, содержащие дискретную переменную в любой форме;

· блоки решения уравнений не могут быть вложены друг в друга, каждый блок может иметь только одно ключевое слово Given и имя функции Find (или Minerr ).

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

Пример. Используя функцию , вычислите решение системы уравнений

ИНСТРУМЕНТ GIVEN-FIND (GIVEN-MAXIMIZE) В РЕШЕНИИ УРАВНЕНИЙ И ОПТИМИЗАЦИИ ФУНКЦИЙ

Для решения уравнений, а также оптимизационных задач в пакете Mathcad предусмотрена специальная конструкция Given — Find.

Ключевое слово «Given» предваряет список условий задачи, таких как уравнения и ограничения. Перед директивой Given необходимо задать начальное (приближенное) значение корней или стартовой точки для поиска оптимума. После ключевого слова «Given» следует перечислить набор уравнений или неравенств. Необходимо помнить, что при записи уравнения используется знак «жирного» равенства, который располагается на панели инструментов «Boolean» или «Логика».

Завершает конструкцию функция Find. В качестве ее аргумента используют имя неизвестной переменной.

Пример решения системы линейных алгебраических уравнений (СЛАУ) с исходными данными на рис. 1.16 представлен на рис. 1.19.

Для решения задач оптимизации, как линейных, так и нелинейных, в пакете Mathcad предусмотрены конструкции вида Given — Maximize для нахождения максимума и Given — Minimize для нахождения минимума.

В качестве примера рассмотрим решение задачи линейного программирования (оптимизация линейной целевой функции при линейных ограничениях). Отыщем максимум целевой функции f(x) — 2x0 + 3xi при следующих ограничениях:

Решение данной задачи представлено на рис. 1.20.

Перед служебным словом «Given» требуется указать начальное приближение. Результат минимизации сохраняется в вектор 5. На графике (рис. 1.20) отображены линейные ограничения. Минимум целевой функции достигается в точке с координатами (0,25, 3,5), которая лежит на границе многогранника, образуемого ограничениями.

1. Какие задачи могут быть решены с использованием конструкции Given-Find? Приведите примеры.

Puc. 1.19. Решение СЛАУ с применением конструкции Given — Find

Решение задачи линейного программирования при помощи конструкции Given - Maximize

Рис. 1.20. Решение задачи линейного программирования при помощи конструкции Given — Maximize

  • 2. Приведите пример линейной функции, линейных ограничений.
  • 3. Какой знак равенства используется в Mathcad для уравнений?
  • 4. Какая конструкция предусмотрена в Mathcad для определения минимума в задачах оптимизации?

Научная электронная библиотека

Решение систем уравнений MathCAD осуществляет численными методами. При этом должно быть задано некоторое начальное приближение для тех переменных, значение которых необходимо найти. Основываясь на этих начальных данных, MathCAD будет последовательно уточнять решение до тех пор, пока не подберет наиболее точные значения. Проблемы возникают, когда нелинейная система имеет несколько решений. За один раз MathCAD находит только одно решение, которое обычно более близко к заданному начальному приближению. Поэтому в таких случаях необходимо решать систему несколько раз с различными начальными приближениями.

Решающий блок состоит из нескольких компонент, следующих на листе в строго определенном порядке:

1.2.1. Начальное приближение (присваивание начальных значений переменным).

1.2.2. Директива Given, которую необходимо набрать с клавиатуры.

1.2.3. Уравнения, которые необходимо решить. Уравнения вводятся в обычной математической форме, но вместо простого знака равенства «=» используется оператор логического равенства (вводится путем нажатия Ctrl- =).

1.2.4. Обращение к функции Find. Аргументами функции являются имена переменных, относительно которых решается система. Функция возвращает вектор значений, где первый элемент соответствует первой переменной в списке аргументов, второй элемент – второй переменной и так далее.

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

Данная система имеет два решения. Найдем одно из них (рис. 11) с начальным приближением x = 0; y = 0.

Последняя запись – вектор (–1; –2) есть значение, которое вернула функция Find, то есть одно из решений системы. Найти второе решение можно, если взять другое начальное приближение x = 2; y = 2. Тогда функция Find вернет вектор (2; 4).

Начиная с MathCAD 2000 существует возможность одновременно найти несколько решений. Для этого система уравнений и начальные приближения должны быть переписаны в векторной форме (рис. 12). Каждая переменная будет вектором, содержащим столько компонент, сколько решений находится. В системе изменения коснутся преимущественно членов с перемножением переменных. Допустим, что в уравнении присутствует выражение x*x. Если x = (x1; x2) – вектор, то x∙x = x1∙x1 + x2∙x2. Нам же необходим результат поэлементного перемножения (x1∙x1; x2∙x2). Для этого существует специальная операция, записываемая как .

Рис. 11. Решение системы в MathCAD

Рис. 12. Пример одновременного поиска нескольких решений

Изменения коснулись и части получения результата. В данном случае функция Find вернет вектор из двух элементов, которые мы обозначили как X и Y. Каждый из этих элементов есть вектор значений x или y для решений. Соответственно первое решение – (–1; –2); второе решение – (2; 4).

Аналитическое решение линейных и нелинейных систем уравнений

Данное решение используется для получения решений в общем виде. Обычно при этом система уравнений записывается только с использованием буквенных обозначений переменных, без конкретных чисел. Для получения аналитического решения (рис. 13, 14) используется оператор аналитического вычисления «→» вместо оператора числового вычисления «=».

Рис. 13. Пример аналитического решения нелинейной системы

Рис. 14. Пример аналитического решения линейной системы

Следует обратить внимание, что здесь при решении системы нелинейных уравнений в блоке Given-Find уже нет необходимости указывать начальные приближения, поскольку решение идет не численными, а символьными методами (используется ядро математической системы Maple).

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

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