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 матрица, и используйте три независимых переменные, когда тестовые данные являются 3D массивом.

  • Первый вектор независимой переменной задает координаты, спускающиеся по строкам тестовых данных, и второй вектор независимой переменной задает координаты, идущие через столбцы тестовых данных. Вектор независимой переменной 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Оценка содержит различие между тестовыми данными и заданной функцией независимых переменных.

Примеры

развернуть все

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

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 = 1.5751e-29

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 соответствует функции.

Смотрите также

Введенный в R2017b