Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

rukovodstvo_MathCAD / Глава 6

.doc
Скачиваний:
32
Добавлен:
17.02.2016
Размер:
260.1 Кб
Скачать

Глава 6. Решение уравнений и систем уравнений.

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

1. Решение одного уравнения.

Mathcad позволяет найти с заданной точностью решение уравнения вида

f(x) = 0

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

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

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

Рассмотрим применение функции root в различных примерах.

П ример 1.

При использовании функции root следует учитывать следующие правила:

  1. Чтобы найти комплексный корень надо задать комплексное начальное приближение.

  2. Если уравнение имеет несколько корней, результатом будет тот изи них, который расположен ближе к заданному начальному приближению.

Функция root может иметь еще два аргумента – границы интервала поиска решения, то есть root (f(x), x, a, b). Для того, чтобы решение было найдено, необходимо, чтобы f(а) было положительно, а f(b) - отрицательно (или наоборот). Для того, чтобы правильно выбрать интервал поиска решения или начальное приближение имеет смысл предварительно построить график. По этому графику вы сможете найти координаты точек пересечения кривых, описывающих правую и левую части уравнения или, если уравнение имеет вид f(x) = 0, координаты точек пересечения f(x) с осью абсцисс. (Построение двумерного графика и механизм считывания координат описаны в ч. II, гл.1).

П ример 2.

Если функция root не сходится, причиной этого может быть:

  1. отсутствие корней;

  2. локальный максимум или минимум между начальным приближением и корнем;

  3. разрывы между начальным приближением и корнями;

  4. корни уравнения далеко от начального приближения;

  5. корень уравнения комплексный, а начальное приближение действительное (или наоборот).

2. Решение уравнений с параметром.

Пусть требуется найти несколько решений уравнения при изменении одного из его параметров. Например, найти решение уравнения

для нескольких различных значений параметра k. Самый простой способ состоит в определении функции

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

( k, p) =

Ответом будет значение или таблица значений корня уравнения (см. пример 3).

П ример 3.

р ис.3. Траектория движения корня уравнения при изменении параметра.

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

Для решения системы линейных уравнений вида

M  x = v

где M – матрица коэффициентов системы уравнений;

v - вектор правых частей этой системы;

x – искомый вектор решений,

служит встроенная функция lsolve (M, v).

Замечание. Матрица коэффициентов системы уравнений М не должна быть вырожденной.

В следующем примере надо найти вектор решений системы уравнений:

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

M  x = v.

П ример 4.

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

Для решения системы нелинейных уравнений используется так называемый решающий блок. (Начиная с версии Mathcad 2000 PRO с его помощью можно решить систему, содержащую до 200 уравнений).

Выполните следующие действия:

  1. задайте начальные приближения для всех неизвестных, входящих в систему уравнений;

  2. напечатайте ключевое слово Given – оно указывает, что далее следует система уравнений (шрифт и регистр значения не имеют);

  3. ниже введите систему уравнений (причем для обозначения знака равенства нажмите одновременно [Ctrl] [=]);

  4. введите любое выражение, которое включает функцию Find (ее аргументы - неизвестные, шрифт и регистр значения не имеют).

Замечание 1. Решающий блок может также содержать ограничения-неравенства, использующие символы <, >,  или .

Замечание 2. В решающий блок нельзя включать:

  1. ограничения, содержащие знак ;

  2. присвоения (содержащие знак:=).

Рассмотрим пример - надо найти при заданных ограничениях решение системы нелинейных уравнений:

П ример 5.

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

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

Покажем применение этой функции на примере. Требуется найти решение системы нелинейных уравнений:

Причем вы сами можете убедиться, что с помощью функции Find ответ получить не удается.

П ример 6.

Решающий блок должен заканчиваться одним из следующих ключевых слов:

Таблица 5. Ключевые слова, допустимые в решающем блоке.

Функция

Описание

Find (x, y, …)

Находит значения x, y, …, удовлетворяющие системе уравнений.

Minerr (x, y, …)

Находит значения x, y, …, наиболее близкие к удовлетворяющим системе уравнений.

Minimize (f, x, y, …)

Находит значения x, y, …, при которых функция f принимает свое наименьшее значение.

Maximize (f, x, y, …)

Находит значения x, y, …, при которых функция f принимает свое наибольшее значение.

Здесь x, y, … могут быть действительными или комплексными скалярами, векторами или массивами. Если неизвестная одна, результат – скаляр, если неизвестных несколько, результат – вектор решений.

Рассмотрим пример применения функции Maximize.

Пример 7.

- начальное приближение

- система уравнений

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

Autoselect – (по умолчанию). Если включена эта опция, Mathcad сам выбирает наиболее подходящий алгоритм решения;

Linear – используется алгоритм линейного программирования. Начальное приближение не требуется;

Nonlinear – используется один из трех алгоритмов:

Conjugate Gradient

Levenberg-Marquardt – не работает с функциями Minimize и Maximize

Quasi-Newton

(начальное приближение обязательно надо задавать);

Quadratic - используется алгоритм квадратичного программирования. Этот пункт меню доступен только в том случае если вы установили дополнительный пакет Solving and Optimization Extension Pack (Expert Solver).

Report – отчет. Этот пункт меню доступен только в том случае если вы установили дополнительный пакет Solving and Optimization Extension Pack (Expert Solver).

Итоговые упражнения.

  1. Решить уравнение cos(x)= 2x - 3.

  2. Найти решение уравнения sin(2x)= 1-3x2 на интервале [0.1; 2].

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

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

  5. Найти значения x и y, минимизирующие функцию f(x, y) = 3x3 - 5y2. Ограничения: x 0, y 0, x 2 - 3y2.

86

Соседние файлы в папке rukovodstvo_MathCAD