evalRequirement

Класс: sdo.requirements.FunctionMatching
Пакет: sdo.requirements

Оцените удовлетворенность требования соответствия функции

Синтаксис

evaluation = evalRequirement(requirement,dependentVar)
evaluation = evalRequirement(requirement,dependentVar,indepVar1,...,indepVarN)

Описание

evaluation = evalRequirement(requirement,dependentVar) оценивает ли тестовые данные dependentVar соответствует функции, заданной в Type свойство requirement объект. Программа вычисляет указанную функцию, используя независимые векторы переменной по умолчанию со значением [0 1 2 ...]. Существует независимый вектор переменной, соответствующий каждой размерности dependentVar, и длина каждого независимого вектора переменной совпадает с размером dependentVar в соответствующей размерности.

Например, рассмотрим двумерное dependentVar размера 3 на 2. Чтобы вычислить линейную функцию вида a0+a1X1+a2X2программа использует независимые векторы переменных X1 = [0 1 2] и X2 = [0 1]. Программа вычисляет коэффициенты аппроксимации a0, a1, и a2 а затем вычисляет ошибку между тестовыми данными и линейной функцией.

evaluation = evalRequirement(requirement,dependentVar,indepVar1,...,indepVarN) задает независимые векторы переменных, которые будут использоваться для вычисления функции.

Входные параметры

расширить все

Требование соответствия функций, заданное как sdo.requirements.FunctionMatching объект. Вы задаете функцию, которая будет совпадать в requirement.Type.

Зависимые тестовые данные для оценки, заданные в виде вектора, матрицы или многомерного массива.

Независимые векторы переменной, используемые для вычисления функции, заданные как вещественные, числовые, монотонные векторы. Независимые векторы переменной должны удовлетворять следующим характеристикам:

  • Количество независимых переменных, N должно равняться количеству размерностей тестовых данных.

    Для примера используйте две независимые переменные, когда тестовые данные dependentVar является матрицей и использует три независимые переменные, когда тестовые данные являются трехмерным массивом.

  • Первый независимый вектор переменной задает координаты, идущие вниз по строкам тестовых данных, а второй независимый вектор переменной задает координаты, идущие между столбцами тестовых данных. Nth независимый вектор переменной задает координаты вдоль Nth размерность dependentVar.

  • Количество элементов в каждом независимом векторе переменной должно совпадать с размером тестовых данных в соответствующей размерности.

  • Независимые векторы переменных должны быть монотонно увеличивающимися или уменьшающимися.

В объекте требования можно задать центрирование и масштабирование независимых переменных с помощью Centers и Scales свойства. Заданные вами независимые векторы переменных делятся на эти Scales значения после вычитания Centers значения. Для получения дополнительной информации смотрите описания свойств на sdo.requirements.FunctionMatching страница с описанием.

Можно также задать независимые векторы переменных с помощью массива ячеек. Количество элементов в массиве ячеек должно совпадать с количеством размерностей в тестовых данных, dependentVar. Например, предположим, что dependentVar является двумерным, можно использовать любой из следующих синтаксисов:

evaluation = evalRequirement(requirement,dependentVar,independentVar1,independentVar2);
evaluation = evalRequirement(requirement,dependentVar,{independentVar1,independentVar2});

Выходные аргументы

расширить все

Оценка требования соответствия функции, возвращенная в виде скаляра, вектора, матрицы или массива, в зависимости от значения requirement.Method.

evalRequirement вычисляет сигнал ошибки, который является различием между тестовыми данными и заданной функцией независимых переменных. Сигнал ошибки затем обрабатывается далее, чтобы вычислить evaluation. Значение evaluation зависит от метода обработки ошибок, заданного в requirement.Method.

requirement.Methodevaluation
'SSE'

evaluation возвращается как скалярное значение, равное сумме квадратов ошибок.

