# Gram

### Purpose

Generalized rank annihilation method.

### Synopsis

- [ord1,ord2,ssq,aeigs,beigs] = gram(a,b,tol,
*scl1,scl2,out*)

### Description

GRAM determines the joint invariant subspaces common to the two input matrices `a` and `b`, the ratio of their magnitudes `ssq`, and the response in both modes/orders `ord1` and `ord2`. GRAM assumes that the input matrices `a` and `b` are bilinear, *i.e.* are the summation over outer products.

Inputs are the two response matrices `a` and `b`, and the number of factors to calculate or tolerance on the ratio of smallest to largest singular value `tol`. Optional inputs *scl1* and *scl2* are scales to plot against when producing plots of the response in each mode/order. Optional input *out* suppresses plotting and printing of results to the command window when set to 0 {default *out* = 1}.

Outputs are the pure component responses in each mode `ord1` and `ord2`, the table of eigenvalues and their ratios `ssq`, and the eigenvalues for each matrix `aeigs` and `beigs`.

#### Inputs

**a**= first input matrix.**b**= second input matrix.**tol**= number of factors to calculate or tolerance on the ratio of the samllest to largest singular value.

#### Optional Inputs

**scl1**and**scl2**= scales to plot against.**out**= input to suppress plotting and printing of results when set to 0 (default value = 1).

#### Outputs

**ord1**and**ord2**= pure component responses in each mode.**ssq**= table of eigenvalues and their ratios.**aeigs**= eigenvalues for`a`.**beigs**= eigenvalues for`b`.