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. 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 = 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