русс | укр

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

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

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

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


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

Цель работы


Дата добавления: 2014-11-28; просмотров: 588; Нарушение авторских прав


1. Знакомство с численными методами решения нелинейных алгебраичесмких уравнений и их систем.

2. Разработка численной ММ, реализующей один из методов.

3. Решение систем нелинейных уравнений при помощи средств MATLAB.

 

Во многих случаях применение линейных моделей даже для приближенного описания реальных явлений уже недостаточно. Одной из наиболее известных классических нелинейных задач является нахождение нулей полинома. Среди источников систем нелинейных уравнений можно выделить задачи вычисления интегралов (квадратурные формулы Гаусса для вычисления площадей), задачи минимизации функции, задачи интерполяции данных в нелинейных моделях, усложненные модели популяций и т.д. [3]. При этом между линейными и нелинейными уравнениями можно выделить следующие фундаментальные отличия:

1. Любая невырожденная СЛАУ имеет единственное решение. Для нелинейных уравнений вещественных решений может не существовать вообще (как, например, для уравнения f(x)=sinx+2=0), или их может быть много, как в уравнении f(x)=sinx=0.

2. Любая СЛАУ может быть точно решена за фиксированное, конечное число арифметических операций (примерно n3/3 для метода исключений Гаусса). Только некоторые нелинейные уравнения специального вида могут быть решены точно за конечное число шагов (полиномы до 4-ой степени).

3. Значительные трудности обеспечения гарантий существования решения или сходимости к нему для СНЛУ.

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

В общем случае систему нелинейных уравнений можно представить в виде F(X)=0 или

 

f1 (x1, x2,…,xn)=0,



f2 (x1, x2,…,xn)=0, (1)

………………………

fn (x1, x2,…,xn)=0.

 

Тогда решением системы будет вектор X*={x1*, x2*,…, xn*}, при подстановке которого в каждое уравнение системы получаем истинные равенства F(X*)=0.

С учетом использования приближенных методов понятие «решение» расширяют.

Говорят, что приближенно удовлетворяет («решает») системе(у) F(X)=0, если , или приближенно равен решению X*, если .

Решение отдельного нелинейного уравнения f(x)=0 (f(x) – непрерывная функция на интервале [a,b]) с учетом возможности множества решений включает два этапа. На первом, который называется отделением корней, находятся интервалы [a,b]k, длина которых не больше единицы, а функция на концах имеет противоположные знаки. В качестве алгоритма можно использовать простой перебор значений аргумента с некоторым шагом h (xi+1=xi+h), вплоть до наступления моментов f(xi+1)×f(xi)<0. На втором для каждого выделенного k-го интервала уточняются значения корня одним из рассматриваемых далее методов.

Метод половинного деления (бисекции, дихотомии, проб) на каждом шаге итерации (сужения) делит текущий интервал [a,b] пополам: с=(a+b)/2.

Если выполняется условие |f(c)|<e, то c является искомым корнем. В противном случае выбирается та часть интервала ([a,c] или [c,b]), на границах которого функция имеет различные знаки. Далее процедура повторяется. Для устранения ситуаций «зацикливание», а также ускорения процесса нахождения корня желательно ограничить число приближений к корню 30 итерациями.

Метод простой итерации (последовательных приближений) предполагает замену исходного уравнения вида f(x)=0 на равносильное ему уравнение x=g(x). Далее текущее k-е приближение xk подставляют в правую часть преобразованного уравнения, получая в левой части более точное k+1xk+1=g(xk). Процесс начинается с произвольного выбора начального приближения x0 и заканчивается при выполнении условия |xk+1-xk|<e или |f(xk)|<e. Контроль сходимости метода может быть осуществлен при помощи условия |g¢(xk)|=|(g(xk)-g(xk-1))/(xk-xk-1)|<1, если оно не выполняется необходимо прекращать вычисления.

Кроме того, могут быть использованы метод Ньютона (касательных), метод хорд (ложного положения, пропорциональных частей), их комбинация, а также метод секущих [3, 6].

При решении систем нелинейных уравнений можно выделить метод простой итерации и метод Ньютона.

Метод простой итерации является развитием аналогичного метода для одного уравнения (аналогичен методу простой итерации для решения СЛАУ см. л.р. №3) и основан на допущении о возможности преобразования системы (1) к виду (2)

 

x1=g1 (x1, x2,…,xn),

x2=g2 (x1, x2,…,xn), (2)

………………………

xn=gn (x1, x2,…,xn).

 

Успех процесса приближения во многом определяется удачным выбором начального вектора Xk=1 (он должно быть достаточно близким к истинному решению). Метод гарантированно сходится, если выполняется условие ||J(x1, x2,…,xn)||<1, где J(x1, x2,…,xn) – матрица Якоби для функций g1,…, gn, а ||J|| – ее норма. Тогда для системы из двух уравнений

 

,

 

а начальное приближение должно удовлетворять условиям и .

Метод Ньютона реализует идею предварительной линеаризации исходной СНЛУ, он обеспечивает значительно более быструю сходимость и является наиболее распространенным методом. В основе его лежит разложение функции в ряд Тейлора. Тогда для системы (1), состоящей из двух уравнений для двух неизвестных, получим:

 

(3)

 

где R1 и R2 члены ряда более высоких порядков.

Если приращения Dx1 и Dx2 выбрать так, чтобы величины x1+Dx1 и x2+Dx2 были близки к корням, то левые части соответствующих уравнений системы (3) будут примерно равны нулю. Отбросив члены более высоких порядков, сведем задачу к решению системы линейных алгебраических уравнений:

 

или ,

 

где решением является вектор DХ={Dx1, Dx2}. Найденные значения Dx1, Dx2 используют в виде поправок к текущему приближению Xk+1=Xk+k. Расчет прекращается при выполнении условия k<e.

Примеры решения нелинейных уравнений и систем средствами MATLAB см. в прил. 4.

 



<== предыдущая лекция | следующая лекция ==>
Преимущества и недостатки одноранговых сетей | Топология сети


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


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

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

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


 


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

 
 

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

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