Pada proses konduksi kita terkadang hanya diberi data eksperimen ataupun grafik. Namun kita tidak mengetahui persamaan dari fenomena tersebut. Di bawah ini akan diberikan kasus peristiwa konduksi pada batang :
Dari contoh kasus di atas, diketahui temperatur di titik A adalah 100 oC dan temperatur di titik B adalah 500 oC. Adapun panjang dari batang adalah 0.5 m.
Dari penyelasaian CFD (lihat di posting sebelumnya tentang soal 4.1), di dapat hasil sebagai berikut :
Pada penyelesaian CFD sebelumnya sebenarnya hasil dan grafik serta persamaan sudah diketahui, namun bagaimana apabila keadaannya sekarang dibalik?? Kita sekarang hanya mendapatkan data nilai X dan Y saja, atau kita sudah menerima hasil berupa grafik seperti di atas tanpa kita tahu persamaan dari grafik tersebut.
Berikut adalah algoritma untuk menyelesaikan kasus diatas :
- Tentukan dan susun deretan nilai X dan Y yang diketahui
- Tentukan n ( berapa data) yang diketahui
- Hitunglah jumlah dari nilai x dan definisikan sebagai sum x
- Hitung jumlah dari nilai y dan definisikan sebagai sum y
- Lakukan perhitungan kuadrat dari nilai x sehingga setiap nilai x akan dikuadratkan menjadi x^2
- Hitung jumlah dari nilai x^2 sehingga dapat didefinisikan menjadi sum x^2
- Lakukan perkalian setiap nilai x dengan nilai y sehingga menjadi xy
- Hitung jumlah dari nilai xy sehingga dapat didefinisikan menjadi sum xy
- Persamaan umum dari persamaan linear adalah y = a1 x + a0
- Untuk mencari nilai a1 gunakan rumus sebagai berikut : a1 = ((n.sum xy)-(sum x . sum y)) / ((n . sum x^2)-(sum x)^2)
- Untuk mencari nilai a0 gunakan rumus : a0 = ((sum y . sum x^2)-(sum x . sum xy)) / (( n . sum x^2)-(sum x)^2)
- Apabila nilai a1 dan a0 sudah diketahui, maka persamaan linear dapat diketahui.
Buat User Form seperti dibawah ini :
Untuk nilai x1 sampai x7 dan y1 sampai y2 adalah pilih label, sementara untuk nilai yang akan dimasukkan inputnya adalah textbox.
Untuk perhitungan persamaan menggunakan commandbutton dan untuk menampilkan hasil sum_x, sum_y, sum_x_2, sum_x_y, nilai a1, dan a0 menggunakan label.
Begitu sudah membuat userform, kemudian tulis program pada commandbutton
Private Sub CommandButton1_Click()
'Ini adalah program untuk mencari persamaan linear
Dim X1, X2, X3, X4, X5, X6, X7, Y1, Y2, Y3, Y4, Y5, Y6, Y7 As Integer
Dim n, sum_x, sum_y, sum_x_2, sum_x_y As Integer
'Definisikan Variabel
X1 = arax1.Text
X2 = arax2.Text
X3 = arax3.Text
X4 = arax4.Text
X5 = arax5.Text
X6 = arax6.Text
X7 = arax7.Text
Y1 = aray1.Text
Y2 = aray2.Text
Y3 = aray3.Text
Y4 = aray4.Text
Y5 = aray5.Text
Y6 = aray6.Text
Y7 = aray7.Text
n = aran.Text
'tentukan nilai a0 dan a1
sum_x = Val(X1) + Val(X2) + Val(X3) + Val(X4) + Val(X5) + Val(X6) + Val(X7)
sum_y = Val(Y1) + Val(Y2) + Val(Y3) + Val(Y4) + Val(Y5) + Val(Y6) + Val(Y7)
sum_x_2 = X1 ^ 2 + X2 ^ 2 + X3 ^ 2 + X4 ^ 2 + X5 ^ 2 + X6 ^ 2 + X7 ^ 2
sum_x_y = ((X1 * Y1) + (X2 * Y2) + (X3 * Y3) + (X4 * Y4) + (X5 * Y5) + (X6 * Y6) + (X7 * Y7))
hasilsum_x.Caption = sum_x
hasilsum_y.Caption = sum_y
hasilsum_x_2.Caption = sum_x_2
hasilsum_x_y.Caption = sum_x_y
a0 = ((sum_y * sum_x_2) - (sum_x * sum_x_y)) / ((n * sum_x_2) - (sum_x ^ 2))
a1 = ((n * sum_x_y) - (sum_x * sum_y)) / ((n * sum_x_2) - (sum_x ^ 2))
hasila0.Caption = a0
hasila1.Caption = a1
End Sub
Berikut adalah hasil dari program
Persamaan linear adalah y = 800x + 100
Thx ilmunya. sblmnya pernah bikin persamaan linear dg leastsuare via Visual basic jg sih, tp blm pernah diterapin di soal CFD, bisa dicoba, :)
BalasHapusWah sama-sama ya, saling berbagi ilmu..Oh gitu ya, iya bisa dicoba di persoalan CFD, asalkan data-data eksperimen telah diketahui, maka metode least square atau regresi linear bisa dilakukan dengan visual basic..
BalasHapusSalam hangat
salam kenal bro tyo..mau nanya..saya ada tugas dari dosen utnuk membuat PROGRAM BARU untuk menggambar grafik sumbu x dan y serta daerah arsir.
BalasHapustidak boleh memakai program yang sudah ada seperti matlab,excel,dll.
saya ingin memakai visual basic atau pascal..apakah bro tyo ada script untuk membuat program tersebut??..saya dan kelompok sangat membutuhkan bantuannya..makasih banyak bro tyo..