Pengantar Komputasi Numerik Dengan Scilab

9
Pengantar Komputasi Numerik dan Visualisasi Data dengan Scilab Saifuddin Arief [email protected] Scilab adalah suatu perangkat lunak yang dikembangkan untuk komputasi numerik dan visualisasi data. Pada awalnya Scilab dikembangkan oleh INRIA dan ENPC, Perancis, dan sekarang pengembangan dan pemeliharaan Scilab dilakukan oleh konsorsium Scilab. Alamat website Scilab adalah http://www.scilab.org . Gambar 1.1 Scilab Dua kelebihan utama dari Scilab yaitu gratis (freeware) dan tersedia untuk berbagai sistem operasi seperti Windows, Mac OS/X, Unix dan Linux. Scilab dapat dianggap sebagai sebuah kalkulator sains yang sangat canggih yang dapat digunakan untuk menyelesaikan berbagai persoalan komputasi

description

Pengenalan komputasi numerik dan visualisasi data dengan freeware Scilab.

Transcript of Pengantar Komputasi Numerik Dengan Scilab

Page 1: Pengantar Komputasi Numerik Dengan Scilab

Pengantar Komputasi Numerik dan Visualisasi Data

dengan Scilab

Saifuddin Arief

[email protected]

Scilab adalah suatu perangkat lunak yang dikembangkan untuk komputasi

numerik dan visualisasi data. Pada awalnya Scilab dikembangkan oleh

INRIA dan ENPC, Perancis, dan sekarang pengembangan dan

pemeliharaan Scilab dilakukan oleh konsorsium Scilab. Alamat website

Scilab adalah http://www.scilab.org.

Gambar 1.1 Scilab

Dua kelebihan utama dari Scilab yaitu gratis (freeware) dan tersedia untuk

berbagai sistem operasi seperti Windows, Mac OS/X, Unix dan Linux.

Scilab dapat dianggap sebagai sebuah kalkulator sains yang sangat canggih

yang dapat digunakan untuk menyelesaikan berbagai persoalan komputasi

Page 2: Pengantar Komputasi Numerik Dengan Scilab

2

numerik dengan mudah dan cepat. Scilab juga menyelesaikan fitur

pembuatan grafik secara dua dimensi dan tiga dimensi. Seperti yang

diilustrasikan pada beberapa contoh di bawah ini.

Dasar-dasar penggunaan Scilab dapat dilihat pada tulisan lainnya yang

telah dipublikasikan dengan judul “Sekilas tentang Scilab”.

Sebagian besar contoh-contoh yang terdapat pada tulisan ini diambil dari

Bab 1 Pendahuluan dari buku yang sedang penulis kerjakan dengan judul

Scilab: Perangkat Lunak Gratis untuk Komputasi Numerik dan

Visualisasi Data.

Aritmatika.

Misalkan kita mempunyai dua perhitungan sederhana sebagai berikut:

� 432 +×

� 4

100

51500

+×=F

Kedua persoalan aritmatika tersebut dapat kita selesaikan dengan

menggunakan perintah-perintah sebagai berikut:

-->2*3 + 4 ans = 10. -->F = 500*(1 + 5/100)^4 F = 607.75313

Matrik dan Aljabar Linier.

Salah satu kelebihan Scilab yaitu dapat menangani matrik dan berbagai

operasi Aljabar Linier dengan mudah dan cepat. Misalkan sistem

persamaan linier yang akan kita selesaikan adalah sebagai berikut:

1026

2446

0

31

21

321

=+=−=−+

xx

xx

xxx

Page 3: Pengantar Komputasi Numerik Dengan Scilab

3

Sistem persamaan linier ini dapat kita nyatakan secara ringkas dengan

notasi matrik bAx = . Dimana A adalah matrik yang menyatakan koefisien

sistem persamaan linier sebelah kiri, b adalah vektor kolom yang

menyatakan koefisien sebelah kanan dari sistem persamaan linier dan x