Положительное значение указывает, что требование нарушено, и 0 значение указывает, что требование удовлетворено. Чем ближе evaluation является 0, чем лучше соответствие между функцией и тестовыми данными.

'SAE'

evaluation возвращается как скалярное значение, равное сумме абсолютных значений ошибок.

Положительное значение указывает, что требование нарушено, и 0 значение указывает, что требование удовлетворено. Чем ближе evaluation является 0, чем лучше соответствие между функцией и тестовыми данными.

'Residuals'evaluation возвращается в виде вектора, матрицы или массива того же размера, что и тестовые данные dependentVar. evaluation содержит различие между тестовыми данными и заданной функцией независимых переменных.

Примеры

расширить все

Создайте объект требования, чтобы соответствовать одномерным данным переменной линейной функции.

Requirement = sdo.requirements.FunctionMatching;

Задайте Centers и Scales свойства для одномерной переменной при помощи set команда. Вы задаете эти свойства, потому что их значения по умолчанию для двумерной переменной.

set(Requirement,'Centers',0,'Scales',1);

Задайте тестовые данные для одномерной переменной.

dependentVariable = 0.5+5.*(1:5);

Оцените требование.

evaluation = evalRequirement(Requirement,dependentVariable)
evaluation = 5.6798e-30

Программа вычисляет линейную функцию с помощью независимого вектора переменной по умолчанию [0 1 2 3 4] потому что вы не задали никаких независимых векторов переменных. Существует одна независимая переменная, потому что количество независимых переменных должно равняться количеству размерностей тестовых данных. Размер независимого вектора переменной равен размеру тестовых данных.

В этом примере метод обработки имеет значение по умолчанию 'SSE', так evaluation возвращается как скалярное значение, равное сумме квадратов ошибок. evaluation очень близко к нулю, что указывает на то, что dependentVariable тестовые данные почти совпадают с линейной функцией. Обратите внимание, что точность машины может повлиять на значение evaluation при таких малых значениях.

Создайте объект требования и укажите функцию, которая будет совпадать.

Requirement = sdo.requirements.FunctionMatching('Type','purequadratic');

Объект задает, что переменные должны совпадать с квадратичной функцией без перекрестных терминов.

Создайте 2-мерные тестовые данные для переменной.

[X1,X2] = ndgrid((-1:1),(-4:2:4));
dependentVar = X1.^2 + X2.^2;

Задайте независимые векторы переменных, чтобы вычислить квадратичную функцию.

Количество независимых векторов переменной должно равняться размерности тестовых данных. В сложение независимые векторы переменной должны быть монотонными и иметь тот же размер, что и тестовые данные в соответствующей размерности.

indepVar1 = (-2:0);
indepVar2 = (-6:2:2);

Оцените, удовлетворяют ли тестовые данные требованию.

evaluation = evalRequirement(Requirement,dependentVar,indepVar1,indepVar2)
evaluation = 2.0681e-29

The evalRequirement команда вычисляет сигнал ошибки, который является различием между тестовыми данными и функцией независимых векторов переменной. Сигнал ошибки дополнительно обрабатывается, чтобы вычислить evaluation, на основе метода обработки ошибок, указанного в Requirement.Method.

В этом примере метод обработки имеет значение по умолчанию 'SSE', так evaluation возвращается как скалярное значение, равное сумме квадратов ошибок. evaluation очень близко к нулю, что указывает на то, что dependentVariable тестовые данные почти совпадают с чистой квадратичной функцией.

Создайте тестовые данные с перекрестными терминами.

dependentVariable2 = X1.^2 + X2.^2 + X1.*X2;

Оцените потребность в новых тестовых данных.

evaluation2 = evalRequirement(Requirement,dependentVariable2,indepVar1,indepVar2)
evaluation2 = 5.3333

Область выхода evaluation2 больше evaluation и существенно отличается от 0, что указывает на то, что dependentVariable2 не подходит для чистой квадратичной функции, а также dependentVariable подходит для функции.

Введенный в R2016b