Difference between revisions of "Geometry Analysis"

From ccitonlinewiki
Jump to: navigation, search
 
Line 52: Line 52:
  
 
Luas Permukaan: 553.58 cm^2
 
Luas Permukaan: 553.58 cm^2
 
 
    from scipy.optimize import minimize
 
    # Harga dan kapasitas
 
    harga_per_unit = 100000  # Harga per unit penyimpanan hidrogen  = 1 
 
    # Kapasitas penyimpanan hidrogen per unit
 
    # Anggaran maksimal
 
    budget_maksimal = 500000
 
    # Fungsi tujuan
 
    def fungsi_tujuan(x):
 
    return -x
 
    # Kendala
 
    def kendala(anggaran):
 
    return budget_maksimal - (harga_per_unit * anggaran)
 
    kendala_anggaran = {'type': 'ineq', 'fun': kendala}
 
    # Nilai awal
 
    x0 = 0
 
    # Batasan
 
    batas = [(0, None)]
 
    # Menyelesaikan masalah optimisasi
 
    solusi = minimize(fungsi_tujuan, x0, method='SLSQP', bounds=batas, constraints=[kendala_anggaran])
 
    # Menampilkan hasil
 
    print("Status:", solusi.success and "Optimal" or "Tidak ditemukan solusi")
 
    print("Jumlah unit penyimpanan hidrogen yang akan dibeli:", solusi.x[0])
 
    print("Total kapasitas penyimpanan:", solusi.x[0] * kapasitas_per_unit, "liter")
 
    print("Total biaya:", solusi.x[0] * harga_per_unit, "Rupiah")
 

Latest revision as of 02:31, 12 June 2023

Berikut merupakan code optimasi tangki hidrogen dengan kapasitas 1 liter, pressure 8 bar, 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

# Tebakan awal untuk jari-jari dan tinggi
x0 = [1.0, 10.0]

# Tentukan batasan untuk variabel (jari-jari dan tinggi)
batas = [(0, None), (0, None)]

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

# Gunakan fungsi minimize untuk mengoptimalkan fungsi objektif dengan memenuhi konstrain
hasil = minimize(objektif, x0, method='SLSQP', bounds=batas, constraints=konstrain_dict)

# Cetak hasil yang 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))

Didapatkan hasil sebagai berikut: Jari-jari  : 5.42 cm

Tinggi  : 10.84 cm

Luas Permukaan: 553.58 cm^2