laboratorinis darbas nr2
DESCRIPTION
Labaratorinis nr 2TRANSCRIPT
VEIKSMAI IR PAGRINDINĖS FUNKCIJOSR PROGRAMOJE
(2-asis laboratorinis darbas)
Viktoras Chadyšas
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 1/20
Aritmetikos veiksmai su skaičiais ir kitos funkcijos
+(sudėtis), −(atimtis), ∗(daugyba), /(dalyba),̂(kelti laipsniu),sqrt() – kvadratinė šaknis, abs() – absoliutinis dydis
1 2+52 2-53 2*54 2/55 2^56 sqrt(2)7 abs(2-4)
1 [1] 72 [1] -33 [1] 104 [1] 0.45 [1] 326 [1] 1.4142147 [1] 2
pi – π reikšmė
1 pi 1 [1] 3.141593
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 2/20
sin(), cos(), tan() – trigonometrinės funkcijos
1 sin(pi/2)2 cos(pi)
1 [1] 12 [1] -1
exp() – eksponentinė funkcija ex
1 exp(1) 1 [1] 2.718282
log() – logaritminė funkcijos ln(x)
1 log(1)2 log(exp(1))
1 [1] 02 [1] 1
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 3/20
factorial() – faktorialas n!
1 factorial(3) 1 [1] 6
choose() – derinių skaičius C kn = n!
k!(n−k)!
1 choose(12,5) 1 [1] 792
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 4/20
Vektoriai ir veiksmai su jais
Skaitinio vektoriaus sudarymo pavyzdžiai
1 vekt<-c(1,5,3,7)2 vekt
1
2 [1] 1 5 3 7
arba
1 assign("vekt",c(1,5,3,7))2 vekt
1
2 [1] 1 5 3 7
Simbolių vektoriaus sudarymo pavyzdžiai
1 vekt2<-c("Jonas", "Lina")2 vekt2
1
2 [1] "Jonas" "Lina"
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 5/20
Aritmetiniai veiksmai su vektoriais žymimi kaip ir veiksmai suskaičiais.
Aritmetiniai veiksmai su vektoriaisSudarome du skaitinius vektorius x ir y.
1 x<-c(1,2,3)2 y<-c(4,5,6)3 x4 y
1
2
3 [1] 1 2 34 [1] 4 5 6
Atliekami aritmetiniai veiksmai su šiais vektoriais.
1 x+y2 y-x3 y^x4 sin(x*pi)+cos(y*pi)
1 [1] 5 7 92 [1] 3 3 33 [1] 4 25 2164 [1] 1 -1 1
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 6/20
Vektoriai ir jų funkcijos
length() – apskaičiuojamas vektoriaus ilgis,sort() – rikiuoja vektoriaus komponentes
1 vekt <- c(3, 2, 5, 1)2 length(vekt)3 sort(vekt)
1
2 [1] 43 [1] 1 2 3 5
sum() – vektoriaus komponenčių suma,prod() – vektoriaus komponenčių sandauga,diff() – skaičiuoja vektoriaus komponenčių skirtumus
1 sum(vekt)2 prod(vekt)3 diff(vekt)
1 [1] 112 [1] 303 [1] -1 3 -4
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 7/20
cumsum() – kaupiamoji vektoriaus elementų reikšmių suma,cumprod() – kaupiamoji vektoriaus elementų reikšmių sandauga
1 vekt2 <- c(2,2,1,1,4)2 cumsum(vekt2)3 cumprod(vek2)
1
2 [1] 2 4 5 6 103 [1] 2 4 4 4 16
mean() – skaičiuoja vidurkį, var() – skaičiuoja dispersiją,min(), max() – atitinkamai mažiausia, didžiausia komponentė,table() – skaičiuoja pasikartojančias reikšmes (dažnius)
1 mean(vekt2)2 min(vekt2)3 max(vekt2)
1 [1] 22 [1] 13 [1] 4
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 8/20
Visada galima išskirti tam tikrą vektoriaus poaibį, po jo vardolaužtiniuose skliaustuose nurodant sąlygą arba indeksų vektorių.
Loginis vektorius – vektoriaus reikšmės, tenkinančios sąlygą,paliekamos.
1 vekt <- c(3, 2, 5, 1)2 poaib<- vekt[vekt>2]3 poaib4 poaib2<- vekt[vekt<=3]5 poaib2
1
2
3 [1] 3 54
5 [1] 3 2 1
Loginiai operatoriai yra:<, <=, >, >=, == (lygybė), != (nelygybė).
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 9/20
Sveikų teigiamų skaičių vektorius nurodo komponentes, kuriosturi būti paliktos vektoriuje.
1 vekt <- c(3, 2, 5, 1)2 poaib<- vekt[c(2,3,4)]3 poaib4 poaib2<- vekt[2:4]5 poaib2
1
2
3 [1] 2 5 14
5 [1] 2 5 1
Sveikų neigiamų skaičių vektorius nurodo komponentes, kuriosturi būti pašalintos iš vektoriaus.
1 poaib<- vekt[-c(2,3,4)]2 poaib3 poaib2<- vekt[-(2:4)]4 poaib2
1
2 [1] 33
4 [1] 3
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 10/20
Skaičių sekos ir jų sudarymas
Sekoms sudaryti dažnai naudojamos funkcijos: c(), seq(), rep().
Skaičių sekos sudarymas su žingsniu 1 pagal nutylėjimą.
1 seka<-c(3:9)2 seka3 seka2<- seq(from=3,to=9)4 seka2
1
2 [1] 3 4 5 6 7 8 93
4 [1] 3 4 5 6 7 8 9
Skaičių sekos sudarymas su pasirinktu žingsniu.
1 seka<-seq(from=1,to=10,by=3)2 seka3 seka2<-seq(from=3,to=20,by=4)4 seka2
1
2 [1] 1 4 7 103
4 [1] 3 7 11 15 19
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 11/20
Dėsningų sekų sudarymas.
Skaičiaus a kartojimas n kartų rep(a, times=n).
1 seka<-rep(5,times=3)2 seka
1
2 [1] 5 5 5
Turimos sekos x kartojimas n kartų rep(x, times=n).
1 x<-c(1,4,8)2 seka2<-rep(x,times=2)3 seka24
5 raides<-c("A","B")6 seka3<-rep(raides,times=2)7 seka3
1
2
3 [1] 1 4 8 1 4 84
5
6
7 [1] "A" "B" "A" "B"
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 12/20
Atsitiktinių sekų sudarymas
n dydžio natūrinių skaičių seka iš N natūraliųjų skaičių bepasikartojimų sample(N,size=n).
1 seka<-sample(10,size=3)2 seka
1
2 [1] 5 3 2
n dydžio natūrinių skaičių seka iš N natūraliųjų skaičių supasikartojimais sample(N,size=n,replace=TRUE).
1 set.seed(12)2 seka2<-sample(5,size=3,replace=TRUE)3 seka2
1
2
3 [1] 1 5 5
Komanda set.seed(n), n - sveikasis skaičius, naudojama jeinorima generuoti vis tą pačią seką.
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 13/20
n dydžio elementų seka be pasikartojimų iš turimo sąrašo.
1 n <-22 set.seed(2)3 r <- c("A", "B", "C", "D", "E")4 seka <- sample(r,size=n)5 seka
1
2
3
4 [1] "A" "C"
n dydžio elementų seka su pasikartojimais iš turimo sąrašo.
1 n <-32 set.seed(12)3 s<-sample(r,size=n,replace=TRUE)4 s5
6 s2<-sample(r,n,TRUE)7 s2
1
2
3
4 [1] "A" "E" "E"5
6 [1] "A" "E" "E"
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 14/20
Veiksmai su aibių elementais
union() – įvykių sąjunga,intersect() – įvykių sankirta,setdiff() – įvykių skirtumas.
1 A <-c(2,4,6) # Įvykis A2 B <-c(1,3,5) # Įvykis B3 union(A,B)4 intersect(A,B)5 setdiff(A,B)6 intersect(A,B) Sankirta7 intersect(A,B) # Sankirta
1
2
3 [1] 2 4 6 1 3 54 numeric(0)5 [1] 2 4 66 Error: unexpected ...7 numeric(0)
Komandinės eilutės, arba tekstas suprantamas kaip komentarai,jei rašomos prieš tai ženklas #.
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 15/20
Matricos ir jų veiksmai
Matrica sudaroma iš vektoriaus, nurodant jam matavimą irelementų išdėstymą matricoje, naudojant funkciją:matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)
1 x<-c(1,2,3,4,5,6)2 A<-matrix(x,nrow=2,ncol=3)3 A4
5
6
7
8 B<-matrix(x,2,3,byrow=TRUE)9 B
1
2
3 [,1] [,2] [,3]4 [1,] 1 3 55 [2,] 2 4 66
7
8
9 [,1] [,2] [,3]10 [1,] 1 2 311 [2,] 4 5 6
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 16/20
Kitas būdas įvesti matricai:
1 A <- numeric(s) # Elementu skaicius2 dim(A)<-c(n,m) # n - eil. sk., m - stulp. sk.)3 matrica <- edit(A) # Reiksmiu ivedimas
* – paelementinė matricų daugyba,% ∗ % – tikroji matricų daugyba,dim() – pateikia matricos eilučių ir stulpelių skaičių,det() – kvadratinės matricos determinanto skaičiavimas,t() – matricos transponavimas.
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 17/20
Tarkime A - matrica, o b - vektorius:solve(A) – surandama matricos A atvirkštinė,solve(A,b) – surandamas tiesinių lygčių sistemos Ax=bsprendinys.
Išspręskite duotą tiesinių lygčių sistemą:2x1 + x2 = 1,6x1 + x2 + x3 = 1,
−x1 − 3x2 + 2x3 = −3.
1 x <-c(2,1,0,6,1,1,-1,-3,2)2 y <-c(1,1,-3)3 A <-matrix(x,3,3,TRUE)4 b <-matrix(y,ncol=1)5 ats <-solve(A,b)6 ats
1
2
3 [,1]4 [1,] 05 [2,] 16 [3,] 0
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 18/20
Savarankiškas darbas
Sudarykite du skirtingo ilgio vektorius x ir y suskirtingomis reikšmėmis. Sudarykite naują vektorių zapjungiant vektorių x ir y reikšmes. Išrikiuokite naujaisudaryto vektoriaus komponentes didėjimo tvarka,apskaičiuokite jo ilgį ir vidurkį.
Kiekvieno mėnesio pelnas (Lt, tūkst.) įmonės, kuriprekiavo AUDI automobiliais 2012 metais buvo: 25, 35, 60,75, 120, 85, 90, 105, 130, 90, 45, 20. Įveskite duomenis į Rkaip vektorių. Apskaičiuokite visą įmonės pelną per 2012metus. Koks mažiausias ir didžiausias mėnesio pelnas?Kiek mėnesių pelnas buvo didesnis negu 80 tūkst. Lt?Koks tai procentas?
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 19/20
Generuodami atsitiktines sekas imtuokite lietuviškosmonetos mėtymą 100 kartų. Funkcijos table() pagalbaraskite skaičiaus ir vyčio atsivertimo dažnius.Apskaičiuokite atitinkamas skaičiaus ir vyčio atsivertimotikimybes. Patikrinkite, ar didinant eksperimentų skaičiųšios tikimybės tikrai artėja į 0.5.
R programos pagalba išspręskite tiesinių lygčių sistemą:2x1 + 2x2 + x3 = 2,
−3x1 − 3x3 = 3,6x1 + 3x2 + 4x3 = 0.
Veiksmai ir pagrindinės funkcijos R programoje Skaidrės 20/20