I tried scipy which uses superLU. We get the result but there is little bit 
of issue.

--For Dense--
The dense matrix factorization gives this output using permutation matrix
sage: a = Matrix(RDF, [[1, 0],[2, 1]], sparse=True)
sage: a
[1.0 0.0]
[2.0 1.0]
sage: p,l,u = a.dense_matrix().LU()
sage: p
[0.0 1.0]
[1.0 0.0]
sage: l
[1.0 0.0]
[0.5 1.0]
sage: u
[ 2.0  1.0]
[ 0.0 -0.5]

--For Sparse--
But the scipy LU decomposition uses permutations which involves taking 
transpose, also the output permutations are represented as array.
sage: p,l,u = a.LU(force=True)
sage: p
{'perm_r': [1, 0], 'perm_c': [1, 0]}
sage: l
[1.0 0.0]
[0.0 1.0]
sage: u
[1.0 2.0]
[0.0 1.0]


Shall I continue with this?
On Tuesday, February 6, 2024 at 11:29:07 PM UTC+5:30 Dima Pasechnik wrote:

> Non-square case for LU is in fact easy. Note that if you have A=LU as
> a block matrix
> A11 A12
> A21 A22
>
> then its LU-factors L and U are
> L11 0 and U11 U12
> L21 L22 0 U22
>
> and A11=L11 U11, A12=L11 U12, A21=L21 U11, A22=L21 U12+L22 U22
>
> Assume that A11 is square and full rank (else one may apply
> permutations of rows and columns in the usual way). while A21=0 and
> A22=0. Then one can take L21=0, L22=U22=0, while A12=L11 U12
> implies U12=L11^-1 A12.
> That is, we can first compute LU-decomposition of a square matrix A11,
> and then compute U12 from it and A.
>
> Similarly, if instead A12=0 and A22=0, then we can take U12=0,
> L22=U22=0, and A21=L21 U11,
> i.e. L21=A21 U11^-1, and again we compute LU-decomposition of A11, and
> then L21=A21 U11^-1.
>
> ----------------
>
> Note that in some cases one cannot get LU, but instead must go for an
> PLU,with P a permutation matrix.
> For non-square matrices this seems a bit more complicated, but, well,
> still doable.
>
> HTH
> Dima
>
>
>
>
> On Mon, Feb 5, 2024 at 6:00 PM Nils Bruin <nbr...@sfu.ca> wrote:
> >
> > On Monday 5 February 2024 at 02:31:04 UTC-8 Dima Pasechnik wrote:
> >
> >
> > it is the matter of adding extra zero rows or columns to the matrix you 
> want to decompose. This could be a quick fix.
> >
> > (in reference to computing LU decompositions of non-square matrices) -- 
> in a numerical setting, adding extra zero rows/columns may not be such an 
> attractive option: if previously you know you had a maximal rank matrix, 
> you have now ruined it by the padding. It's worth checking the 
> documentation and literature if padding is appropriate/desirable for the 
> target algorithm/implementation.
> >
> > --
> > You received this message because you are subscribed to the Google 
> Groups "sage-devel" group.
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to sage-devel+...@googlegroups.com.
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/622a01e0-9197-40c5-beda-92729c4e4a32n%40googlegroups.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/01a88e23-12e5-46f9-a33d-16101896eabbn%40googlegroups.com.

Reply via email to