ОБОБЩЕННЫЕ МАТРИЦЫ АДАМАРА

Алгоритм сжатия. Ищет минимаксные ортогональные матрицы с минимальным максимальным по абсолютной величине элементом (Cretan matrices). В частности, при четном порядке находит матрицы Адамара или С-матрицы.

SBIBD-матрица, помимо максимальных по абсолютной величине элементов, имеет (n–1)/2 приводимых (потенциальных) диагоналей по n равновеликих элементов, n – нечетное. У матриц четного порядка явно выделенная диагональ отсутствует или она одна (C-матрицы), для прочих матриц в той же оценке фигурирует половинная размерность, см. матрицу 22-го порядка. Интерес к регулярным матрицам обусловлен тем, что они близки к оптимальным или являются ими для n=1, 3, 5, 11.

ТАБЛИЦА M-НОРМ (MAX ENTRY)

МИНИМАКСНЫЙ ОКТАЭДР

Геометрическая интерпретация. Дан единичный куб, найти максимальный вписанный октаэдр. Двойственная формулировка. Найти минимальный октаэдр, описанный около единичного куба.


%toolbox hadamard, 
if tick=0, n=3, p=0.95, M=0.5,  
A=hilbert(n M M), %mesh(A), norms(A), 
sn=sqrt(n), m=max(abs(A)), i=0, 
end,

% СОРТИРОВКА,
A=sortm(A),
% ПРОФИЛЬ ПОНИЖЕНИЯ НОРМЫ,
p=0.995*p+0.005, A=sat(A m*p),
% m=min(abs(A)), % A=satm(A m/p), 
% ВОССТАНОВЛЕНИЕ ОРТОГОНАЛЬНОСТИ МАТРИЦЫ, 
A=orth(A), m=max(abs(A)), p=?, m=?,  
Q=sortz(A), show3D(Q),   
% СТОП и ВЫВОД,
if p>0.99, B=sortz(A), 
B={B/m}, % mesh(B), B=?m, 
else, ticker(1), end,

function: show3D(A),
var i n x y z a b X Y P, 
P=iniFG(0 '#222233' 160 240),
a=220, b=150, z=0, n=size(A),
CY='#227799',  CT='#226688',
CX1='#55ddFF', CX2='#5599FF',  
CB1='#227799', CB2='#3399aa',
CF1='#225577', CF2='#225577',
% CUB,
x=100*m, y=100*m, z=30*m, 
X=[a+x+z a+x+z], Y=[b+y-z b-y-z],
addFG(P 'T' 'F' CY X Y), 
X=[a-x+z a-x+z], Y=[b+y-z b-y-z],
addFG(P 'T' 'F' CY X Y),
X=[a-x-z a-x+z], Y=[b+y+z b+y-z],
addFG(P 'T' 'F' CY X Y),
X=[a-x-z a-x+z], Y=[b-y+z b-y-z],
addFG(P 'T' 'F' CY X Y),  
X1=a-x+z, X2=a+x+z, Y1=b-y-z, Y2=b+y-z,
X=[X1 X1 X2 X2], Y=[Y1 Y1+1 Y1+1 Y1],
addFG(P 'T' 'F' CY X Y),  
X=[X1 X1 X2 X2], Y=[Y2 Y2+1 Y2+1 Y2],
addFG(P 'T' 'F' CY X Y),  
% FLAT PARTS,
for i=0:n,
x=A[0][i]*100, y=A[1][i]*100, z=A[2][i]*30,
if i=0, 
X1=a+x-z, Y1=b-y+z, 
X2=a-x+z, Y2=b+y-z, else, 
X1={[X1 a+x-z]}, Y1={[Y1 b-y+z]}, 
X2={[X2 a-x+z]}, Y2={[Y2 b+y-z]},
end, end, 
X={X2}, Y={Y2}, 
addFG(P 'T' 'F' CB1 X Y),
X[1]=X1[1], Y[1]=Y1[1],
addFG(P 'T' 'F' CB2 X Y),
X={X1}, Y={Y1}, X[0]=X2[0], Y[0]=Y2[0],
addFG(P 'T' 'F' CB1 X Y),
X={X1}, Y={Y1}, X[2]=X2[2], Y[2]=Y2[2],
addFG(P 'T' 'F' CT X Y),
% DRAW AXIS,
for i=0:2,
x=A[0][i]*100, y=A[1][i]*100, z=A[2][i]*30,
X=[a a+x-z], Y=[b b-y+z],
addFG(P 'T' 'F' CX1 X Y),
X=[a a-x+z], Y=[b b+y-z], 
addFG(P 'T' 'F' CX2 X Y), 
end, 
% FRONT FLATS,
addFG(P 'T' 'F' CF1 X1 Y1),
X={X2}, Y={Y2}, X[0]=X1[0], Y[0]=Y1[0],
addFG(P 'T' 'F' CF2 X Y),
% CUB,
x=100*m, y=100*m, z=30*m,  
X=[a+x-z a+x-z], Y=[b+y+z b-y+z],
addFG(P 'T' 'F' CY X Y), 
X=[a-x-z a-x-z], Y=[b+y+z b-y+z],
addFG(P 'T' 'F' CY X Y), 
X=[a+x-z a+x+z], Y=[b+y+z b+y-z],
addFG(P 'T' 'F' CY X Y),
X=[a+x-z a+x+z], Y=[b-y+z b-y-z],
addFG(P 'T' 'F' CY X Y),  
X1=a-x-z, X2=a+x-z, Y1=b-y+z, Y2=b+y+z,
X=[X1 X1 X2 X2], Y=[Y1 Y1+1 Y1+1 Y1],
addFG(P 'T' 'F' CY X Y),  
X=[X1 X1 X2 X2], Y=[Y2 Y2+1 Y2+1 Y2],
addFG(P 'T' 'F' CY X Y),  
show(P),
end,

МАТРИЦЫ АДАМАРА


%toolbox hadamard, n=4, A=hadamard(n), mesh(A), A=?m,

C-МАТРИЦЫ БЕЛЕВИЧА


%toolbox hadamard, n=6, A=conference(n), mesh(A), A=?m,



Rambler's Top100