Chuong 05 tinh toan don gian va ma tran 2

11 361 0
Chuong 05   tinh toan don gian va ma tran 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

dùng phần mềm R tính toán ma trận

5 Dùng R cho phép tính đ n gi n ma tr n M t nh ng l i th c a R có th s d ng nh m t … máy tính c m tay Th t ra, h n th n a, R có th s d ng cho phép tính ma tr n l p ch ng Trong ch ng tơi ch trình bày m t s phép tính đ n gi n mà h c sinh hay sinh viên có th s d ng l p t c đ c nh ng dòng ch 5.1 Tính tốn đ n gi n C ng hai s hay nhi u s v i nhau: C ng tr : > 15+2997 [1] 3012 > 15+2997-9768 [1] -6756 Nhân chia S l y th a: (25 – 5)3 > -27*12/21 [1] -15.42857 > (25 - 5)^3 [1] 8000 C n s b c hai: 10 S pi (π) > sqrt(10) [1] 3.162278 > pi [1] 3.141593 > 2+3*pi [1] 11.42478 Logarit: loge Logarit: log10 > log(10) [1] 2.302585 > log10(100) [1] S m : e2.7689 Hàm s l > exp(2.7689) [1] 15.94109 > cos(pi) [1] -1 ng giác > log10(2+3*pi) [1] 1.057848 Vector > x x [1] > sum(x) [1] 42 > x*2 > exp(x/10) [1] 1.221403 1.349859 1.105171 1.648 1.491825 1.822119 2.013753 1.822119 [9] 2.225541 > exp(cos(x/10)) [1] 2.664634 2.599545 2.704736 2.405 2.511954 2.282647 2.148655 2.282647 [9] 2.007132 [1] 10 12 14 12 16 Tính t ng bình ph ng (sum of squares): 12 Tính t ng bình ph ng u ch nh n + 22 + 32 + 42 + 52 = ? (adjusted sum of squares): ( xi − x ) = ? ∑ > x sum(x^2) [1] 55 > x sum((x-mean(x))^2) [1] 10 Trong công th c mean(x) s trung bình c a vector x Tính sai s bình ph n ∑( x − x ) i ng (mean square): /n= ? i =1 > x sum((x-mean(x))^2)/length(x) [1] Tính ph ng sai (variance) đ l ch chu n (standard deviation): n Ph ng sai: s = ∑ ( xi − x ) / ( n − 1) = ? i =1 > x var(x) [1] 2.5 Trong cơng th c trên, length(x) có ngh a t ng s ph n t (elements) vector x l ch chu n: s2 : > sd(x) [1] 1.581139 5.2 S li u v ngày tháng Trong phân tích th ng kê, s li u ngày tháng có m t v n đ nan gi i, có r t nhi u cách đ mô t d li u Ch ng h n nh 01/02/2003, có ng i ta vi t 1/2/2003, 01/02/03, 01FEB2003, 2003-02-01, v.v… Th t ra, có m t qui lu t chu n đ vi t s li u ngày tháng tiêu chu n ISO 8601 (nh ng r t tuân theo!) Theo qui lu t này, vi t: 2003-02-01 Lí đ ng sau cách vi t vi t s v i đ n v l n nh t tr c, r i d n d n đ n đ n v nh nh t Ch ng h n nh v i s “123” bi t r ng “m t tr m hai m i ba”: b t đ u hàng tr m, r i đ n hàng ch c, v.v… Và c ng cách vi t ngày tháng chu n c a R > date1 date2 days days Time difference of 28 days Chúng ta c ng có th t o m t dãy s li u ngày tháng nh sau: > seq(as.Date(“2005-01-01”), as.Date(“2005-12-31”), by=”month”) [1] "2005-01-01" "2005-02-01" "2005-03-01" "2005-04-01" "2005-05-01" [6] "2005-06-01" "2005-07-01" "2005-08-01" "2005-09-01" "2005-10-01" [11] "2005-11-01" "2005-12-01" > seq(as.Date(“2005-01-01”), as.Date(“2005-12-31”), by=”2 weeks”) [1] [6] [11] [16] [21] [26] "2005-01-01" "2005-03-12" "2005-05-21" "2005-07-30" "2005-10-08" "2005-12-17" "2005-01-15" "2005-03-26" "2005-06-04" "2005-08-13" "2005-10-22" "2005-12-31" "2005-01-29" "2005-04-09" "2005-06-18" "2005-08-27" "2005-11-05" "2005-02-12" "2005-04-23" "2005-07-02" "2005-09-10" "2005-11-19" "2005-02-26" "2005-05-07" "2005-07-16" "2005-09-24" "2005-12-03" 5.3 T o dãy s b ng hàm seq, rep gl R cịn có cơng d ng t o nh ng dãy s r t ti n cho vi c mơ ph ng thi t k thí nghi m Nh ng hàm thông th ng cho dãy s seq (sequence), rep (repetition) gl (generating levels): Áp d ng seq • T o m t vector s t đ n 12: > x x [1] > seq(12) [1] • 4 5 6 7 8 10 11 12 10 11 12 T o m t vector s t 12 đ n 5: > x x [1] 12 11 10 > seq(12,7) [1] 12 11 10 Công th c chung c a hàm seq seq(from, to, by= ) hay seq(from, to, length.out= ) Cách s d ng s đ c minh ho b ng vài ví d sau đây: • T o m t vector s t đ n v i kho ng cách b ng 0.25: > seq(4, 6, 0.25) [1] 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00 • T o m t vector 10 s , v i s nh nh t s l n nh t 15 > seq(length=10, from=2, to=15) [1] 2.000000 3.444444 4.888889 6.333333 10.666667 12.111111 13.555556 15.000000 7.777778 9.222222 Áp d ng rep Công th c c a hàm rep rep(x, times, ), đó, x m t bi n s times s l n l p l i Ví d : • T o s 10, l n: > rep(10, 3) [1] 10 10 10 • T o s đ n 4, l n: > rep(c(1:4), 3) [1] 4 • T o s 1.2, 2.7, 4.8, l n: > rep(c(1.2, 2.7, 4.8), 5) [1] 1.2 2.7 4.8 1.2 2.7 4.8 1.2 2.7 4.8 1.2 2.7 4.8 1.2 2.7 4.8 • T o s 1.2, 2.7, 4.8, l n: > rep(c(1.2, 2.7, 4.8), 5) [1] 1.2 2.7 4.8 1.2 2.7 4.8 1.2 2.7 4.8 1.2 2.7 4.8 1.2 2.7 4.8 Áp d ng gl gl đ c áp d ng đ t o m t bi n th b c (categorical variable), t c bi n không đ tính tốn, mà đ m Cơng th c chung c a hàm gl gl(n, k, length = n*k, labels = 1:n, ordered = FALSE) cách s d ng s đ c minh ho b ng vài ví d sau đây: • T o bi n g m b c 2; m i b c đ c l p l i l n: > gl(2, 8) [1] 1 1 1 1 2 2 2 2 Levels: Hay m t bi n g m b c 1, 3; m i b c đ c l p l i l n: > gl(3, 5) [1] 1 1 2 2 3 3 Levels: • T o bi n g m b c 2; m i b c đ > gl(2, 10, length=20) c l p l i 10 l n (do length=20): [1] 1 1 1 1 1 2 2 2 2 2 Levels: Hay: > gl(2, 2, length=20) [1] 1 2 1 2 1 2 1 2 1 2 Levels: • Cho thêm kí hi u: > gl(2, 5, label=c("C", "T")) [1] C C C C C T T T T T Levels: C T • T o m t bi n g m b c 1, 2, 3, M i b c l p l i l n > rep(1:4, c(2,2,2,2)) [1] 1 2 3 4 C ng t ng đ ng v i: > rep(1:4, each = 2) [1] 1 2 3 4 • V i ngày gi tháng: > x rep(x, 2) [1] "1972-06-30 17:00:00 Pacific Standard Time" "1972-12-31 16:00:00 Pacific Standard Time" [3] "1973-12-31 16:00:00 Pacific Standard Time" "1972-06-30 17:00:00 Pacific Standard Time" [5] "1972-12-31 16:00:00 Pacific Standard Time" "1973-12-31 16:00:00 Pacific Standard Time" > rep(as.POSIXlt(x), rep(2, 3)) [1] "1972-06-30 17:00:00 Pacific Standard Time" "1972-06-30 17:00:00 Pacific Standard Time" [3] "1972-12-31 16:00:00 Pacific Standard Time" "1972-12-31 16:00:00 Pacific Standard Time" [5] "1973-12-31 16:00:00 Pacific Standard Time" "1973-12-31 16:00:00 Pacific Standard Time" 5.4 S d ng R cho phép tính ma tr n Nh bi t ma tr n (matrix), nói đ n gi n, g m có dịng (row) c t (column) Khi vi t A[m, n], hi u r ng ma tr n A có m dịng n c t Trong R, c ng có th th hi n nh th Ví d : mu n t o m t ma tr n vng A g m dịng c t, v i ph n t (element) 1, 2, 3, 4, 5, 6, 7, 8, 9, vi t: 1 7   A = 2 8 3 9   Và v i R: > y A A [,1] [,2] [,3] [1,] [2,] [3,] Nh ng n u l nh: > A A k t qu s là: [1,] [2,] [3,] [,1] [,2] [,3] T c m t ma tr n chuy n v (transposed matrix) M t cách khác đ t o m t ma tr n hoán v dùng t() Ví d : > y A A [,1] [,2] [,3] [1,] [2,] [3,] B = A' có th di n t b ng R nh sau: > B B [,1] [,2] [,3] [1,] [2,] [3,] Ma tr n vô h ng (scalar matrix) m t ma tr n vng (t c s dịng b ng s c t), t t c ph n t đ ng chéo (off-diagonal elements) 0, ph n t đ ng chéo Chúng ta có th t o m t ma tr n nh th b ng R nh sau: > # t o m ma tr n x v i t t c > A # cho ph n t đ ng chéo b ng ph n t > diag(A) diag(A) [1] 1 > # bây gi ma tr n A s > A [,1] [,2] [,3] [1,] 0 [2,] [3,] 0 5.4.1 Chi t ph n t t là: ma tr n > y A A [,1] [,2] [,3] [1,] [2,] [3,] > # c t c a ma tr n A > A[,1] [1] > # c t c a ma tr n A > A[3,] [1] > # dòng c a ma tr n A > A[1,] [1] > # dòng 2, c t c a ma tr n A > A[2,3] [1] > # t t c dòng c a ma tr n A, ngo i tr dòng > A[-2,] [,1] [,2] [,3] [1,] [2,] > # t t c c t c a ma tr n A, ngo i tr c t > A[,-1] [,1] [,2] [1,] [2,] [3,] > # xem ph n t > A>3 [,1] [1,] FALSE [2,] FALSE [3,] FALSE cao h n [,2] TRUE TRUE TRUE [,3] TRUE TRUE TRUE 5.4.2 Tính tốn v i ma tr n C ng tr hai ma tr n Cho hai ma tr n A B nh sau: > A A [,1] [,2] [,3] [,4] [1,] 10 [2,] 11 [3,] 12 > B B [,1] [,2] [,3] [,4] [1,] -1 -4 -7 -10 [2,] -2 -5 -8 -11 [3,] -3 -6 -9 -12 Chúng ta có th c ng A+B: > C C [,1] [,2] [,3] [,4] [1,] 0 0 [2,] 0 0 [3,] 0 0 Hay A-B: > D D [,1] [,2] [,3] [,4] [1,] 14 20 [2,] 10 16 22 [3,] 12 18 24 Nhân hai ma tr n Cho hai ma tr n: 1 7   A = 2 8 3 9    3   B =  6 7 9   Chúng ta mu n tính AB, có th tri n khai b ng R b ng cách s d ng %*% nh sau: > > > > > y >  4 Y =   2 ng trình là: X = A-1Y, hay R: A E E [,1] [,2] [,3] [1,] [2,] [3,] > det(E) [1] Nh ng ma tr n F sau có th đ o ngh ch: > F F [,1] [,2] [,3] [1,] 16 49 [2,] 25 64 [3,] 36 81 > det(F) [1] -216 Và ngh ch đ o c a ma tr n F (F-1) có th tính b ng function solve() nh sau: > solve(F) [,1] [,2] [,3] [1,] 1.291667 -2.166667 0.9305556 [2,] -1.166667 1.666667 -0.6111111 [3,] 0.375000 -0.500000 0.1805556 Ngồi nh ng phép tính đ n gi n này, R cịn có th s d ng cho phép tính ph c t p khác M t l i th đáng k c a R ph n m m cung c p cho ng i s d ng t t o nh ng phép tính phù h p cho t ng v n đ c th Trong vài ch ng sau, s quay l i v n đ chi ti t h n R có m t package Matrix chuyên thi t k cho tính tốn ma tr n B n đ c có th t i package xu ng, cài vào máy, s d ng, n u c n a ch đ t i là: http://cran.au.r-project.org/bin/windows/contrib/r-release/Matrix_0.995-8.zip v i tài li u ch d n cách s d ng (dài kho ng 80 trang): http://cran.au.r-project.org/doc/packages/Matrix.pdf ... "2 005- 01 -29 " "2 005- 04-09" "2 005- 06-18" "2 005- 08 -27 " "2 005- 11 -05" "2 005- 02- 12" "2 005- 04 -23 " "2 005- 07- 02" "2 005- 09-10" "2 005- 11-19" "2 005- 02- 26" "2 005- 05-07" "2 005- 07-16" "2 005- 09 -24 " "2 005- 12- 03"... by=? ?2 weeks”) [1] [6] [11] [16] [21 ] [26 ] "2 005- 01-01" "2 005- 03- 12" "2 005- 05 -21 " "2 005- 07-30" "2 005- 10-08" "2 005- 12- 17" "2 005- 01-15" "2 005- 03 -26 " "2 005- 06-04" "2 005- 08-13" "2 005- 10 -22 " "2 005- 12- 31"... "2 005- 02- 01" "2 005- 03-01" "2 005- 04-01" "2 005- 05-01" [6] "2 005- 06-01" "2 005- 07-01" "2 005- 08-01" "2 005- 09-01" "2 005- 10-01" [11] "2 005- 11-01" "2 005- 12- 01" > seq(as.Date(? ?2 005- 01-01”), as.Date(? ?2 005- 12- 31”),

Ngày đăng: 12/09/2013, 16:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan