Boa noite,Eu estou normalizando autovetores de uma matriz e colocando eles em outra. Para isso eu montei o programa a seguir. A primeira forma, ele só calcula o ultimo elemento da coluna 4 da matriz, e da segunda forma os valores do resultado estão errados.Primeira forma:> a<-read.table("/Users/bau/Documents/Mestrado/teste/eigen1.txt", header=TRUE)> b<-as.matrix(a)> matriznorm<-matrix(0,30,4)> matriznorm[,1]<-b[,1]# só vou usar este valores do arquivo acima> show(matriznorm[,1])[1] 10.373173554 6.125265914 3.148949951 2.722401273 2.045041946 1.498078581 1.350122780[8] 1.335457110 1.190051106 0.999610112 0.850212256 0.716720583 0.600704889 0.474433269[15] 0.431826856 0.388576986 0.266709936 0.176960029 0.045935755 0.020126910 -0.003897135[22] -0.030136936 -0.074815367 -0.145410630 -0.294553778 -0.453450244 -0.551343912 -0.710794973[29] -1.222537293 -1.273419528> for( i in 1:30){+ matriznorm[i,2]<-matriznorm[i,1]*matriznorm[i,1]+ }>> somaQuadrados<-sum(matriznorm[,2])> raiz<-sqrt(somaQuadrados)> matriznorm[,3]<-raiz>> for(j in i:30){+ matriznorm[j,4]<-matriznorm[j,1]/raiz+ }>> write.table(matriznorm,"/Users/bau/Documents/Mestrado/teste/eigenValuesNorm1.txt")> show(matriznorm)[,1] [,2] [,3] [,4][1,] 10.373173554 1.076027e+02 13.46876 0.00000000[2,] 6.125265914 3.751888e+01 13.46876 0.00000000[3,] 3.148949951 9.915886e+00 13.46876 0.00000000[4,] 2.722401273 7.411469e+00 13.46876 0.00000000[5,] 2.045041946 4.182197e+00 13.46876 0.00000000[6,] 1.498078581 2.244239e+00 13.46876 0.00000000[7,] 1.350122780 1.822832e+00 13.46876 0.00000000[8,] 1.335457110 1.783446e+00 13.46876 0.00000000[9,] 1.190051106 1.416222e+00 13.46876 0.00000000[10,] 0.999610112 9.992204e-01 13.46876 0.00000000[11,] 0.850212256 7.228609e-01 13.46876 0.00000000[12,] 0.716720583 5.136884e-01 13.46876 0.00000000[13,] 0.600704889 3.608464e-01 13.46876 0.00000000[14,] 0.474433269 2.250869e-01 13.46876 0.00000000[15,] 0.431826856 1.864744e-01 13.46876 0.00000000[16,] 0.388576986 1.509921e-01 13.46876 0.00000000[17,] 0.266709936 7.113419e-02 13.46876 0.00000000[18,] 0.176960029 3.131485e-02 13.46876 0.00000000[19,] 0.045935755 2.110094e-03 13.46876 0.00000000[20,] 0.020126910 4.050925e-04 13.46876 0.00000000[21,] -0.003897135 1.518766e-05 13.46876 0.00000000[22,] -0.030136936 9.082349e-04 13.46876 0.00000000[23,] -0.074815367 5.597339e-03 13.46876 0.00000000[24,] -0.145410630 2.114425e-02 13.46876 0.00000000[25,] -0.294553778 8.676193e-02 13.46876 0.00000000[26,] -0.453450244 2.056171e-01 13.46876 0.00000000[27,] -0.551343912 3.039801e-01 13.46876 0.00000000[28,] -0.710794973 5.052295e-01 13.46876 0.00000000[29,] -1.222537293 1.494597e+00 13.46876 0.00000000[30,] -1.273419528 1.621597e+00 13.46876 -0.09454616>Da segunda forma:> a<-read.table("/Users/bau/Documents/Mestrado/teste/eigen1.txt", header=TRUE)> b<-as.matrix(a)> matriznorm<-matrix(0,30,4)> matriznorm[,1]<-b[,1]> show(matriznorm[,1])[1] 10.373173554 6.125265914 3.148949951 2.722401273 2.045041946 1.498078581 1.350122780[8] 1.335457110 1.190051106 0.999610112 0.850212256 0.716720583 0.600704889 0.474433269[15] 0.431826856 0.388576986 0.266709936 0.176960029 0.045935755 0.020126910 -0.003897135[22] -0.030136936 -0.074815367 -0.145410630 -0.294553778 -0.453450244 -0.551343912 -0.710794973[29] -1.222537293 -1.273419528> for( i in 1:30){+ matriznorm[i,2]<-matriznorm[i,1]*matriznorm[i,1]++ somaQuadrados<-sum(matriznorm[,2])+ raiz<-sqrt(somaQuadrados)+ matriznorm[,3]<-raiz++ for(j in i:30){+ matriznorm[j,4]<-matriznorm[j,1]/raiz+ }+ }> write.table(matriznorm,"/Users/bau/Documents/Mestrado/teste/eigenValuesNorm1.txt")> show(matriznorm)[,1] [,2] [,3] [,4][1,] 10.373173554 1.076027e+02 13.46876 1.0000000000[2,] 6.125265914 3.751888e+01 13.46876 0.5084624670[3,] 3.148949951 9.915886e+00 13.46876 0.2528991576[4,] 2.722401273 7.411469e+00 13.46876 0.2135962692[5,] 2.045041946 4.182197e+00 13.46876 0.1584251428[6,] 1.498078581 2.244239e+00 13.46876 0.1152793173[7,] 1.350122780 1.822832e+00 13.46876 0.1033376904[8,] 1.335457110 1.783446e+00 13.46876 0.1016853664[9,] 1.190051106 1.416222e+00 13.46876 0.0902440218[10,] 0.999610112 9.992204e-01 13.46876 0.0755856426[11,] 0.850212256 7.228609e-01 13.46876 0.0641564605[12,] 0.716720583 5.136884e-01 13.46876 0.0540043425[13,] 0.600704889 3.608464e-01 13.46876 0.0452163558[14,] 0.474433269 2.250869e-01 13.46876 0.0356888678[15,] 0.431826856 1.864744e-01 13.46876 0.0324667092[16,] 0.388576986 1.509921e-01 13.46876 0.0292025272[17,] 0.266709936 7.113419e-02 13.46876 0.0200398900[18,] 0.176960029 3.131485e-02 13.46876 0.0132951406[19,] 0.045935755 2.110094e-03 13.46876 0.0034511674[20,] 0.020126910 4.050925e-04 13.46876 0.0015121392[21,] -0.003897135 1.518766e-05 13.46876 -0.0002927926[22,] -0.030136936 9.082349e-04 13.46876 -0.0022641887[23,] -0.074815367 5.597339e-03 13.46876 -0.0056207917[24,] -0.145410630 2.114425e-02 13.46876 -0.0109238800[25,] -0.294553778 8.676193e-02 13.46876 -0.0221227473[26,] -0.453450244 2.056171e-01 13.46876 -0.0340370871[27,] -0.551343912 3.039801e-01 13.46876 -0.0413498303[28,] -0.710794973 5.052295e-01 13.46876 -0.0532327969[29,] -1.222537293 1.494597e+00 13.46876 -0.0911767942[30,] -1.273419528 1.621597e+00 13.46876 -0.0945461625Muito obrigada!
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.