Matkul : Kalkulus, Dosen Pengampu : Prof. Dr. SUHARTONO, M.Kom


2.1 Grafik Fungsi Matematika Pada grafik fungsi matematika bahasa pemrograman R, kita bisa mendefinisikan fungsi tersebut dengan menggunakan library mosaicCalc. Terdapat 3 macam fungsi grafis yang bisa kita manfaatkan : - slice_plot() untuk fungsi satu variabel. - contour_plot() untuk fungsi dua variabel. - interactive_plot() yang menghasilkan widget HTML untuk berinteraksi dengan fungsi dua variabel.

library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D

Pada percobaan kali ini, kita akan mencoba mendefinisikan fungsi grafik garis sederhana y = mx + b. Disini kita akan memasukkan nilai variabel grafik seperti contoh kali ini kita akan memasukkan nilai (x), pada slice_plot kita akan memasukkannya dengan tanda notasi (~) dan membuatnya dalam jarak tertentu seperti contoh pada nilai 0 sampai 10.

slice_plot(3 * x - 2 ~ x, domain(x = range(0, 10)))

Kita juga bisa memasukkan parameter gradien (m) maupun variabel lain diluar dari fungsi

m = -3
b = -2
slice_plot(m * x + b ~ x, domain(x = range(0, 10)))

Pada contoh lain, kita bisa membuat persamaan kurva y = ax^2 dengan titik koordinat dalam jarak -2 sampai 3. Kita juga bisa memberi warna pada grafik yang kita buat didalam slice_plot dengan memnambahkan parameter color

A = 10
slice_plot( A * x ^ 2 ~ x, domain(x = range(-2, 3)), color="blue") 

Parameter juga bisa diisi dengan fungsi makeFun() pada library mosaicCalc, seperti contoh kita akan membuat fungsi persamaan y = 3x^2 - 5x + 2, fungsi tersebut akan kita masukkan kedalam fungsi makeFun() dengan parameter -2 sampai 2.

g  <- makeFun(3*x^2 - 5*x + 2 ~ x)
slice_plot(g(x) ~ x , domain(x = range(-2, 2)))

Kita juga dapat mengecek nilai lain diluar parameter, seperti contoh kita akan melihat variabel g(x) akan kita isi nilai x diluar jarak parameter yang kita buat. Kita akan melihat berapa nilai pada saat x = 3 dan x = -4.

g(x = 3)
## [1] 14
g(x = -4)
## [1] 70

Kita juga dapat mencoba menggunakan rumus umum matematika seperti contoh persamaan y = cos(2t) dengan titik t dari 0 sampai 5.

slice_plot( cos(2 * t) ~ t, domain(t = range(0, 5) ))

Kita juga dapat membuat persamaan yang memuat akar, seperti contoh pada persamaan y = √t cos (5t) dengan domain 0 sampai 5

slice_plot( sqrt(t) * cos(5 * t) ~ t, domain(t = range(0, 5) ))

2.2 Membuat Scatterplot Scatterplot dalan dokumentasi yang ada, biasa digunakan sebagai pemodelan statistik yang mana nantinya akan bermanfaat pada saat kita mengolah data atau yang biasa disebut data mining. Pada percobaan kali ini kita akan mengambil potongan pertama pada subjek dalam bentuk penyesuaian kurva. langkah pertama adalah kita membaca data dengan menuliskan lokasi dan nama file dari data (csv) entah itu di lokal maupun di Internet. Kali ini saya akan menggunakan data pada internet dengan nama file “Income-Housing.csv”, yang terletak di “http://www.mosaic-web.org/go/datasets/Income-Housing.csv”.

Housing = read.csv("http://www.mosaic-web.org/go/datasets/Income-Housing.csv")

