Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Решение системы нелинейных уравнений методом Левенберга - Марквардта




Решение системы нелинейных уравнений методом Ньютона

Для того, чтобы решить уравнение , пользуясь методом простой итерации, необходимо привести его к виду , где — сжимающее отображение. Чтобы отображение было наиболее эффективно, необходимо, чтобы в точке очередной итерации выполнялось . Будем искать решение данного уравнения в виде , тогда: Воспользуемся тем, что , и получим окончательную формулу для :

С учётом этого сжимающая функция примет вид:

Тогда алгоритм нахождения численного решения уравнения сводится к итерационной процедуре вычисления:

Для решения систем нелинейных алгебраических уравнений в пакете предлагаются две функции: FIND, MINERR. Обе функции доставляют решение системе уравнений при заданном векторе начальных приближений. Разработчики пакета указывают, что решение производится методом Левенберга-Марквардта. Этот метод пытается найти нули или минимум среднеквадратичной погрешности при решении заданной системы уравнений или системы неравенств. При решении с применением аппарата комплексных чисел раздельно решаются действительная и мнимая части уравнений.

При решении вычисляется также вектор невязки. Если его величина меньше TOL (переменная MATHCAD), система возвращает вектор переменных-неизвестных. Если для решения используется функция find, при величине вектора невязки больше TOL система сообщает: "решение не найдено". Когда используется функция minerr, вектор неизвестных возвращается даже в том случае, когда значение вектора невязки больше TOL. Наконец, если не обнаружено схождение за заданное число итераций, выдается сообщение об отсутствии сходимости (как при применении функции find, так и minerr). В любых случаях величина вектора невязки определяется значением переменной ERR.

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

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

64.Структура М – функции

М-файл-функция является типичным объектом языка программирования системы MATLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:

function var=f_name(Cnncoк_napaмeтpов)

%Основной комментарий

%Дополнительный комментарий

Тело файла с любыми выражениями

vаr=выражение

М-файл-функция имеет следующие свойства:

  • он начинается с объявления function, после которого указывается имя переменной van — выходного параметра, имя самой функции и список ее входных параметров;
  • функция возвращает свое значение и может использоваться в виде name (Список_параметров) в математических выражениях;
  • все переменные, имеющиеся в теле файла-функции, являются локальными, т. е. действуют только в пределах тела функции;
  • файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
  • правила вывода комментариев те же, что у файлов-сценариев;
  • файл-функция служит средством расширения системы MATLAB;
  • при обнаружении файла-функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB.

Последняя конструкция vаг=выражение вводится, если требуется, чтобы функция возвращала результат вычислений.

Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:

function [varl,var2....]=f_name(Список_параметров)

%Основной комментарий

%Дополнительный комментарий

Тело файла с любыми выражениями

vаг1=выражение

vаг2=выражение

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

[var1,va2,... ]=f_nаmе(Список_параметров)

После его применения переменные выхода varl, var2,... становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы. Если функция используется в виде nаmе(Список_параметров), то возвращается значение только первого выходного параметра — переменной varl.

 




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 947; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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