wcnorm

Норма неопределенности матрицы в худшем случае

Синтаксис

maxnorm = wcnorm(m)
[maxnorm,wcu] = wcnorm(m)
[maxnorm,wcu] = wcnorm(m,opts)
[maxnorm,wcu,info] = wcnorm(m)
[maxnorm,wcu,info] = wcnorm(m,opts)

Описание

Норма неопределенной матрицы обычно зависит от значений ее неопределенных элементов. Определение максимальной нормы по всем допустимым значениям неопределенных элементов называется анализом нормы наихудшего случая. Максимальная норма называется нормой наихудшего случая.

Как и в других инструментах анализа неопределенных систем, вычисляются только ограничения нормы наихудшего случая. Точное значение нормы наихудшего случая гарантированно находится между этими верхней и нижней границами.

Основной синтаксис

Предположим mat является umat или uss с M неопределенными элементами. Результаты

[maxnorm,maxnormunc] = wcnorm(mat) 

maxnorm представляет собой структуру со следующими полями.

Область

Описание

LowerBound

Нижняя граница нормы наихудшего случая, положительная скалярная величина.

UpperBound

Верхняя граница нормы наихудшего случая, положительная скалярная величина.

maxnormunc является структурой, которая включает значения неопределенных элементов и максимизирует матричную норму. Существует M имени полей, которые являются именами неопределенных элементов mat. Значение каждого поля является соответствующим значением неопределенного элемента, таким образом, что при совместном объединении приводит к нормальному значению в maxnorm.LowerBound. Следующая команда показывает норму:

 norm(usubs(mat,maxnormunc)) 

Основной синтаксис с третьим выходным аргументом

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

[maxnorm,maxnormunc,info] = wcnorm(mat) 

Третий выходной аргумент info - структура со следующими полями:

Область

Описание

Model

Индекс модели с наибольшим усилением (когда mat - массив неопределенных матриц)

WorstPerturbation

Структура наихудших значений неопределенности. Поля info.WorstPerturbation являются ли имена неопределенных элементов в mat, и каждое поле содержит значение в худшем случае соответствующего элемента.

Sensitivity

A struct с M полями. Имена полей являются именами неопределенных элементов sys. Значения полей являются положительными числами, каждая запись указывает на локальную чувствительность нормы наихудшего случая в maxnorm.LowerBound ко всем областям значений неопределенности отдельных неопределенных элементов. Например, значение 25 указывает, что если область значений неопределенности увеличивается на 8%, то норма худшего случая должна увеличиться примерно на 2%. Если на Sensitivity свойство wcOptions объект 'off', значения NaN.

BadUncertainValues

То же, что и WorstPerturbation. Включен для совместимости с R2016a и более ранними версиями.
ArrayIndexТо же, что и Model. Включен для совместимости с R2016a и более ранними версиями.

Примеры

свернуть все

Создайте неопределенную матрицу и вычислите норму наихудшего случая матрицы и ее обратной. Эти расчеты позволяют вам точно оценить худший случай или самое большое значение числа обусловленности матрицы.

a = ureal('a',5,'Range',[4 6]); 
b = ureal('b',3,'Range',[2 10]); 
c = ureal('c',9,'Range',[8 11]); 
d = ureal('d',1,'Range',[0 2]); 

M = [a b;c d];
Mi = inv(M);

maxnormM = wcnorm(M)
maxnormM = struct with fields:
    LowerBound: 14.7199
    UpperBound: 14.7227

maxnormMi = wcnorm(Mi)
maxnormMi = struct with fields:
    LowerBound: 2.5963
    UpperBound: 2.5968

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

condUpperBound = maxnormM.UpperBound*maxnormMi.UpperBound; 
condLowerBound = cond(M.NominalValue); 
[condLowerBound condUpperBound]
ans = 1×2

    5.0757   38.2312

Область значений между этими нижней и верхней границами довольно велика. Вы можете получить более точную оценку. Напомним, что число обусловленности матрицы n на m M может быть выражена как оптимизация, где свободная ограниченная нормами матрица Δ пытается выровнять усиления M и inv(M):

κ(M)=maxΔCm×m(σmax(MΔM-1))σmax(Δ)1

Если M неопределенен, тогда число худших обусловленности включает дальнейшую максимизацию над возможными значениями M. Поэтому можно вычислить число обусловленности неопределенной матрицы с помощью ucomplexm неопределенный элемент и использование wcnorm для выполнения максимизации.

Создайте ucomplexm 2 на 2 элемент с номинальным значением 0.

Delta = ucomplexm('Delta',zeros(2,2));

Область значений значений, представленный Delta включает матрицы 2 на 2 с максимальным сингулярным значением, меньшим или равным 1.

Создайте выражение с участием M, Delta, и inv(M).

H = M*Delta*Mi;
opt = wcOptions('MussvOptions','m5');
[maxKappa,wcu,info] = wcnorm(H,opt);
maxKappa
maxKappa = struct with fields:
    LowerBound: 26.8406
    UpperBound: 38.2349

Проверьте, что значения в wcu сделать число обусловленности таким большим, как maxKappa.LowerBound.

cond(usubs(M,wcu))
ans = 26.9629

Алгоритмы

Посмотрите wcgain.

См. также

| |

Представлено до R2006a