Difference between revisions of "Tugas 2 Final Project To Optimaze Hydrogen Storage Design"
(Created page with "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...") |
|||
Line 25: | Line 25: | ||
return volume - 1000 | return volume - 1000 | ||
− | # Menebak untuk jari-jari dan tinggi | + | #Menebak untuk jari-jari dan tinggi |
x0 = [1.0, 10.0] | x0 = [1.0, 10.0] | ||
− | # Memberikan batasan untuk variabel (jari-jari dan tinggi) | + | #Memberikan batasan untuk variabel (jari-jari dan tinggi) |
batas = [(0, None), (0, None)] | batas = [(0, None), (0, None)] | ||
− | # Menentukan constrain dalam bentuk kamus | + | #Menentukan constrain dalam bentuk kamus |
konstrain_dict = {'type': 'eq', 'fun': konstrain} | konstrain_dict = {'type': 'eq', 'fun': konstrain} | ||
− | # Menggunakan fungsi minimize untuk mengoptimalkan fungsi objektif dengan memenuhi konstrain | + | #Menggunakan fungsi minimize untuk mengoptimalkan fungsi objektif dengan memenuhi konstrain |
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict) | hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict) | ||
− | # Print hasil yang telah dioptimalkan | + | #Print hasil yang telah dioptimalkan |
print("Hasil Optimisasi:") | print("Hasil Optimisasi:") | ||
print("Jari-jari: {:.2f} cm".format(hasil.x[0])) | print("Jari-jari: {:.2f} cm".format(hasil.x[0])) | ||
print("Tinggi: {:.2f} cm".format(hasil.x[1])) | print("Tinggi: {:.2f} cm".format(hasil.x[1])) | ||
print("Luas Permukaan: {:.2f} cm^2".format(hasil.fun)) | print("Luas Permukaan: {:.2f} cm^2".format(hasil.fun)) |
Revision as of 08:35, 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 untuk jari-jari dan tinggi
x0 = [1.0, 10.0]
- Memberikan batasan untuk variabel (jari-jari dan tinggi)
batas = [(0, None), (0, None)]
- Menentukan constrain dalam bentuk kamus
konstrain_dict = {'type': 'eq', 'fun': konstrain}
- Menggunakan fungsi minimize untuk mengoptimalkan fungsi objektif dengan memenuhi konstrain
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)
- Print hasil yang telah dioptimalkan
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))