русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-23; просмотров: 730; Нарушение авторских прав


 

Системой нелинейных уравнений (СНУ) называется выражение вида

,

где i−ое нелинейное уравнение n переменных. Решением СНУ является всякий вектор , который при подстановке в систему уравнений, обращает его в тождество. Если ввести обозначения и то СНУ можно представить в более лаконичной форме , что напоминает запись ранее рассмотренного нелинейного уравнения.

В отличие от систем линейных алгебраических уравнений, для СНУ не известны прямые методы решения и поэтому всегда применяются итерационные методы. Один из наиболее часто используемых методов решения СНУ состоит из следующих двух этапов:

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

2. используя один из итерационных методов, находят последующие более точные приближения к искомому решению. Итерационный процесс заканчивают на n−ом ( ) этапе при выполнении одного из двух условий (зависит от метода или от произвола пользователя):

;

.

В любом случае решением является вектор .

Порядок использования среды Mathcad 2000 для решения СНУ состоит в следующем:

1. Определяют левые части уравнений решаемой СНУ.

2. Задают начальное приближение по каждой из компонент решения.

3. Записывают ключевое слово Given.

4. Записывают СНУ, с использованием принятых в п.1 обозначений. Здесь для записи логического знака равенства следует использовать панель инструментов Boolean (булевские операторы).

5. Используют встроенную функцию для решения СНУ относительно переменных

Для определения начального приближения к решению с использованием пакета Mathcad 2000 при n=2удобно построить трёхмерные графики функций , как показано на рис. 4 и 5. Для этого сначала функции определяют (в рассматриваемом примере это f1(x1,x2) и f2(x1,x2)), а затем на панели графиков щелкают по кнопке для построения линий уровня. В нижнем левом углу появляющейся после этого рамки записывают имя функции (f1 или f2). В результатеMathcad 2000 строит на экране изображение, аналогичное, показанному на рис. 4. Для того чтобы получить искомое приближение к решению, необходимо придать линиям уровня более удобный для использования вид − левой кнопкой мыши выполнить двойной щелчёк на изображении и в открывшемся меню установить:



- на вкладке QuickPlot Data желаемые диапазоны изменения независимых переменных (Range 1 и Range 1);

- на вкладке Special установить пункт Numbered(нумерация).

 

 

Рис. 4. Построение линий уровня функций двух переменных

 

Одно из возможных исходных приближений для решения СНУ можно получить из рис. 5, а именно x1=−0.1 и x2=−0.2 − следует брать те значения независимых переменных, при которых значения обоих функций близки к нулю. С практической точки зрения, может быть, удобнее строить линии уровня обоих функций на одной координатной плоскости, а не на двух.

На рис. 6 приведен пример уточнения решения СНУ 3-го порядка с использованием пакета Mathcad 2000. Те же действия можно реализовать, используя более краткую запись, показанную на рис. 7, которая, однако, не позволяет найти величину невязки (т. е. оценить насколько найденное приближение отличается от точного решения). Итерационный процесс прекращается, если либо , либо , где CTOL>0 – вспомогательная константа, значение которой устанавливает пользователь (по умолчанию CTOL=0.001).

 

 

 


Рис. 5. Поиск исходного приближения для решения СНУ

 

Рис. 6. Уточнение положения корня СНУ

 

 

 

 

Рис. 7. Уточнение положения корня СНУ

 

Функция может выполнять поиск решения СНУ тремя различными методами (сопряженных градиентов, квази-ньютоновский или Левенберга). Для выбора метода решения следует:

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

2. В ниспадающем контекстном меню установить указатель мыши на пункт Nonlinear.

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

 



<== предыдущая лекция | следующая лекция ==>
Решение нелинейного уравнения | ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.551 сек.