adalah vektor kolom yang menyatakan variabel yang takdiketahui.

Matrik A dapat kita buat dengan menggunakan perintah sebagai berikut.

-->A = [1 1 -1; 6 -4 0; 6 0 2] A = 1. 1. - 1. 6. - 4. 0. 6. 0. 2.

Pembuatan suatu matrik secara manual, seperti contoh di atas, dapat

dilakukan secara mudah yaitu dengan menggunakan operator kurung siku

kiri dan kurung siku kanan, ([ ]), kemudian tanda spasi atau koma

digunakan untuk memisahkan elemen yang satu dengan elemen lainnya

serta tanda titik koma (;) untuk memisahkan antara baris yang satu dengan

baris yang lain.

Selanjutnya, vektor b dapat kita buat dengan cara sebagai berikut:

-->b = [0; 24; 10] b = 0. 24. 10.

Setelah matrik A dan vektor b selesai kita buat maka sistem persamaan

linier bAx = dapat kita selesaikan dengan menggunakan operator

pembagian kiri (\), dengan cara sebagai berikut.

-->x = A\b x = 2. - 3. - 1.

Penyelesaian yang diperoleh adalah x1 = 2, x2 = -3, dan x3 = -1. Terlihat

bahwa kita dapat menyelesaikan suatu persamaan linier dengan cepat dan

mudah.

Page 4: Pengantar Komputasi Numerik Dengan Scilab

4

Komputasi aljabar linier lainnya, seperti nilai determinan dan matrik

inverse juga dapat kita hitung dengan mudah. Determinan suatu matrik

bujur sangkar dapat kita hitung dengan menggunakan fungsi det dan

inverse suatu matrik dapat kita peroleh dengan menggunakan fungsi inv.

-->d = det(A) d = - 44. -->IA = inv(A) IA = 0.1818182 0.0454545 0.0909091 0.2727273 - 0.1818182 0.1363636 - 0.5454545 - 0.1363636 0.2272727

Penyelesaian Persamaan Nonlinier.

Misalkan sebuah fungsi non-linier yang akan kita cara akarnya adalah

( ) ( )xxxxf exp31 21+−= . Akar dari sebuah fungsi nonlinier f(x) dapat kita

tentukan dengan mudah menggunakan fungsi fsolve.

Sebelum menjalankan fungsi fsolve maka kita harus mendefinisikan fungsi

f(x) terlebih. Perintah-perintah untuk membuat fungsi f(x) adalah sebagai

berikut.

-->function y = fn(x) --> y = 1 - 3*x + 0.5*x.*exp(x) -->endfunction

Gambar 1. Grafik ( ) ( )xxxxf exp31 21+−=

Page 5: Pengantar Komputasi Numerik Dengan Scilab

5

Dari Gambar 1 terlihat bahwa fungsi ( ) ( )xxxxf exp31 21+−= mempunyai

dua buah akar dan akar-akar tersebut nilainya adalah disekitar x = 0.5 dan

x = 1.5.

Akar dari fungsi f(x) yang terletak disekitar titik x = 0.5 dapat kita hitung

sebagai berikut:

-->[x1,fx1] = fsolve(0.5, fn) fx1 = - 5.551D-17 x1 = 0.4515419

Selanjutnya akar dari fungsi f(x) yang terletak disekitar titik x = 0.5 dan x

= 1.5. dapat kita hitung sebagai berikut:

-->[x2,fx2] = fsolve(1.5,fn) fx2 = 0. x2 = 1.5495377

Penyelesaian yang diperoleh yaitu x = 0.4515 dan x = 1.5495 merupakan

akar-akar dari f(x).

Integrasi Numerik

Banyak persamaan integral tertentu yang sulit atau bahkan tidak dapat

diselesaikan analitis, seperti pada contoh berikut ini.

( )dx

xx

xI ∫ ++

=5

02 1

3sin

Untuk kasus yang seperti ini, kita dapat menyelesaikan secara mudah

