Scilab Function
Last update : 12/01/2004

equil1 - balancing (nonnegative) pair of matrices

### Calling Sequence

  `[T [,siz]]=equil1(P,Q [,tol])`

### Parameters

- `P, Q`: two non-negative symmetric matrices
- `T`: nonsingular matrix
- `siz`: vector of three integers
- `tol`: threshold

### Description

`equil1` computes `t` such that:

`P1=T*P*T'` and `Q1=inv(T)'*Q*inv(T)` are as follows:

`P1 = diag(S1,S2,0,0)` and `Q1 = diag(S1,0,S3,0)` with `S1,S2,S3` positive and diagonal matrices with respective dimensions `siz=[n1,n2,n3]`

`tol` is a threshold for rank determination in SVD

### Examples

    S1=rand(2,2);S1=S1*S1';
    S2=rand(2,2);S2=S2*S2';
    S3=rand(2,2);S3=S3*S3';
    P=sysdiag(S1,S2,zeros(4,4));
    Q=sysdiag(S1,zeros(2,2),S3,zeros(2,2));
    X=rand(8,8);
    P=X*P*X';Q=inv(X)'*Q*inv(X);
    [T,siz]=equil1(P,Q);
    P1=clean(T*P*T')
    Q1=clean(inv(T)'*Q*inv(T))

### See Also

`balreal`, `minreal`, `equil`, `hankelsv`,

### Author

S. Steer 1987