hyperbolicPenalty

Гиперболическое значение штрафа для точки относительно ограниченной области

    Описание

    пример

    p = hyperbolicPenalty(x,xmin,xmax) вычисляет неотрицательный (гиперболический) вектор штрафа p для точки x относительно области, ограниченной xmin и xmaxP имеет ту же размерность как x. Этот синтаксис использует значения по умолчанию 1 и 0.1 для lambda и tau параметры гиперболической функции, соответственно.

    пример

    p = hyperbolicPenalty(___,lambda,tau) задает обоих lambda и tau параметры гиперболической функции. Если lambda пустая матрица, его значение по умолчанию используется. Аналогично, если tau пустая матрица, или она не использована, ее значение по умолчанию используется вместо этого.

    Примеры

    свернуть все

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

    Вычислите значение штрафа для точки 0.1 в интервале [-2,2], с помощью значений по умолчанию для lambda и tau параметры.

    hyperbolicPenalty(0.1,-2,2)
    ans = 0.0050
    

    Вычислите значение штрафа для точки 4 вне интервала [-2,2].

    hyperbolicPenalty(4,-2,2)
    ans = 4.0033
    

    Вычислите значение штрафа для точки 0.1 в интервале [-2,2], использование lambda параметр 5.

    hyperbolicPenalty(0.1,-2,2,5)
    ans = 0.0010
    

    Вычислите значение штрафа для точки 4 вне интервала [-2,2], использование lambda параметр 5.

    hyperbolicPenalty(4,-2,2,5)
    ans = 20.0007
    

    Вычислите значение штрафа для точки 4 вне интервала [-2,2], использование tau параметр 0.5.

    hyperbolicPenalty(4,-2,2,5,0.5)
    ans = 20.0167
    

    Вычислите значение штрафа для точки [-2,0,4] относительно поля, заданного интервалами [0,1], [-1,1], и [-2,2] вдоль x, y, и z размерностей, соответственно, с помощью значения по умолчанию для lambda и tau параметр 0.

    hyperbolicPenalty([-2 0 4],[0 -1 -2],[1 1 2],1,0)
    ans = 3×1
    
         4
         0
         4
    
    

    Визуализируйте значения штрафа для интервала

    Создайте вектор из 1 001 равноотстоящей точки, распределенной между-5 и 5.

    x = -5:0.01:5;

    Вычислите штрафы за все точки в векторе, с помощью значений по умолчанию для lambda и tau параметры.

    p = hyperbolicPenalty(x,-2,2);

    Постройте точки и добавьте сетку, метки и заголовок.

    plot(x,p)
    grid
    xlabel("point position");
    ylabel("penalty value");
    title("Penalty values over an interval");

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

    свернуть все

    Укажите, для которого штраф вычисляется в виде числового скаляра, вектора или матрицы.

    Пример: [0.5; 1.6]

    Нижние границы для xВ виде числового скаляра, вектора или матрицы. Использовать то же минимальное значение для всех элементов в x задайте xmin как скаляр.

    Пример 1

    Верхние границы для xВ виде числового скаляра, вектора или матрицы. Использовать то же максимальное значение для всех элементов в x задайте xmax как скаляр.

    Пример 2

    Параметр lambda гиперболической функции в виде скаляра.

    Пример 3

    Параметр Tau гиперболической функции в виде скаляра.

    Пример: 0.3

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

    свернуть все

    Значение штрафа, возвращенное как вектор из неотрицательных элементов. Каждый элемент pi зависит от положения xi относительно интервала, заданного xmini и xmaxi. Гиперболическая функция штрафа возвращает значение:

    p(x)=λ(xxmin)+λ2(xxmin)2+τ2λ(xmaxx)+λ2(xmaxx)2+τ2

    Здесь, λ является аргументом lambda, и τ является аргументом tau. Обратите внимание на то, что для положительных значений τ возвращенное значение штрафа всегда положительно, потому что на правой стороне уравнения величина второго термина всегда больше величины первых, и величина четвертого термина всегда больше что третьего. Если τ является нулем, то возвращенный штраф является нулем в интервале, заданном границами, и это растет линейно с x вне этого интервала. Если x многомерен, то вычисление применяется независимо на каждой размерности. Функции штрафа обычно используются, чтобы сгенерировать отрицательные вознаграждения, когда ограничения нарушены, такой как в generateRewardFunction.

    Расширенные возможности

    Генерация кода C/C++
    Генерация кода C и C++ с помощью MATLAB® Coder™.

    Введенный в R2021b
    Для просмотра документации необходимо авторизоваться на сайте