dengan menggunakan fungsi intg.

Misalkan h(x) adalah fungsi yang diintegralkan pada persamaan di atas,

maka kita dapat menyatakan fungsi h(x) dengan statemen-statemen sebagai

berikut.

-->function y = h(x) --> y = sin(3*x)/sqrt(x^2 + x + 1) -->endfunction

Page 6: Pengantar Komputasi Numerik Dengan Scilab

6

Nilai integral I dapat kita hitung dengan menggunakan fungsi intg.

-->I = intg(0, 5, h) I = 0.3648728

Jawaban yang diperoleh yaitu I = 0.3648.

Regresi Linier

Regresi Linier dari suatu pasangan data dapat kita lakukan dengan

menggunakan fungsi regress. Misalkan kita mempunyai pasangan data

sebagai berikut

x y

-1 10

0 9

1 7

2 5

3 4

4 3

5 0

6 -1

Garis regresi linier y = mx + k dari sekumpulan data tersebut dapat kita

tentukan dengan perintah-perintah sebagai berikut.

-->x = [-1 0 1 2 3 4 5 6]; -->y = [10 9 7 5 4 3 0 -1]; -->koef = regress(x,y) koef = 8.6428571 - 1.6071429 -->yr = koef(1) + koef(2)*x;

Jawaban yang diperoleh yaitu persamaan garis regresi linier untuk

sekumpulan data tersebut adalah y = -1.607 x + 8.643.

Gambar 2 adalah grafik dari pasangan data x dan y serta garis regresi

liniernya.

Page 7: Pengantar Komputasi Numerik Dengan Scilab

7

-1 0 1 2 3 4 5 6-2

0

2

4

6

8

10

12

Contoh Regresi Lininer

x

y

Gambar 2. Contoh Regresi Linier

Grafik

Visualisasi dari sekumpulan data atau suatu fungsi juga dapat kita lakukan

dengan mudah seperti pada contoh di bawah ini.

-->x = linspace(0,4,1000); y = 9*exp(-2*x) - 7*exp(-3*x); -->plot(x,y) -->xtitle("9*exp(-2*x) - 7*exp(-3*x)","x","y")

Grafik yang dihasilkan oleh perintah-perintah di atas adalah seperti yang

ditunjukkan pada gambar di bawah ini.

Gambar 3

Page 8: Pengantar Komputasi Numerik Dengan Scilab

8

Scilab juga dapat digunakan untuk membuat grafik tiga dimensi. Berikut ini

adalah perintah-perintah untuk membuat grafik tiga dimensi, seperti yang

terlihat pada gambar 4.

-->x = linspace(0,2*%pi,50); y = x; -->z = cos(x')*cos(y); -->clf, plot3d1(x,y,z) -->xtitle('z = cos(x)*cos(y)'), xset('colormap',jetcolormap(50))

Gambar 4

Kesimpulan

Dari beberapa contoh di atas terlihat bahwa berbagai persoalan numerik

dapat diselesaikan secara mudah dan cepat dengan menggunakan Scilab.

Perhitungan-perhitungan tersebut tentu saja dapat kita selesaikan dengan

menggunakan suatu progam bahasa pemrograman, seperti Fortan atau C,

namun kita harus menggunakan perintah-perintah yang jauh lebih banyak

dan lebih rumit.

Page 9: Pengantar Komputasi Numerik Dengan Scilab

9

Daftar Pustaka

Arief, Saifuddin. Scilab: Perangkat Lunak Gratis untuk Komputasi

Numerik dan Visualisasi Data (draft).

Chapra, S.C., Canale, R.P., Numerical Methods for Engineers with

Programming and Software Applications. WCB/McGraw-Hill,

Singapore, 1998.

Kreyzig, E., Advanced Engineering Mathematics 7th Edition, John Wiley &

Sons, New York, 1993.

Quarteroni, A., Saleri, F., Scientific Computing with MATLAB and

Octave. 2nd Edition. Springer, Berlin, 2006.