Difference between revisions of "Tugas 2 Final Project To Optimaze Hydrogen Storage Design"

From ccitonlinewiki
Jump to: navigation, search
Line 26: Line 26:
 
     return volume - 1000
 
     return volume - 1000
  
# Tebakan awal untuk jari-jari dan tinggi
+
# Menebak jari-jari dan tinggi
 
x0 = [1.0, 10.0]
 
x0 = [1.0, 10.0]
  
# Tentukan batasan untuk variabel (jari-jari dan tinggi)
+
# Membatasi variabel jari-jari dan tinggi
 
batas = [(0, None), (0, None)]
 
batas = [(0, None), (0, None)]
  
# Tentukan konstrain dalam bentuk kamus
+
# Menentukan konstrain dalam bentuk kamus
 
konstrain_dict = {'type': 'eq', 'fun': konstrain}
 
konstrain_dict = {'type': 'eq', 'fun': konstrain}
  
# Gunakan fungsi minimize untuk mengoptimalkan fungsi objektif dengan memenuhi konstrain
+
# Menggunakan fungsi minimize dari scipy untuk optimasi
 
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)
 
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)
  
# Cetak hasil yang dioptimalkan
+
# Mencetak hasil yang telah dioptimasi
 
print("Hasil Optimisasi:")
 
print("Hasil Optimisasi:")
 
print("Jari-jari: {:.2f} cm".format(hasil.x[0]))
 
print("Jari-jari: {:.2f} cm".format(hasil.x[0]))
Line 45: Line 45:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
Pertama mendefinisikan fungsi objektif yang menghitung luas permukaan struktur silinder berdasarkan variabel yang diberikan yakni tinggi dan jari-jari.
 +
 +
Kemudian mendefinisikan fungsi konstrain yang memastikan volume internal struktur silinder memenuhi konstrain dengan selisih sebesar 1000 cm^3.
 +
 +
Berikutnya, menebak tebakan awal untuk jari-jari dan tinggi (x0) serta batasan untuk variabel (batas). Dalam kasus ini, mengasumsikan jari-jari dan tinggi dapat memiliki nilai positif.
 +
 +
Selanjutnya, gunakan fungsi minimize dari scipy.optimize untuk menyelesaikan masalah optimisasi. Bemberikan fungsi objektif , metode (SLSQP), tebakan awal, konstrain, dan batasan.
 +
 +
Dari code tersebut didapat hasil: Tinggi: 10.84 cm, Jari-jari: 5.42 cm Luas Permukaan: 553.58 cm^2

Revision as of 08:56, 6 June 2023

Berikut merupakan code optimasi tangki hidrogen dengan kapasitas 1 liter, dan biaya produksi maksimal Rp. 500.000

import numpy as np
from scipy.optimize import minimize

def objektif(x):
    # x[0] mewakili jari-jari, x[1] mewakili tinggi
    jari_jari = x[0]
    tinggi = x[1]

    # Hitung luas permukaan struktur silinder
    luas_permukaan = 2 * np.pi * jari_jari * (jari_jari + tinggi)

    return luas_permukaan

def konstrain(x):
    # x[0] mewakili jari-jari, x[1] mewakili tinggi
    jari_jari = x[0]
    tinggi = x[1]

    # Hitung volume internal struktur silinder
    volume = np.pi * jari_jari**2 * tinggi

    # Kembalikan selisih antara volume dan nilai yang diinginkan (1000 cm^3)
    return volume - 1000

# Menebak jari-jari dan tinggi
x0 = [1.0, 10.0]

# Membatasi variabel jari-jari dan tinggi
batas = [(0, None), (0, None)]

# Menentukan konstrain dalam bentuk kamus
konstrain_dict = {'type': 'eq', 'fun': konstrain}

# Menggunakan fungsi minimize dari scipy untuk optimasi
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)

# Mencetak hasil yang telah dioptimasi
print("Hasil Optimisasi:")
print("Jari-jari: {:.2f} cm".format(hasil.x[0]))
print("Tinggi: {:.2f} cm".format(hasil.x[1]))
print("Luas Permukaan: {:.2f} cm^2".format(hasil.fun))


Pertama mendefinisikan fungsi objektif yang menghitung luas permukaan struktur silinder berdasarkan variabel yang diberikan yakni tinggi dan jari-jari.

Kemudian mendefinisikan fungsi konstrain yang memastikan volume internal struktur silinder memenuhi konstrain dengan selisih sebesar 1000 cm^3.

Berikutnya, menebak tebakan awal untuk jari-jari dan tinggi (x0) serta batasan untuk variabel (batas). Dalam kasus ini, mengasumsikan jari-jari dan tinggi dapat memiliki nilai positif.

Selanjutnya, gunakan fungsi minimize dari scipy.optimize untuk menyelesaikan masalah optimisasi. Bemberikan fungsi objektif , metode (SLSQP), tebakan awal, konstrain, dan batasan.

Dari code tersebut didapat hasil: Tinggi: 10.84 cm, Jari-jari: 5.42 cm Luas Permukaan: 553.58 cm^2