Для побудови динамічної моделі ОР



Функція lsqnonlin

Оптимізаційна функція найменших квадратів lsqnonlin здійснює мінімізацію функції, що є сумою квадратів.

В найпростішому випадку функцію lsqnonlin застосовують у такому форматі:

x=lsqnonlin('fun',x0).

Функція lsqnonlin починає вирішення задачі із початкових значень шуканих параметрів x, заданих у вигляді вектора чи матриці x0, та знаходить такі значення x, що забезпечують мінімум суми квадратів функції fun:

.

Функція fun сприймає початкові значення x0 та розраховує вектор чи матрицю значень функції, обчислених відносно x.

Функція fun повинна бути описана у вигляді підпрограми-функції, в якій сформовано критерій якості моделі – функцію, що підлягає мінімізації.

При заданні функції fun слід враховувати те, що алгоритм функції lsqnonlin виконує процедуру піднесення до квадрату та підсумовування значень цієї функції. Тому, якщо критерієм якості моделі обрати середньоквадратичне відхилення, то функцію, що підлягає мінімізації слід задавати таким чином:

 

function f = fun (x)

……….

f=yr'-ye;... % різниця між розрахованими yr та експериментальними ye

% значеннями перехідного процесу САР.

 

Синтаксис функції lsqnonlin

Вхідні параметри функціїlsqnonlin можуть бути записані в одному із наведених нижче форматів:

x = lsqnonlin('fun ',x0);

x = lsqnonlin('fun ',x0,lb,ub);

x = lsqnonlin('fun ',x0,lb,ub,options,…).

Функція оптимізації lsqnonlin включає у списку своїх вхідних параметрів перелік властивостей, що впливають на хід ітераційних процесів. Ці властивості задають параметром options, який формується за допомогою функції optimset. Будь-яка властивість задається парою параметрів функції optimset, перший з яких вказує назву властивості, а другий – його значення. Розглянемо деякі параметри функції optimset:

 

options=optimset('LargeScale', 'off', MaxFunEvals, 1000, MaxIter, 1000,

                       'Tolfun', 1e-10,'TolX', 1e-10, ‘LevenbergMarquardt’, 'off').

 

Пояснення вхідних параметрів функціїlsqnonlin наведені в табл. 1.

 

Таблиця 1

Вхідні параметри функції lsqnonlin

Параметр

Опис

1

2

lb, ub

визначає нижню lb і верхню ub межі для змінних х, таким чином, що розв’язок завжди знаходиться в діапазоні lb ≤ x ≤ ub. Якщо обмежень немає, то слід задати порожні матриці [ ],[ ] для lb і ub.

options

опція, що визначає параметри оптимізації.

  LargeScale встановлює тип алгоритму: 'on' – застосовується, якщо це можливо, крупно-масштабний алгоритм; 'off' –  застосовується середньо-масштабний алгоритм.  
1

2

 

MaxFunEvals задає максимальну дозволену кількість обчислень функції.
MaxIter задає максимальну дозволену кількість ітерацій.
TolFun задає точність розрахунку заданого критерію, при досягненні якої пошук екстремуму завершується.
TolX задає точність розрахунку вхідних параметрів х, при досягненні якої пошук екстремуму завершується.
LevenbergMarquardt задає метод оптимізації для середньомасштабного алгоритму: 'on' – застосовується метод Левенберга-Марквардта; 'off' – застосовується метод Гауса-Ньютона.

 

В оптимізаційній функції lsqnonlin застосовують такі методи оптимізації: метод Левенберга-Марквардта (Levenberg–Marquardt), метод Гауса-Ньютона (Gauss-Newton) і метод, що базується на розрахунку довірчих областей (Trust Region). За замовчуванням функція lsqnonlin для середньомасштабного алгоритму застосовує метод Левенберга-Марквардта. За бажанням можно застосувати метод Ньютона-Гаусса, якщо встановити вхідний параметр Левенберга-Марквардта як 'off'.

Вихідні параметри функціїlsqnonlin можуть бути записані в одному з форматів, наведених нижче:

[x,resnorm] = lsqnonlin(...);

[x,resnorm,residual] = lsqnonlin(...);

[x,resnorm,residual,exitflag] = lsqnonlin(...);

[x,resnorm,residual,exitflag,output] = lsqnonlin(...).

Опис вихідних параметрів функціїlsqnonlin наведений у таблиці 2.


Таблиця 2


Дата добавления: 2018-04-04; просмотров: 206; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!