bài tập 1

Bài 1. Hãy thực hiện các câu lệnh sau để có các véc tơ số xVec và yVec; hàm sample cho phép lấy ra một số ngẫu nhiên trong khoảng từ 0:999 và thực hiện lấy 250 số, tham số replce = T có nghĩa là có thể lấy lặp lại số đã có:

set.seed(50)

xVec <- sample(0:999, 250, replace=T)
yVec <- sample(0:999, 250, replace=T)

Giả sử rằng x = (x1; x2;…; xn) ký hiệu cho véc tơ xVec và y = (y1; y2; :… ; yn) ký hiệu cho véc tơ yVec.

  1. Tạo ra véc tơ số có dạng sau (x1 + 2x2 - x3; x2 + 2x3 - x4; … ; xn-2 + 2xn-1 - xn).

  2. Thực hiện tính phép tính sau: \[\sum_{i=1}^{n-1} \frac{e^{-x_{i+1}}}{x_i+10} \]

##bài tập 2 Bài 2. Sử dụng các véc tơ xVec và yVec tạo ra từ bài tập số 1 và các hàm thống kê có sẵn trong R như mean, sqrt, sum and abs. Thực hiện các công việc sau:

  1. Tìm và in ra tất cả các giá trị trong véc tơ yVec mà các giá trị đó > 600.
yVec[yVec > 600]
##  [1] 702 901 617 726 915 723 941 906 782 681 721 929 827 653 839 800 869 692 840
## [20] 845 769 866 696 685 788 642 902 797 601 656 842 970 680 792 662 868 875 795
## [39] 880 700 665 699 979 796 772 836 974 990 954 846 943 658 655 628 623 629 989
## [58] 738 992 758 870 910 933 641 872 904 647 988 753 624 996 621 714 965 920 755
## [77] 783 856 927 759 700 764 666 667 790 654 959 868 963 698 686
  1. Tại các vị trí nào trong véc tơ yVec mà các giá trị lớn hơn 600.
which(yVec>600)
##  [1]   3   9  10  18  20  22  25  26  27  29  37  41  42  43  45  48  49  51  65
## [20]  67  71  74  79  81  84  85  88  95  98  99 103 106 108 109 110 113 114 119
## [39] 120 129 130 131 138 139 143 147 148 152 154 159 161 166 167 168 172 173 174
## [58] 176 177 183 187 188 189 190 191 194 196 197 201 202 204 206 207 211 212 219
## [77] 223 224 225 227 229 230 233 235 238 239 240 243 246 248 249
  1. Các giá trị nào trong véc tơ xVec có giá trị giống như trong yVec > 600 (các giá trị trong xVec và yVec cùng lớn hơn 600 tại cùng vị trí).
sum(xVec%%2 == 0)
## [1] 117
  1. Có bao nhiêu giá trị trong véc tơ xVec chia hết cho 2 (số chẵn, sử dụng module 2 bằng phép tính %%)

  2. Lấy ra các giá trị trong véc tơ yVec tại các vị trí 1,4,7,10,13,….

indices <- seq(1, length(yVec), by = 3)
selected_values <- yVec[indices]
print(selected_values)
##  [1] 537  95 162 617 161  56 269 723 941  88 200  47 721 159 653  39 869 261  91
## [20] 528 397 273 845 559 453 263 696 566 642 902 253 158  71 519 842 970 792 284
## [39] 262  92 171 424 436 665 216 550 796 291 134 974 196 954 473  66 556 658 514
## [58] 623  86 208   0 386 870 641 242 647 496 624 116  48 965 189 360 328 783 214
## [77] 700 179 667 790 560  64 460 426

phương trình bậc 2

#khởi tạo vecter x 
x <- c(3:5)
x
## [1] 3 4 5

chương 2

bài 3

Bài 3. Hàm cumprod cho phép tính tích lũy của một dãy số. Sử dụng tính chất của hàm cumprod, hãy tính giá trị của biểu thức sau: \[ \mathrm{S}=1+\frac{2}{3}+\left(\frac{2}{3} \frac{4}{5}\right)+\left(\frac{2}{3} \frac{4}{5} \frac{6}{7}\right)+\cdots+\left(\frac{2}{3} \frac{4}{5} \cdots \frac{38}{39}\right) \]

fractions <- c(2/3, 4/5, 6/7, 8/9, 10/11, 12/13, 14/15, 16/17, 18/19, 20/21, 22/23, 24/25, 26/27, 28/29, 30/31, 32/33, 34/35, 36/37, 38/39)
cumulative_products <- cumprod(fractions)
S <- sum(cumulative_products) +1
print(S)
## [1] 6.976346