<div>Com essa função chega-se ao resultado final da matriz escalonada, porém, não apresenta as matrizes intermediárias até chegar ao resultado final.<br /><br />A = matrix(c(-2,4,6,0,0,0,-1,1,1,2,0,2),nr=3)<br /><br />reducedRowEchelonForm <- function(A){<br />n<-nrow(A)<br />m<-ncol(A)<br />i<-j<-1<br />while(i<=n&&j<=m){<br />while(j<=m){<br />currentColumn <- A[,j]<br />currentColumn[1:n < i] <- 0<br /># find maximum pivot in current column at or below current row<br />which <- which.max(abs(currentColumn))<br />pivot <- currentColumn[which]<br />if(pivot==0){#checkfor0pivot<br />j<-j+1<br />next<br />5<br />}<br />if (which > i) A[c(i, which),] <- A[c(which, i),] # exchange rows<br />A[i,] <- A[i,]/pivot # pivot<br />row<-A[i,]<br />A<-A-outer(A[,j],row) #sweep<br />A[i,] <- row # restore current row<br />j<-j+1<br />break<br />}<br />i<-i+1<br />}<br />#0rowstobottom<br />zeros <- which(ap
 ply(A[,1:m], 1, function(x) all(x == 0)))<br />if (length(zeros) > 0){<br />zeroRows <- A[zeros,]<br />A <- A[-zeros,]<br />A <- rbind(A, zeroRows)<br />rownames(A) <- NULL<br />}<br />A<br />}<br /><br />reducedRowEchelonForm(A)<br /><br />Att.<br />André</div>
<div> </div>
<div><br /><br /></div>
<hr style="border-top: 1px solid #ccc;" />
<div><br /><strong>De:</strong> Fernando A. Souza < nandodesouza@gmail.com ><br /><strong>Enviada:</strong> Quinta-feira, 10 de Outubro de 2013 12:32<br /><strong>Para:</strong> r-br@listas.c3sl.ufpr.br<br /><strong>Assunto:</strong> Re: [R-br] Função-escalonar<br /><br /></div>
<div class="moz-cite-prefix">Em 10-10-2013 12:26, <a class="moz-txt-link-abbreviated" href="../../../undefined//compose?to=andrebvs@bol.com.br" target="_blank">andrebvs@bol.com.br</a> escreveu:</div>
<blockquote cite="mid:5256c73bd874c_544a462ec701d@a4-winter7.tmail">
<div>O escalonameno da função matinv() mostra as operações realizadas até chegar no resulado final?<br /> <br /> <em>Att.</em><br /> <em>André</em></div>
<div> </div>
<hr style="border-top: 1px solid #ccc;" />
<div><br /> <strong>De:</strong> Benilton Carvalho < <a class="moz-txt-link-abbreviated" href="../../../undefined//compose?to=beniltoncarvalho@gmail.com" target="_blank">beniltoncarvalho@gmail.com</a> ><br /> <strong>Enviada:</strong> Quinta-feira, 10 de Outubro de 2013 10:09<br /> <strong>Para:</strong> r-br < <a class="moz-txt-link-abbreviated" href="../../../undefined//compose?to=r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a> ><br /> <strong>Assunto:</strong> Re: [R-br] Função-escalonar<br /> </div>
<div dir="ltr">
<div>
<div>scale() nao e' o q vc procura, Fatima.<br /> </div>
Ha' algum tempo, qdo o pacote Design ainda era suportado, havia a funcao matinv() que fazia escalonamento por Gauss-Jordan... mas, atualmente, o pacote nao e' suportado... Se vc tiver uma versao antiga do R, vc ainda pode tentar instala'-lo.</div>
b</div>
<div class="gmail_extra"><br /> <br />
<div class="gmail_quote">Em 10 de outubro de 2013 07:54, Fernando A. Souza <span dir="ltr"><<a href="../undefined/compose?to=nandodesouza@gmail.com" target="_blank">nandodesouza@gmail.com</a>></span> escreveu:<br />
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<div>
<div>Em 10-10-2013 07:12, Maria de Fatima Ferreira Almeida escreveu:</div>
<blockquote>
<div class="im">
<div style="font-size: 12pt; font-family: arial,helvetica,sans-serif;">
<div>Gostaria de saber se existe alguma função do R que faz escalonamento de matrizes. Alguém poderia me ajudar?</div>
</div>
<br /><fieldset></fieldset></div>
<pre>_______________________________________________
R-br mailing list
<a href="../undefined/compose?to=R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</pre>
</blockquote>
Veja a função scale() do R</div>
<br /> _______________________________________________<br /> R-br mailing list<br /> <a href="../undefined/compose?to=R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br /> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br /> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</blockquote>
</div>
</div>
<div> </div>
<br /><fieldset class="mimeAttachmentHeader"></fieldset><br />
<pre>_______________________________________________
R-br mailing list
<a class="moz-txt-link-abbreviated" href="../../../undefined//compose?to=R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a>
<a class="moz-txt-link-freetext" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a class="moz-txt-link-freetext" href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</pre>
</blockquote>
<div>Ah sim ! Benilton, você tem razão,.Scale não faz o que ela deseja não! No endereço :<a class="moz-txt-link-freetext" href="http://socserv.socsci.mcmaster.ca/jfox/Courses/R-course/exercises-programming.pdf" target="_blank">http://socserv.socsci.mcmaster.ca/jfox/Courses/R-course/exercises-programming.pdf</a>, há uma função que faz o escalonamento de uma matriz pelo escalonamento gaussiano desenvolvida pelo Jonh Fox. Ela deve resolver seu problema<br /> </div>