1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chuong 05 tinh toan don gian va ma tran 2

11 361 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 241,16 KB

Nội dung

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

w