bài 1

Cho ma trận A được biểu diễn như sau: \(\[ \mathbf{A}=\left[\begin{array}{ccc} 1 & 1 & 3 \\ 5 & 2 & 6 \\ -2 & -1 & -3 \end{array}\right] \]\) a, Hãy kiểm tra xem \(A^3=0\) hay không (phép lấy mũ cho ra ma trận 0 gồm 3 hàng và 3 cột)

A <- matrix(c(1, 1, 3, 5, 2, 6, -2, -1, -3), nrow = 3, ncol = 3, byrow = TRUE)
print(A)
##      [,1] [,2] [,3]
## [1,]    1    1    3
## [2,]    5    2    6
## [3,]   -2   -1   -3
A_cube <- A %*% A %*% A
A_cube
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0

b, Hãy thay thế cột thứ 3 của ma trận \(A\) bằng tổng của cột thứ 1 và cột thứ 2 của ma trận \(A\)?

A[, 3] <- A[, 1] + A[, 2]
A
##      [,1] [,2] [,3]
## [1,]    1    1    2
## [2,]    5    2    7
## [3,]   -2   -1   -3

bài 2 Hàm outer được sử dụng nhiều để tạo ra ma trận khác nhau theo một quy luật nào đó. Hãy tìm hiểu về hàm outer và tạo ra ma trận có dạng như sau:

\[ \left(\begin{array}{lllll} 0 & 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 & 5 \\ 2 & 3 & 4 & 5 & 6 \\ 3 & 4 & 5 & 6 & 7 \\ 4 & 5 & 6 & 7 & 8 \end{array}\right) \]

X <- 0:4
Y <- 0:4
matran2 <- outer(X, Y, FUN = "+")
matran2
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    1    2    3    4
## [2,]    1    2    3    4    5
## [3,]    2    3    4    5    6
## [4,]    3    4    5    6    7
## [5,]    4    5    6    7    8

bài 3: Cho hệ phương trình tuyến tính sau:

\[ \begin{aligned} & x_1+2 x_2+3 x_3+4 x_4+5 x_5=7 \\ & 2 x_1+x_2+2 x_3+3 x_4+4 x_5=-1 \\ & 3 x_1+2 x_2+x_3+2 x_4+3 x_5=-3 \\ & 4 x_1+3 x_2+2 x_3+x_4+2 x_5=5 \\ & 5 x_1+4 x_2+3 x_3+2 x_4+x_5=17 \end{aligned} \] Hệ phương trình trên có thể được biểu diễn bởi ma trận trọng số và ma trận các ẩn như sau: \(Ax=y\). Sử dụng tính chất của ma trận trong ngôn ngữ R, hãy giải hệ phương trình trên và cho biết các nghiệm là bao nhiêu?

A <- matrix(c(1, 2, 3, 4, 5,
              2, 1, 2, 3, 4,
              3, 2, 1, 2, 3,
              4, 3, 2, 1, 2,
              5, 4, 3, 2, 1),
            nrow = 5, ncol = 5, byrow = TRUE)

y <- c(7, -1, -3, 5, 17)
x <- solve(A, y)
print(x)
## [1] -2  3  5  2 -4

##bài 4 Bài tập 4: Hãy tính giá trị của biểu thức sau: \[ \sum_{i=1}^{20} \sum_{j=1}^5 \frac{i^4}{(3+j)} \]

tong <- 0
for (i in 1:20) {
  for (j in 1:5) {
    tong <- tong + (i^4) / (3 + j)
  }
}
print(tong)
## [1] 639215.3

##bài 5 Sử dụng tập dữ liệu gapminder trong thư viện gapminder, hãy thực hiện các nội dung sau:

1, Lọc dữ liệu dành cho Việt Nam và đặt tên tập dữ liệu là vietnamdata. 2, Sử dụng thư viện dplyr và toán tử pipe (%>%) hãy cho biết tuổi thọ trung bình 3, của người Việt Nam trong tập dữ liệu trên qua các năm là bao nhiêu? 4, Sử dụng biểu đồ cột, thư viện ggplot2, thư viện gridExtra hãy vẽ biểu đồ so sánh tổng thu nhập GDP của các nước tại châu Á và châu Âu vào năm 2007, nhận xét kết quả từ biểu đồ.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gapminder)
library(ggplot2)
data("gapminder")
#lọc dữ liệu việt nam 
vietnam <- gapminder %>%filter(country == "Vietnam")
vietnam
## # A tibble: 12 × 6
##    country continent  year lifeExp      pop gdpPercap
##    <fct>   <fct>     <int>   <dbl>    <int>     <dbl>
##  1 Vietnam Asia       1952    40.4 26246839      605.
##  2 Vietnam Asia       1957    42.9 28998543      676.
##  3 Vietnam Asia       1962    45.4 33796140      772.
##  4 Vietnam Asia       1967    47.8 39463910      637.
##  5 Vietnam Asia       1972    50.3 44655014      700.
##  6 Vietnam Asia       1977    55.8 50533506      714.
##  7 Vietnam Asia       1982    58.8 56142181      707.
##  8 Vietnam Asia       1987    62.8 62826491      821.
##  9 Vietnam Asia       1992    67.7 69940728      989.
## 10 Vietnam Asia       1997    70.7 76048996     1386.
## 11 Vietnam Asia       2002    73.0 80908147     1764.
## 12 Vietnam Asia       2007    74.2 85262356     2442.

Sử dụng thư viện dplyr và toán tử pipe (%>%) hãy cho biết tuổi thọ trung bình của người Việt Nam trong tập dữ liệu trên qua các năm là bao nhiêu?

library(dplyr)

vietnam <- gapminder %>%
  filter(country == "Vietnam") %>%
  group_by(year) %>%
  summarize(avg_life_expectancy = mean(lifeExp))

vietnam
## # A tibble: 12 × 2
##     year avg_life_expectancy
##    <int>               <dbl>
##  1  1952                40.4
##  2  1957                42.9
##  3  1962                45.4
##  4  1967                47.8
##  5  1972                50.3
##  6  1977                55.8
##  7  1982                58.8
##  8  1987                62.8
##  9  1992                67.7
## 10  1997                70.7
## 11  2002                73.0
## 12  2007                74.2

Sử dụng biểu đồ cột, thư viện ggplot2, thư viện gridExtra hãy vẽ biểu đồ so sánh tổng thu nhập GDP của các nước tại châu Á và châu Âu vào năm 2007, nhận xét kết quả từ biểu đồ.

library(gridExtra)
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
# Lọc dữ liệu cho châu Á và châu Âu năm 2007
asia_europe_2007 <- gapminder %>%
  filter(year == 2007 & continent %in% c("Asia", "Europe"))

# Sắp xếp lại thứ tự các nước theo tổng thu nhập GDP
asia_europe_2007$country <- reorder(asia_europe_2007$country, asia_europe_2007$gdpPercap, FUN = function(x) -x)

# Vẽ biểu đồ cột tổng thu nhập GDP
bar_plot <- ggplot(asia_europe_2007, aes(x = country, y = gdpPercap, fill = continent)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Tổng thu nhập GDP của các nước tại châu Á và châu Âu (2007)",
       x = "Nước", y = "Tổng thu nhập GDP") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
print(bar_plot)