From help-octave-request at bevo dot che dot wisc dot edu Sun Jan 21 13:49:23 2001 Subject: Re: RREF (row reduce echelon form) From: Kevin Straight To: "J. R. Miller" cc: help-octave at bevo dot che dot wisc dot edu Date: Sun, 21 Jan 2001 11:49:14 -0800 (PST) Hello, here is the rref which comes with goctave, it works pretty well generally. See the documentation on the goctave web site at: http://12.32.54.90/goctave/manual/index.html ================= ## usage: rref (m) ## ## Return the reduced-row-eschelon-form of matrix m. ## Author: Kevin Straight, stra9456 at uidaho dot edu function retval = rref (m, dummy) if (nargin < 1) usage ("rref (x)"); endif # Bring the pivot to the top row for i=1:rows(m) if(m(i,1)==max(m(:,1))) scratch=m(i,:); m(i,:)=m(1,:); m(1,:)=scratch; endif endfor if(m(1,1)!=0) m(1,:)=m(1,:)/m(1,1); for i=2:rows(m) if(m(i,1)!=0) m(i,:)=(m(i,:)/m(i,1))-m(1,:); endif endfor else if(any(m(1,:))) q=2; while(m(1,q)==0) q++; endwhile m(1,:)=m(1,:)/m(1,q); endif endif if(columns(m)>1 && rows(m)>1) m(2:rows(m),2:columns(m)) = rref( m(2:rows(m),2:columns(m)),1 ); endif # Swell, now we're row reduced. Lets get to rref if((rows(m)>=2) && (columns(m) >=2) && (nargin ==1)) for i=0:rows(m)-1 if( any( m(rows(m)-i,:) ) ) q=1; while(m(rows(m)-i,q)==0) q++; endwhile for j=1:rows(m)-i-1 m(j,:)=m(j,:)-(m(rows(m)-i,:)*m(j,q)); endfor endif endfor endif retval = m; endfunction ================= On Sat, 20 Jan 2001, J. R. Miller wrote: > Hi, > > I seem to recall several years ago there was an octave command or function > "RREF" (row reduce echelon form), for whatever version of Octave > corresponded to Debian 1.2 or 1.3. Returning, I can't find "RREF". If > I'm just not seeing it, please tell me where to look, or how to setup. > > If it's not part of Octave, is there somewhere fellow users share this > kind of code, so I don't have to reinvent the wheel? > > Otherwise, please tell me where I can find pseudocode for the algorithm > and whatever language reference is recommended for writing this code. > /This is not an area of strength for me, so please be specific./ > > Thanks, > > JR > millerjr at u dot washington dot edu > > > > > ------------------------------------------------------------- > Octave is freely available under the terms of the GNU GPL. > > Octave's home on the web: http://www.octave.org > How to fund new projects: http://www.octave.org/funding.html > Subscription information: http://www.octave.org/archive.html > ------------------------------------------------------------- > ========================== Kevin Straight University of Idaho www.uidaho.edu/~stra9456 ========================== ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------