#kemudian kita akan mencoba menampilkan data yang ada pada file
Housing
##   Income IncomePercentile CrimeProblem AbandonedBuildings IncompleteBathroom
## 1   3914                5         39.6               12.6                2.6
## 2  10817               15         32.4               10.0                3.3
## 3  21097               30         26.7                7.1                2.3
## 4  34548               50         23.9                4.1                2.1
## 5  51941               70         21.4                2.3                2.4
## 6  72079               90         19.9                1.2                2.0
##   NoCentralHeat ExposedWires AirConditioning TwoBathrooms MotorVehicle
## 1          32.3          5.5            52.3         13.9         57.3
## 2          34.7          5.0            55.4         16.9         82.1
## 3          28.1          2.4            61.7         24.8         91.7
## 4          21.4          2.1            69.8         39.6         97.0
## 5          14.9          1.4            73.9         51.2         98.0
## 6           9.6          1.0            76.7         73.2         99.0
##   TwoVehicles ClothesWasher ClothesDryer Dishwasher Telephone
## 1        17.3          57.8         37.5       16.5      68.7
## 2        34.3          61.4         38.0       16.0      79.7
## 3        56.4          78.6         62.0       25.8      90.8
## 4        75.3          84.4         75.2       41.6      96.5
## 5        86.6          92.8         88.9       58.2      98.3
## 6        92.9          97.1         95.6       79.7      99.5
##   DoctorVisitsUnder7 DoctorVisits7To18 NoDoctorVisitUnder7 NoDoctorVisit7To18
## 1                3.6               2.6                13.7               31.2
## 2                3.7               2.6                14.9               32.0
## 3                3.6               2.1                13.8               31.4
## 4                4.0               2.3                10.4               27.3
## 5                4.0               2.5                 7.7               23.9
## 6                4.7               3.1                 5.3               17.5

Kemudian untuk melihat semua variabel yang ada pada data, dan ingin menampilkan data spesifik. Kita bisa menuliskan perintah seperti berikut

names(Housing)
##  [1] "Income"              "IncomePercentile"    "CrimeProblem"       
##  [4] "AbandonedBuildings"  "IncompleteBathroom"  "NoCentralHeat"      
##  [7] "ExposedWires"        "AirConditioning"     "TwoBathrooms"       
## [10] "MotorVehicle"        "TwoVehicles"         "ClothesWasher"      
## [13] "ClothesDryer"        "Dishwasher"          "Telephone"          
## [16] "DoctorVisitsUnder7"  "DoctorVisits7To18"   "NoDoctorVisitUnder7"
## [19] "NoDoctorVisit7To18"
#untuk mengambil variabel spesifik seperti contoh MotorVehicle
Housing$MotorVehicle
## [1] 57.3 82.1 91.7 97.0 98.0 99.0
#kita juga dapat mengambil beberapa tabel saja untuk ditampilkan, seperti contoh kita akan mengambil data beris 1 sampai 3 dengan kolom 1 sampai kolom 5
Housing[1:3,1:5]
##   Income IncomePercentile CrimeProblem AbandonedBuildings IncompleteBathroom
## 1   3914                5         39.6               12.6                2.6
## 2  10817               15         32.4               10.0                3.3
## 3  21097               30         26.7                7.1                2.3

Disini kita akan mencoba menggunakan scatter-plot dengan sampel variabel CrimeProblem dan variabel Income yang berasal dari data Housing

gf_point(CrimeProblem ~ Income, data = Housing )

Pada kelanjutannya kita bisa menambahkan layer lain didalam grafik scatter-plot dengan menggunakan tanda hubung (%>%). Kita juga bisa memperluas batas sumbu x dan y dengan menabahkan fungsi gf_lims.Kita juga bisa mengubah nama grafik sumbu x dan y dengan menggunakan fungsi gf_labs.

gf_point(
  CrimeProblem ~ Income, data = Housing) %>% 
  
  slice_plot(
    40 - Income / 2000 ~ Income, color = "blue") %>%
  
  gf_labs(x= "Income Bracket ($US per household)/year",
          y = "Fraction of Households",
          main = "Crime Problem") %>%
  
  gf_lims(
    x = range(0,100000), 
    y=range(0,50))

2.3 Grafik Fungsi dua Variabel Pada grafik fungsi dua variabel kita bisa menggunakan fungsi contour-plot. Code pada contour-plot sama dengan slice-plot pada bagian notasi yang mempunyai dua variabel dan pada domain range yang mempunyai 2 input.

contour_plot(
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x,
  domain(t = range(0,20), x = range(0,10)))

#kita juga bisa mengganti t = range(0,20) menjadi t = 0:20 ataupun t & x menjadi t + x

Kita juga bisa membuat plot menjadi 3D dengan manggunakan interactive plot

interactive_plot(
   sin(2*pi*t/10)*exp(-.5*x) ~ t + x, 
   domain(t = 0:20, x = 0:10))

Kita juga bisa mencoba menggunakan fungsi makeFun() yang telah kita coba pada scatter plot

g <- makeFun(
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x)
contour_plot(
  g(t, x) ~ t + x,  
  domain(t=0:20, x=0:10))

Daftar Pustaka : https://dtkaplan.github.io/RforCalculus/