Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 9_MathCad.docx
Скачиваний:
10
Добавлен:
04.12.2018
Размер:
1.46 Mб
Скачать

2. Решение систем нелинейных уравнений. Метод простых итераций (последовательных приближений).

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

(1)

или подробно в координатном виде .

Нулевое приближение в случае двух переменных находится графически: на плоскости строят кривые и и находят точки их пересечения.

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

Заменим нелинейную систему (1) эквивалентной системой вида

. (2)

или .

Если итерации сходятся, то они сходятся к решению уравнения (предполагается, что решение существует).

Исследуем сходимость итераций. Обозначим компоненты решения через  и преобразуем погрешность очередной итерации:

где l – направление, соединяющее многомерные точки и , а  – некоторая точка, лежащая между ними на этом направлении. Это равенство означает, что вектор погрешности нового приближения равен матрице производных, умноженной на вектор погрешности предыдущего приближения. Если какая-нибудь норма матрицы производных , согласованная с некоторой нормой вектора, меньше единицы, то норма погрешности убывает от итерации к итерации по геометрической прогрессии. Это означает линейную сходимость метода.

Заканчивать итерации можно по критерию сходимости: , выполнение которого необходимо проверить для каждой компоненты.

Средства пакета MathCad для решения нелинейных уравнений

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

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

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

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

Блок Given/Find использует для поиска решения итерационные методы, поэтому, как и для функции root, требуется задать начальные значения для всех x1,...,xn. Начальные условия определяют начальные значения искомых переменных и задаются в виде var:=value, т.е. обычным присваиванием переменным заданных значений, причем задать их необходимо до ключевого слова Given. Уравнения задаются в виде expr_left=expr_right с применением логического знака равенства между левой и правой частями каждого уравнения, который вводится либо с панели инструменов. Boolean (Булевы операторы), сочетанием клавиш<Ctrl>+<=>.

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

Пример 4. Решить систему уравнений в окрестности точки . Выполним проверку

Ответ: решением системы является точка (-0.106, 1.056).

Замечание. Вычислительный блок использует константу CTOL в качестве погрешности выполнения уравнений, введенных после ключевого слова Given. Например, если CTOL =0.001, то уравнение х=10 будет считаться выполненным и при х=10,001, и при х=9,999.

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

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

Пример 5.

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

Зададим функции f(x,y) и g(x,y), соответствующие первому и второму уравнениям системы соответственно:

Построим графики поверхностей, описываемых этими уравнениями.

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

Выполним проверку, подставив найденные значения в функции f(x,y) и g(x,y).

Ответ: решением системы является точка (-1.118, -0.653).

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

  1. x1:=c1 ... xn: =сn – начальные значения для неизвестных.

  2. Given - ключевое слово.

  3. Система алгебраических уравнений и неравенств, записанная логическими операторами.

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

Пример 6. Использование функции Minerr