русс | укр

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

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

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

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


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

Систем алгебраических уравнений


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


 

Команда FSOLVE – решает численно систему линейных или нелинейных уравнений F(X)=0 , где X – вектор, а F(X) – функция, которая возвращает значение вектора.

 

X = fsolve (fun, x0)

X = fsolve (fun, x0, options)

X = fsolve (fun, x0, options, P1, P2...)

[X, fval] = fsolve (...)

[X, fval, exitflag] = fsolve (...)

[X, fval, exitflag, output, jacobian] = fsolve (...)

 

X = fsolve (fun, x0) – начинается в x0 и пытается решить уравнения, описанные в fun;

X = fsolve (fun, x0, options) – решая уравнения, описанные в fun, минимизирует погрешность с параметрами оптимизации, указанными в структуре options (используйте команду optimset, чтобы установить эти параметры);

X = fsolve (fun, x0, options, P1, P2...) – дает решение, подобное описанному выше, передавая дополнительные параметры p1, р2, ... в m-файл F всякий раз, когда он вызывается (вычисление функций fun). Используйте options=[], если никакие параметры не задаются (опции используются по умолчанию);

[X, fval] = fsolve (...) – кроме решения X возвращает в fval значение fun функции для полученного решения Х.

[X, fval, exitflag] = fsolve (...) – дополнительно возвращает значение exitflag, который описывает условие (состояние) выхода.

[X, fval, exitflag, output] = fsolve (...) – дополнительно возвращает структуру output, которая содержит информацию об оптимизации.

[X, fval, exitflag, output, jacobian] = fsolve (...) – дополнительно возвращает Якобиан для fun при решении.

 

Команда OPTIMSET – задает, изменяет или выводит структуру свойств (опций) для решателя FSOLVE систем алгебраических уравнений F(X)=0:

 

options = optimset('param1',value1,'param2',value2,...)

options = optimset

options = optimset(optimfun)

options = optimset(oldopts,'param1',value1,...)

options = optimset(oldopts,newopts)



optimset

 

options = optimset('param1',value1,'param2',value2,...) – формирует массив параметров (структуру) options, в котором параметрам (опциям) с именами 'param1', 'param2', … приписываются некоторые значения value1, value2,…(достаточно указать только первый символ); неприсвоенному значению приписывается пустой массив [];

options = optimset – формирует массив параметров (структуру) options, в котором всем параметрам устанавливаются значения [];

options = optimset(optimfun) – формируется массив параметров options из всех возможных параметров, значения которых выбираются так, чтобы оптимизировать функцию optimfun;

options = optimset(oldopts,'param1',value1,...) – заменяет значения отдельных свойств (опций);

options = optimset(oldopts,newopts) – заменяется набор старых свойств набором новых, но если при этом для какого-либо из новых свойств указано [], то сохраняется прежнее значение этого свойства;

optimset – выводит список всех параметров (опций) с указанием их возможных значений и значений по умолчанию в фигурных скобках.

 

Параметры

Свойство Значение Описание
Display   'off' 'iter' 'final' notify' Уровень показа: 'off' не показывает ничего; 'iter' показывает при каждом повторении; 'final' показывает конечный результат; 'notify' показывает выходящее значение, если только функция не сходится
MaxFunEvals положительное целое число Максимальное число позволенных оценок функции
MaxIter положительное целое число Максимальное число позволенных повторений
TolFun положительный скаляр Подходящий предел значения функции
TolX положительный скаляр Подходящий предел x

 

 

Границы погрешностей интегрирования

Свойство Значение Описание
DerivativeCheck 'on' | {'off'} вкл | {выкл} Сравните указанные пользователем аналитические производные (градиенты или функциональный определитель(якобиан)) с конечными различными производными.

 

Дополнительные характеристики

