import json import numpy as np from bifurcation_controller import fit_return_map, DelayedTwoModeController rng=np.random.default_rng(2088) n,q=1,1; V=-2.0; kappa=.75; mu=.001; radius=.2 y=np.sign(rng.normal(size=400))*np.exp(rng.uniform(np.log(.03),np.log(.7),400)) D=V*y**(2*n)+kappa*mu/(np.abs(y)**(2*q)+1e-12) y_next=y+D fit=fit_return_map(y,y_next,mu,n,q,radius) ctrl=DelayedTwoModeController(.001, 100, fit) rows=[] for ratio in [.25,.5,1.,2.]: m=fit.mu_max*ratio rows.append({'mu_ratio':ratio,'amplitude':float(fit.predicted_amplitude(m)), 'within_r':bool(fit.predicted_amplitude(m)<=radius+1e-12)}) out={'fit':{'V':fit.V,'kappa':fit.kappa,'M':fit.M,'mu_max':fit.mu_max},'requested_delay':100,'safe_delay':ctrl.delay,'boundary':rows} print(json.dumps(out,indent=2)) open('controller_check.json','w').write(json.dumps(out,indent=2))