Кроме предопределенных моделей, описанных в предыдущем пункте Стандартные параметрические и непараметрические модели, пользователь приложения cftool имеет возможность создавать собственные модели, в которые искомые параметры входят как линейно, так и нелинейно. Для создания собственной модели следует в окне выбора модели выбрать пункт Custom Equations (Рис. 16)
Рис. 16 Вид области окна управления моделями при выборе Custom Equations
В области окна управления моделями можно выделить две области
1. Область задания имен зависимых (y) и независимых (x) переменных (другими словами определение вида функции).
2. Область задания параметрической модели путем последовательного добавления функции при искомых коэффициентах. Для добавления каждой следующей функции требуется нажать клавишу <Enter>.
Пусть, например, требуется создать параметрическую модель
Рис. 17 Создание параметрической модели a1.*x*exp(-x)+a2.*exp(-x)+a3
Формулы набираются в соответствии с правилами MATLAB с использованием знаков +, -, *, /, ^ (возведение в степень) для арифметических операций, круглых скобок для изменения их приоритета и встроенных математических функций, список которых можно получить, задав в командном окне MATLAB команду
>> help elfun
В следующей таблице приведены наиболее часто используемые функции
Тригонометрические функции (аргумент задается в радианах) | |
sin, cos, tan, cot | Синус, косинус, тангенс и котангенс |
sec, csc | Секанс, косеканс |
Обратные тригонометрические функции (результат вычисляется в радианах) | |
asin, acos, atan, acot | Арксинус, арккосинус, арктангенс и арккотангенс |
asec, acsc | Арксеканс, арккосеканс |
Гиперболические функции | |
sinh, cosh, tanh, coth | Гиперболические синус, косинус, тангенс и котангенс |
sech, csch | Гиперболические секанс и косеканс |
asinh, acosh, atanh, acoth | Гиперболические арксинус, арккосинус, арктангенс и арккотангенс |
Экспоненциальная функция, логарифмы, степенные функции | |
Exp | Экспоненциальная функция |
log, log2, log10 | Натуральный логарифм, логарифмы по основанию 2 и 10 |
Sqrt | Квадратный корень |
Модуль, знак | |
abs, sign | Модуль и знак числа |
После набора формулы модели и нажатия кнопки Fit (команды на исполнение), окно Curve Fitting Toolbox будет иметь вид (Рис. 18).
Рис. 18 Вид рабочей области окна Curve Fitting Toolbox после выполнения приближения с использованием созданной модели a1.*x*exp(-x)+a2.*exp(-x)+a3
Приведем пример того, что начальное приближение к искомым параметрам играет большую роль при подборе параметров в нелинейной модели. В командном окне введем следующие данные в глобальные переменные x и y рабочей среды:
>> x=0:0.1:3;
>> y=exp(-2*x.^2).*sin(4*x.^2)+exp(-x.^2).*sin(x)+0.01*rand(size(x));
Далее импортируем их в приложение cftool так, как описано выше (рис. 6). В окне Fitting создадим новое приближение с именем Mainfit1 и определим следующую нелинейную параметрическую модель
введя выражение
exp(-a*x^2)*sin(b*x^2)+ exp(-с*x^2)*sin(в*x)
в окне задания модели пользователя (Рис. 19)
Рис. 19 Задание модели exp(-a*x^2)*sin(b*x^2)+ exp(-с*x^2)*sin(в*x)
Установим в качестве начальных приближений для параметров следующие значения
a=5 b=5 c=5 d=5
Для корректировки начальных приближений нужно открыть закладку < Fit Options > (Рис. 20).
Рис. 20 Корректировка коэффициентов модели начальных приближений
Далее закрываем окно корректировки начальных приближений для параметров и запускаем процесс приближения данных заданной нами моделью, нажав кнопку < Fit >.
Получается хорошее приближение (см. рис. 21). Теперь создадим еще одно приближение с именем Mainfit2 с той же самой параметрической моделью и установим другие начальные приближения для параметров
а = -0,1
b = 0,1
c = 0,1
d = 0,1
Результаты приближения с такими параметрами представлены на Рис.22.
Рис. 21 Вид рабочей области окна Curve Fitting Toolbox после выполнения приближения с использованием созданной модели exp(-a*x^2)*sin(b*x^2)+ exp(-с*x^2)*sin(в*x) и коэффициентов начальных приближений a=b=c=d=5
Рис. 22 Вид рабочей области окна Curve Fitting Toolbox после выполнения приближения с использованием созданной модели exp(-a*x^2)*sin(b*x^2)+ exp(-с*x^2)*sin(в*x) и коэффициентов начальных приближений a=-0,1 b=0,1 c=0,1 d=0,1
Результаты для одной и той же параметрической модели с различными начальными значениями параметров отличаются друг от друга.