% Linear Algebra library % Heber Herencia-Zapana NIA % Gilberto Pérez University of Coruña Spain % Pablo Ascariz University of Coruña Spain % Felicidad Aguado University of Coruña Spain % Date: December, 2013
% This file gives the construction and properties of block vectors and block matrices
block_matrices: THEORY
BEGIN
IMPORTING matrices,sigma_lemmas
m,n,p,q: VAR posnat
%------------------------------------------------------------ % Definition of Block Matrices %------------------------------------------------------------ % We define matrices of 2x2 blocks.
%Given a Block Matrix, we obtain the Matrix given by it
Block2M(M): Matrix = (# rows := M`rows1 + M`rows2, cols := M`cols1 + M`cols2,matrix := LAMBDA (i: below(M`rows1 + M`rows2), j: below(M`cols1 + M`cols2)): M`matrix(i,j) #)
conversion Block2M
%Given a Block Matrix, we obtain the four Matrices given by its blocks
Block2M1(M): Matrix = (# rows := M`rows1, cols := M`cols1,matrix := LAMBDA (i: below(M`rows1), j: below(M`cols1)): M`matrix(i,j) #) %upper left block
% Given four Matrices and its Dimensions we obtain the Block Matrix composed by them, which has the following form: % (A C) % (B D)
M2Block(m,n,p,q)(A: Mat(m,p),B: Mat(n,p),C: Mat(m,q),D: Mat(n,q)): Block_Matrix = (# rows1 := A`rows,rows2 := B`rows,cols1 := A`cols,cols2 := C`cols,matrix := LAMBDA (i: below(A`rows + B`rows), j: below(A`cols + C`cols)): IF i < A`rows THEN IF j < A`cols THEN A`matrix(i,j) ELSE C`matrix(i,j - A`cols) ENDIF
ELSEIF j < A`cols THEN B`matrix (i - A`rows,j) ELSE D`matrix(i - A`rows,j - A`cols) ENDIF ENDIF
#)
%------------------------------------------------------------ % Definition of Block Vectors %------------------------------------------------------------
block_symmetric: LEMMAFORALL (M: Block_Matrix): symmetric?(Block2M1(M)) AND symmetric?(Block2M4(M)) AND transpose(Block2M2(M)) = Block2M3(M) IMPLIES Bsymmetric?(M);
block_symmetric2: LEMMAFORALL (M: Block_Matrix): Bsymmetric?(M) AND square?(Block2M1(M)) AND square?(Block2M4(M)) IMPLIES symmetric?(Block2M1(M)) AND symmetric?(Block2M4(M)) AND transpose(Block2M2(M)) = Block2M3(M)
%------------------------------------------------------------ % Lemmas about Equalities and Operations withs Blocks %------------------------------------------------------------
blockV_equal: LEMMAFORALL (W: Block_Vect(V`comp1,V`comp2)): V = W IFF Block2V(V) = Block2V(W)
VtoBlocktoV1: LEMMAFORALL (x: Vector[m],y: Vector[n]): Block2V1(V2Block(m,n)(x,y)) = x
VtoBlocktoV2: LEMMAFORALL (x: Vector[m],y: Vector[n]): Block2V2(V2Block(m,n)(x,y)) = y
VtoBlocktoV: LEMMAFORALL (x: Vector[m],y: Vector[n],i: below[m + n]): Block2V(V2Block(m,n)(x,y))(i) = IF i < m THEN x(i) ELSE y(i - m) ENDIF
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.0Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.