क्या आर में कोई फ़ंक्शन है जो मैट्रिक्स के reduced row echelon form
का उत्पादन करता है? This संदर्भ कहता है कि ऐसा नहीं है। क्या आप सहमत हैं?कम पंक्ति एशेलॉन फॉर्म
उत्तर
प्रक्षे पैकेज में एक कार्यान्वयन भी शामिल है। Pracma :: rref देखें।
ऐसा नहीं लगता है कि एक निर्मित है लेकिन मुझे this पृष्ठ पर यह आरएफएफ फ़ंक्शन मिला।
rref <- function(A, tol=sqrt(.Machine$double.eps),verbose=FALSE,
fractions=FALSE){
## A: coefficient matrix
## tol: tolerance for checking for 0 pivot
## verbose: if TRUE, print intermediate steps
## fractions: try to express nonintegers as rational numbers
## Written by John Fox
if (fractions) {
mass <- require(MASS)
if (!mass) stop("fractions=TRUE needs MASS package")
}
if ((!is.matrix(A)) || (!is.numeric(A)))
stop("argument must be a numeric matrix")
n <- nrow(A)
m <- ncol(A)
for (i in 1:min(c(m, n))){
col <- A[,i]
col[1:n < i] <- 0
# find maximum pivot in current column at or below current row
which <- which.max(abs(col))
pivot <- A[which, i]
if (abs(pivot) <= tol) next # check for 0 pivot
if (which > i) A[c(i, which),] <- A[c(which, i),] # exchange rows
A[i,] <- A[i,]/pivot # pivot
row <- A[i,]
A <- A - outer(A[,i], row) # sweep
A[i,] <- row # restore current row
if (verbose)
if (fractions) print(fractions(A))
else print(round(A,round(abs(log(tol,10)))))
}
for (i in 1:n)
if (max(abs(A[i,1:m])) <= tol)
A[c(i,n),] <- A[c(n,i),] # 0 rows to bottom
if (fractions) fractions (A)
else round(A, round(abs(log(tol,10))))
}
मेरे पास टिप्पणी करने के लिए पर्याप्त प्रतिनिधि नहीं है, लेकिन स्वीकृत उत्तर में ऊपर दिया गया कार्य छोटी है - यह मैट्रिस को संभाल नहीं करता है जहां आरआरईएफ समाधान के मुख्य विकर्ण पर शून्य है। उदाहरण का प्रयास करें
मीटर < मैट्रिक्स (ग (1,0,1,0,0,2), byrow = सही, Nrow = 2) rref (एम)
और ध्यान दें कि उत्पादन RREF में नहीं है ।
मुझे लगता है कि मैं यह काम कर रहा है, लेकिन आप अपने आप के लिए आउटपुट जाँच करना चाहते हो सकता है:
rref <- function(A, tol=sqrt(.Machine$double.eps),verbose=FALSE,
fractions=FALSE){
## A: coefficient matrix
## tol: tolerance for checking for 0 pivot
## verbose: if TRUE, print intermediate steps
## fractions: try to express nonintegers as rational numbers
## Written by John Fox
# Modified by Geoffrey Brent 2014-12-17 to fix a bug
if (fractions) {
mass <- require(MASS)
if (!mass) stop("fractions=TRUE needs MASS package")
}
if ((!is.matrix(A)) || (!is.numeric(A)))
stop("argument must be a numeric matrix")
n <- nrow(A)
m <- ncol(A)
x.position<-1
y.position<-1
# change loop:
while((x.position<=m) & (y.position<=n)){
col <- A[,x.position]
col[1:n < y.position] <- 0
# find maximum pivot in current column at or below current row
which <- which.max(abs(col))
pivot <- col[which]
if (abs(pivot) <= tol) x.position<-x.position+1 # check for 0 pivot
else{
if (which > y.position) { A[c(y.position,which),]<-A[c(which,y.position),] } # exchange rows
A[y.position,]<-A[y.position,]/pivot # pivot
row <-A[y.position,]
A <- A - outer(A[,x.position],row) # sweep
A[y.position,]<-row # restore current row
if (verbose)
if (fractions) print(fractions(A))
else print(round(A,round(abs(log(tol,10)))))
x.position<-x.position+1
y.position<-y.position+1
}
}
for (i in 1:n)
if (max(abs(A[i,1:m])) <= tol)
A[c(i,n),] <- A[c(n,i),] # 0 rows to bottom
if (fractions) fractions (A)
else round(A, round(abs(log(tol,10))))
}
वहाँ भी हाल ही में एक शिक्षण रेखीय बीजगणित (matlib) के लिए विकसित पैकेज जो दोनों सोपानक प्रपत्र की गणना करता है एक मैट्रिक्स का, और रास्ते में इस्तेमाल किए गए कदम दिखाता है। reference docs से
उदाहरण:
library('matlib')
A <- matrix(c(2, 1, -1,-3, -1, 2,-2, 1, 2), 3, 3, byrow=TRUE)
b <- c(8, -11, -3)
echelon(A, b, verbose=TRUE, fractions=TRUE)
Initial matrix:
[,1] [,2] [,3] [,4]
[1,] 2 1 -1 8
[2,] -3 -1 2 -11
[3,] -2 1 2 -3
row: 1
exchange rows 1 and 2
[,1] [,2] [,3] [,4]
[1,] -3 -1 2 -11
[2,] 2 1 -1 8
[3,] -2 1 2 -3
multiply row 1 by -1/3
[,1] [,2] [,3] [,4]
[1,] 1 1/3 -2/3 11/3
[2,] 2 1 -1 8
[3,] -2 1 2 -3
multiply row 1 by 2 and subtract from row 2
[,1] [,2] [,3] [,4]
[1,] 1 1/3 -2/3 11/3
[2,] 0 1/3 1/3 2/3
[3,] -2 1 2 -3
multiply row 1 by 2 and add to row 3
[,1] [,2] [,3] [,4]
[1,] 1 1/3 -2/3 11/3
[2,] 0 1/3 1/3 2/3
[3,] 0 5/3 2/3 13/3
row: 2
exchange rows 2 and 3
[,1] [,2] [,3] [,4]
[1,] 1 1/3 -2/3 11/3
[2,] 0 5/3 2/3 13/3
[3,] 0 1/3 1/3 2/3
multiply row 2 by 3/5
[,1] [,2] [,3] [,4]
[1,] 1 1/3 -2/3 11/3
[2,] 0 1 2/5 13/5
[3,] 0 1/3 1/3 2/3
multiply row 2 by 1/3 and subtract from row 1
[,1] [,2] [,3] [,4]
[1,] 1 0 -4/5 14/5
[2,] 0 1 2/5 13/5
[3,] 0 1/3 1/3 2/3
multiply row 2 by 1/3 and subtract from row 3
[,1] [,2] [,3] [,4]
[1,] 1 0 -4/5 14/5
[2,] 0 1 2/5 13/5
[3,] 0 0 1/5 -1/5
row: 3
multiply row 3 by 5
[,1] [,2] [,3] [,4]
[1,] 1 0 -4/5 14/5
[2,] 0 1 2/5 13/5
[3,] 0 0 1 -1
multiply row 3 by 4/5 and add to row 1
[,1] [,2] [,3] [,4]
[1,] 1 0 0 2
[2,] 0 1 2/5 13/5
[3,] 0 0 1 -1
multiply row 3 by 2/5 and subtract from row 2
[,1] [,2] [,3] [,4]
[1,] 1 0 0 2
[2,] 0 1 0 3
[3,] 0 0 1 -1
- 1. कम से कम न्यूनतम (पंक्ति, कॉलम) प्रारूप
- 2. तालिका-पंक्ति टैग के भीतर फॉर्म
- 3. फॉर्म टेक्स्ट इनपुट की मूल पंक्ति ढूंढना
- 4. टेक्स्ट व्यू लाइनस्पेसिंग मल्टीप्लायर शून्य चॉप से कम पिछली पंक्ति
- 5. यह देखने के लिए सबसे तेज़ क्वेरी है कि यह कम से कम एक पंक्ति
- 6. एसक्यूएल में एक विशेष पंक्ति में कम से कम गैर-शून्य कॉलम कैसे खोजें?
- 7. कम
- 8. मध्य-पंक्ति के साथ तीन-पंक्ति तालिका-कम सीएसएस लेआउट जो शेष स्थान भरता है
- 9. कम से कम दो फ़ील्ड के साथ सरल पॉपअप जावा फॉर्म
- 10. सी # प्रोग्रामेटिक रूप से फॉर्म को कम करें
- 11. कम से कम एक चेक
- 12. कम
- 13. उपकरण को कम से कम जावास्क्रिप्ट फ़ाइलें
- 14. पंक्ति
- 15. Lucene.Net TermRangeQuery से कम/कम से कम?
- 16. फॉर्म
- 17. कम से कम यूआरएल
- 18. कम से कम
- 19. कम से कम
- 20. सी # कम/कम रिग्रेशन
- 21. पिपिंग प्रोग्राम आउटपुट कम से कम आउटपुट
- 22. कम
- 23. कम
- 24. कम
- 25. कम
- 26. एंड्रॉइड "कम बैटरी" पॉपअप
- 27. विंडोज फॉर्म से वेब फॉर्म
- 28. पीएचपी कम से कम/सरणी
- 29. एसक्यूएल क्वेरी कम से कम
- 30. mongoDB मानचित्र/कम से कम
इस प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। – lpapp
क्षमा करें, मैं यहां नया हूं और कुछ याद कर सकता हूं, लेकिन: उपरोक्त सैनिक द्वारा प्रदान किया गया "स्वीकृत उत्तर" बग्गी है (जैसा कि मैंने इसे स्वयं उपयोग करने का प्रयास करने के दौरान कठिन तरीका खोजा!) तो मैंने सोचा कि यह था इसे ध्वजांकित करने के लिए महत्वपूर्ण है। मेरे पास सैनिक। मॉथ के जवाब पर सीधे टिप्पणी करने के लिए पर्याप्त प्रतिनिधि नहीं है, इसलिए मैंने एक नया उत्तर बनाया - मुझे यहां क्या करना चाहिए? –
पहले टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा हासिल करें? – lpapp