学号 13 姓名 过纯中
将1,2,…,20构成两个4x5价的矩阵,其中矩阵A按列输入,矩阵B按行输入:
A <- matrix(1:20, nrow = 4, ncol = 5)
A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
B <- matrix(1:20, nrow = 4, ncol = 5, byrow = TRUE)
B
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 2 3 4 5
## [2,] 6 7 8 9 10
## [3,] 11 12 13 14 15
## [4,] 16 17 18 19 20
C <- A + B
C
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 7 12 17 22
## [2,] 8 13 18 23 28
## [3,] 14 19 24 29 34
## [4,] 20 25 30 35 40
D <- A %*% t(B)
D
## [,1] [,2] [,3] [,4]
## [1,] 175 400 625 850
## [2,] 190 440 690 940
## [3,] 205 480 755 1030
## [4,] 220 520 820 1120
E <- A * B
E
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 10 27 52 85
## [2,] 12 42 80 126 180
## [3,] 33 84 143 210 285
## [4,] 64 136 216 304 400
F <- A[-4, -(4:5)]
F
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
G <- cbind(A[, 1], A[, 2], A[, 4], A[, 5])
G
## [,1] [,2] [,3] [,4]
## [1,] 1 5 13 17
## [2,] 2 6 14 18
## [3,] 3 7 15 19
## [4,] 4 8 16 20
构造一个向量x,向量是由五个1,三个2,四个3,二个4构成,注意用到rep()函数
# Better solution than c(rep(1,5),rep(2,3),rep(3,4),rep(4,2))
x = rep(1:4, c(5, 3, 4, 2))
x
## [1] 1 1 1 1 1 2 2 2 3 3 3 3 4 4
n <- 5
h <- array(0, dim = c(n, n))
for (i in 1:n) {
for (j in 1:n) {
h[i, j] <- 1/(i + j - 1)
}
}
h
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1.0000 0.5000 0.3333 0.2500 0.2000
## [2,] 0.5000 0.3333 0.2500 0.2000 0.1667
## [3,] 0.3333 0.2500 0.2000 0.1667 0.1429
## [4,] 0.2500 0.2000 0.1667 0.1429 0.1250
## [5,] 0.2000 0.1667 0.1429 0.1250 0.1111
#
# 另一种解法:先自定义Hilbert计算的操作符%!%,然后在向量外积计算中将计算函数重定义为fun=“%!%”
# hilbert =
# function(n){'%!%'=function(x,y){1/(x+y-1)};outer(1:n,1:n,'%!%')} h <-
# hilbert(5)
det(h)
## [1] 3.749e-12
solve(h)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 25 -300 1050 -1400 630
## [2,] -300 4800 -18900 26880 -12600
## [3,] 1050 -18900 79380 -117600 56700
## [4,] -1400 26880 -117600 179200 -88200
## [5,] 630 -12600 56700 -88200 44100
eigen(h)
## $values
## [1] 1.567e+00 2.085e-01 1.141e-02 3.059e-04 3.288e-06
##
## $vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.7679 0.6019 -0.2142 0.04716 0.006174
## [2,] 0.4458 -0.2759 0.7241 -0.43267 -0.116693
## [3,] 0.3216 -0.4249 0.1205 0.66735 0.506164
## [4,] 0.2534 -0.4439 -0.3096 0.23302 -0.767191
## [5,] 0.2098 -0.4290 -0.5652 -0.55760 0.376246
num = c(1:5)
name = c("张三", "李四", "王五", "赵六", "丁一")
sex = c("女", "男", "女", "男", "女")
age = c(14, 15, 16, 14, 15)
height = c(156, 165, 157, 162, 159)
weight = c(42, 49, 41.5, 52, 45.5)
stu = data.frame(num, name, sex, age, height, weight)
stu
## num name sex age height weight
## 1 1 张三 女 14 156 42.0
## 2 2 李四 男 15 165 49.0
## 3 3 王五 女 16 157 41.5
## 4 4 赵六 男 14 162 52.0
## 5 5 丁一 女 15 159 45.5
write.table(stu, "ch2_6_stu.txt")
df = read.table("ch2_6_stu.txt", header = TRUE)
write.csv(df, "ch2_6_stu.csv")