Свойство Значение Описание
Diagnostics 'on' | {'off'} вкл | {выкл} Показывает диагностическую информацию о функции, которая будет минимизирована или решена
DiffMaxChange положительный скаляр | {1e-1}   Максимальные изменения в переменных для конечных различных производных
DiffMinChange положительный скаляр | {1e-8}   Минимальные изменения в переменных для конечных различных производных
GoalsExactAchieve положительное скалярное целое число | {0} Число точно достигнутых значений
GradConstr 'on' | {'off'} вкл | {выкл} Градиенты для нелинейных ограничений, определенных пользо-вателем
GradObj 'on' | {'off'} вкл | {выкл} Градиент(ы) для объективной функции(й), определенной пользователем
Hessian 'on' | {'off'} вкл | {выкл} Определитель Гессе для объективной функции, определенной пользователем
HessMult функция | {[]}   Определитель Гессе умножает функцию, указанную пользователем
HessPattern редкая матрица | {редкая матрица всех}   Разряженный образец определителя Гессе для конечной разного. Размером матрицы – n-на-n, где n – число (номер) элементов в x0, начальной точке
HessUpdate {'bfgs'} | 'dfp' | 'gillmurray' | 'steepdesc' Квази–Ньютон, обновляющий схему
Jacobian 'on' | {'off'} вкл | {выкл} Функциональный определитель (Якобиан) для объективной функции, определенной пользо-вателем
JacobMult функция | {[]}   Функциональный определитель (Якобиан) умножает функцию, определенную пользователем

 

 

JacobPattern редкая матрица | {редкая матрица всех}   Разряженный образец функционального определителя (Якобиана) для конечного различного. Размер матрицы – m-на-n, где m. - число величина в первом аргументе, указанная пользователем возвращенной функции fun, и n – число элементов в x0, начальной точке
LargeScale вкл | {выкл} Используйте крупномасштабный алгоритм если возможно. Исключение: постороннее значение для fsolve 'выключен'
LevenbergMarquardt вкл | {выкл} Предпочитает Левенберг-Марквардт алгоритму Гаусс-Ньютона
LineSearchType 'cubicpoly' | {'quadcubic'} Выбор алгоритма поиска линии
MaxPCGIter положительное целое число Максимальное число (номер) PCG позволенных повторений. Пользовательское значение больше 1 и нижнее (n/2)), где n – число (номер) элементов в x0, начальной точке
MeritFunction 'singleobj' | {'multiobj'} Использование значений достигших min/max присваивает данной функции (многопеременную) против fmincon
MinAbsMax положительное скалярное целое число | {0} Уменьшается худший результат функции F(x)
PrecondBandWidth положительное целое число | {0} | Inf Верхняя полоса пропускания предусловия для PCG
TolCon положительный скаляр Предел терпимости при нарушении ограничения
TolPCG положительный скаляр | {0.1} Предел терпимости завершения на PCG повторении
TypicalX вектор всех Типичные значения x. Длина вектора равна числу (номеру) элементов в x0, начальной точке

 

При численном решении средствами MATLAB системы СЛАУ

2,74×x1 -1,18× x2 +3,17× x3 =2,18,

0,18×x1 +1,27×x2 +0,76×x3 =3,23,

1,12×x1 + 0,83×x2 -2,16× x3 =-1,15

 

получаем для m-файла LR32.m

 

 

Тогда в окне команд MATLAB выполняем команды

 

»X0=[2.18; 3.23; -1.15]; % Vektor-stolbec 1-oe priblizenie

»options=optimset('Display','iter'); % Option to display output

»[X,fval] = fsolve(@LR32,X0,options); % Call optimizer

 

Norm of First-order Trust-region

Iteration Func-count f(x) step optimality radius

1 4 90.2515 30.2 1

2 8 42.0441 1 14.3 1

3 12 0.656521 2.5 2.28 2.5

4 16 2.05397e-017 0.325186 1.27e-008 6.25

 

Optimization terminated successfully:

 

First-order optimality is less than options.TolFun.

 

Ответ: X =[0.0969; 1.7732; 1.2640]

fval = 1.0e-008 *[0.3612; 0.1543; 0.2261]

 

 

При численном решении средствами MATLAB системы нелинейных алгебраических уравнений вида

 

 

Получаем M-файл в виде:

 

 

Тогда в окне команд MATLAB выполняем

 

»X0=[-6; -5; 0]; % Vektor-stolbec 1-oe priblizenie

»options=optimset('Display','iter'); % Option to display output

»[X,fval] = fsolve(@LR34,X0,options); % Call optimizer

 

И получаем ответ в окне команд:

 

Приложение 5



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


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


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

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

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


 


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

 
 

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

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