row reduction without division

Utilisation de Xcas

Modérateur : xcasadmin

jocaps
Messages : 118
Inscription : lun. avr. 17, 2017 4:32 pm

row reduction without division

Message par jocaps » mar. févr. 13, 2018 5:12 pm

Hi,

Is there an option (e.g. in rref or ref) where I can row reduce a matrix without diivsion? I do sometimes have matrices with symbolic entries and division are not allowed in this case. This is especially important for me when computing the kernel of a matrix with some symbolic entries.

Jose

parisse
Messages : 5081
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: row reduction without division

Message par parisse » mer. févr. 14, 2018 6:33 am

Yes, for example rref([[a,b,f],[c,d,g]],keep_pivot)

jocaps
Messages : 118
Inscription : lun. avr. 17, 2017 4:32 pm

Re: row reduction without division

Message par jocaps » mer. févr. 14, 2018 1:35 pm

Thanks Bernard. Yes you are right. I guess though, kernel computation should still be done manually? The reason is because even after gauss jordan without division there are multiplications involved, and there is a problem if the multiplication is done symbolically because there will be specific cases where the multiplication by zero takes place (increasing the kernel dimension).

My idea is just to get the an nxm matrix (n>=m) M, transpose it, concatenate the transpose with id(n), apply rref with keep_pivot to produce a row-echelon form (not reduced) and then check at each first non-zero symbolic entry of the row and see when the values could possibly be zero. Use the zero conditions to substitute for the variable and apply ker on M for each of these conditions. I will soon provide a minimal example to illustrate.

parisse
Messages : 5081
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: row reduction without division

Message par parisse » mer. févr. 14, 2018 3:11 pm

You could perhaps run rref(M,keep_pivot) and look at the diagonal coefficient, if none of them vanish then ker(M) is correct, otherwise you can perhaps express one symbol in terms of other and re-run the same method.

Répondre