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

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

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

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

    5.0757   38.2414

Область значений между этими нижними и верхними границами является довольно большой. Можно получить более точную оценку. Вспомните, что количество условия n-by-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.2579

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

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

Алгоритмы

Смотрите wcgain.

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

| |

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