%23%20gallery_category%3A%20Translation%20Examples%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.23.13%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20DSS%E2%86%92PR%20example%0A%0A%20%20%20%20Uses%20%60%60dss_to_pr%60%60%20with%20modes%20%60%60eig%60%60%2C%20%60%60roots%60%60%20(pure-NumPy%20pole%20finding)%20and%0A%20%20%20%20%60%60eai%60%60%20(Ehrlich%E2%80%93Aberth%20iteration%20in%20%60%60w%20%3D%201%2Fz%60%60%20via%20FLAMO).%20Compares%20the%0A%20%20%20%20time-domain%20IR%20from%20%60%60dss_to_impz%60%60%20with%20the%20modal%20reconstruction%20from%20each%20mode.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20import%20pyFDN%0A%0A%20%20%20%20return%20np%2C%20pyFDN%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20pyFDN)%3A%0A%20%20%20%20np.random.seed(11)%0A%0A%20%20%20%20delays%20%3D%20np.array(%5B41%2C%2053%2C%2067%2C%2079%5D%2C%20dtype%3Dint)%0A%20%20%20%20build%20%3D%20pyFDN.fdn_build_gallery(%0A%20%20%20%20%20%20%20%20delays%3Ddelays%2C%0A%20%20%20%20%20%20%20%20io_type%3D%22identity%22%2C%0A%20%20%20%20%20%20%20%20direct_gain%3D1.0%2C%0A%20%20%20%20%20%20%20%20rt%3DNone%2C%0A%20%20%20%20%20%20%20%20rng%3D11%2C%0A%20%20%20%20)%0A%20%20%20%20%23%20Uniform%20feedback%20attenuation%20for%20a%20stable%2C%20decaying%20system%20to%20analyse.%0A%20%20%20%20A%20%3D%200.65%20*%20build.A%0A%20%20%20%20b%2C%20c%2C%20d%2C%20delays%20%3D%20build.B%2C%20build.C%2C%20build.D%2C%20build.delays%0A%20%20%20%20return%20A%2C%20b%2C%20c%2C%20d%2C%20delays%0A%0A%0A%40app.cell%0Adef%20_(A%2C%20b%2C%20c%2C%20d%2C%20delays%2C%20np%2C%20pyFDN)%3A%0A%20%20%20%20ir_len%20%3D%201024%0A%20%20%20%20ir_time%20%3D%20pyFDN.dss_to_impz(ir_len%2C%20delays%2C%20A%2C%20b%2C%20c%2C%20d)%5B%3A%2C%200%2C%200%5D%0A%0A%20%20%20%20ir_modals%20%3D%20%7B%7D%0A%20%20%20%20modes%20%3D%20%5B%22eig%22%2C%20%22roots%22%2C%20%22eai%22%5D%0A%20%20%20%20for%20_mode%20in%20modes%3A%0A%20%20%20%20%20%20%20%20residues%2C%20poles%2C%20direct%2C%20is_pair%2C%20_%20%3D%20pyFDN.dss_to_pr(%0A%20%20%20%20%20%20%20%20%20%20%20%20delays%2C%20A%2C%20b%2C%20c%2C%20d%2C%20mode%3D_mode%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20ir_modals%5B_mode%5D%20%3D%20pyFDN.pr_to_impz(residues%2C%20poles%2C%20direct%2C%20is_pair%2C%20ir_len)%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%2C%200%2C%200%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20err%20%3D%20np.max(np.abs(ir_time%20-%20ir_modals%5B_mode%5D))%0A%20%20%20%20%20%20%20%20print(f%22%7B_mode%7D%3A%20max%20%7CIR_time%20-%20IR_modal%7C%20%3D%20%7Berr%7D%22)%0A%20%20%20%20return%20ir_modals%2C%20ir_time%2C%20modes%0A%0A%0A%40app.cell%0Adef%20_(ir_modals%2C%20ir_time%2C%20modes%2C%20pyFDN)%3A%0A%20%20%20%20pyFDN.plot_impulse_response(%0A%20%20%20%20%20%20%20%20ir_time%2C%0A%20%20%20%20%20%20%20%20*(ir_modals%5B_mode%5D%20for%20_mode%20in%20modes)%2C%0A%20%20%20%20%20%20%20%20labels%3D%5B%22IR%20from%20dss_to_impz%22%5D%20%2B%20%5Bf%22IR%20from%20%7B_mode%7D%22%20for%20_mode%20in%20modes%5D%2C%0A%20%20%20%20%20%20%20%20title%3D%22DSS%20time%20response%20vs%20modal%20reconstruction%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
4029a132071b4bdcef599a3be08bc681