120 pazuRrry
Wielomiany Legendre’a
stopnia 0 — - stopnia 1 • • • stopnia 2
. • — stopnia 3 — stopnia 4
“i-1-1-1-1-r~
0.0 0.2 0.4 0.6 0.8 1.0
Rysunek 2.3: Pierwsze pięć wielomianów Legendre’a
[ C3] 3
2.236068 - 13.41641*x + 13.41641*x~2 [[4]]
-2.645751 + 31.74902«x - 79.37254*x_2 + 52.91603*x‘3 CCS]]
3 - 60*x + 270*x“2 - 420»x~3 + 210*x~4 CC6]]
-3.316 + 99.498*x - 696.491*x‘2 + 1857.31*x~3 - 2089.474*x~4 +
> 0 konwertujemy wielomian no funkcję w rozumieniu pakietu R
> vielomian4 = as.function(wielomianyCM])
> 0 wyznaczmy jej wartość w kilku punktach
> wieloolan4(c(0,0.5,1))
[13 -2.645751 0 2.645751
> 0 taka funkcję możemy już narysować
> curve(wielomian4,0,1,lwd=3,lty=4,ylab=M")
> 0 narysujmy też pozostałe wielomiany
> for (i in l:Nmax) {
+ wielomian » as.function(wielomiany[[i]])
+ curve(wielomian,0,1,add-T,lwd-3,lty=i)
Wybrnuc funkcje matematyczne
V W pakiecie R dostępne są też funkcje Bessela. W tabeli 2.14 wypisano listę metod s^Mfjtoplementujących te funkcje.
Tabela 2.14: Lista funkcji specjalnych Bessela
bessell(x, |
nu) |
Zmodyfikowana funkcja Bossela pierwszego rodzaju. |
besselK(x, |
nu) |
Zmodyfikowana funkcja Bessela trzeciego rodzaju. |
besselJ(x, |
nu) |
Funkcja Bessela pierwszego rodzaju. |
besselY(x, |
nu) |
Funkcja Bessela drugiego rodzaju. |
W poprzednich podrozdziałach przedstawiliśmy przykłady operacji na wektorach, listach i macierzach. W R można wykonywać również operacje na zbiorach. Do operacji na zbiorach służą funkcje wymienione w tabeli 2.15. Fizycznie zbiory są reprezentowane jako wektory. Poniżej przedstawimy kilka przykładowych operacji na zbiorach.
121
Autor przyznaje się bez bicia, że •ł. funkcji Bessela nigdy nie korzystał, ale cieezy go. że ma taką możliwość.
h/-:
Si
Tabela 2.15: Funkcje z pakietu base do operowania na zbiorach
union(x, y) |
Wynikiem tej funkcji jest suma zbiorów x i y. |
intersect(x, y) |
Wynikiem tej funkcji jest część wspólna zbiorów x i y. |
setdiff(x, y) |
Wynikiem tej funkcji jest różnica zbiór x minus y (jest | to różnica zbiorów, niesymetryczna). |
setequal(x, y) |
Wynikiem tej funkcji jest wartość logiczna, równa TRUE, gdy zawartości obu zbiorów są sobie równe. |
is.element(el, set) |
Wynikiem tej funkcji jest wartość logiczna, równa TRUE, gdy element el należy do zbioru set. |
> # przygotujmy dwa zbiory liczb
> x « 1:10
> y = 5:15
> # wykonujemy xor’a (różnicę symetryczną), czyli sumę zbiorów minus część wspólna
> setdiff(union(x,y), intersect(x,y))
Cl] 1 2 3 4 11 12 13 14 15
:;> # sprawdzamy, czy dwa zbiory są równe
> setequal(x, setdiff(x, setdiff(y,x)))
Cl] TRUE
> # sprawdzamy, czy element należy do zbioru
> Is.element(3,x)
[1] TRUE