# Parameter Optimization **Parameter optimization** finds qubit design parameters that maximize a figure of merit (high frequency, strong anharmonicity, long coherence, etc.). ```python from scqubits import Transmon from scipy.optimize import minimize # Target: maximize anharmonicity def objective(params): EJ, EC = params transmon = Transmon(EJ=EJ, EC=EC, ncut=30) alpha = transmon.anharmonicity() return -alpha # Minimize negative alpha # Initial guess x0 = [15.0, 0.3] # Optimize result = minimize(objective, x0, method='Nelder-Mead') EJ_opt, EC_opt = result.x print(f"Optimal EJ: {EJ_opt:.2f}, EC: {EC_opt:.2f}") # Multi-objective: high frequency AND high anharmonicity def multi_objective(params): EJ, EC = params transmon = Transmon(EJ=EJ, EC=EC, ncut=30) f = transmon.f_01() alpha = transmon.anharmonicity() # Trade-off: reward frequency, penalize small anharmonicity return -(f + 0.1 * abs(alpha)) result = minimize(multi_objective, x0, method='Nelder-Mead') ``` ## Design Trade-offs Optimization reveals fundamental trade-offs: - **Frequency vs. anharmonicity**: higher $E_J$ increases both, but trade-off limits exist - **Frequency vs. noise sensitivity**: faster qubits often more sensitive to noise - **Coherence vs. control speed**: strong drives shorten coherence scqubits makes these trade-offs quantitative and enables rational design choices.