Scilab Function

lsq - linear least square problems.

### Calling Sequence

  `X=lsq(A,B)`

### Parameters

- `A` : Real or complex (m x n) matrix
- `B` : real or complex (m x p) matrix
- `X` : real or complex (n x p) matrix

### Description

`X=lsq(A,B)` computes the minimum norm least square solution of the equation `A*X=B`, while `X=A \ B` compute a least square solution with at at most `rank(A)` nonzero components per column.

### REFERENCES

`lsq` function is based on the LApack functions DGELSY for real matrices and WGELSY for complex matrices.

### EXAMPLES

    //Build the data
    x=(1:10)';

    y1=3*x+4.5+3*rand(x,'normal');
    y2=1.8*x+0.5+2*rand(x,'normal');
    plot2d(x,[y1,y2],[-2,-3])
    //Find the linear regression
    A=[x,ones(x)];B=[y1,y2];
    X=lsq(A,B);

    y1e=X(1,1)*x+X(2,1);
    y2e=X(1,2)*x+X(2,2);
    plot2d(x,[y1e,y2e],[2,3])

    //Difference between lsq(A,b) and A\b
    A=rand(4,2)*rand(2,3);//a rank 2 matrix
    b=rand(4,1);
    X1=lsq(A,b)
    X2=A\b
    [A*X1-b, A*X2-b] //the residuals are the same

### See Also

`backslash` `inv` `pinv` `rank`