pydae-uds 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pydae_uds-1.0.1/.gitignore +81 -0
- pydae_uds-1.0.1/PKG-INFO +30 -0
- pydae_uds-1.0.1/README.md +11 -0
- pydae_uds-1.0.1/pyproject.toml +46 -0
- pydae_uds-1.0.1/src/pydae/uds/__init__.py +27 -0
- pydae_uds-1.0.1/src/pydae/uds/builder.py +22 -0
- pydae_uds-1.0.1/src/pydae/uds/dev/trafo_Dyg11.ipynb +215 -0
- pydae_uds-1.0.1/src/pydae/uds/dev/trafos_sym.ipynb +221 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/__init__.py +0 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess.ipynb +275 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.ipynb +638 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.py +347 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcac.svg +1025 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc.ipynb +574 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc.py +249 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc_gf.hjson +35 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc_gf.py +185 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_dcdc_gf_iso.hjson +31 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_r.hjson +52 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_r.py +209 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/bess_r_ctrl_3ph_4w_pq.hjson +48 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/ess.py +28 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/temp.py +1822 -0
- pydae_uds-1.0.1/src/pydae/uds/ess/xy_1.json +61 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/__init__.py +0 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess.ipynb +275 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess_dcac.svg +1025 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess_dcdc.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess_dcdc.py +249 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess_r.hjson +52 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess_r.py +209 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/bess_r_ctrl_3ph_4w_pq.hjson +48 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/fcs.py +27 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/pem_dcac.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/pem_dcac.ipynb +638 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/pem_dcac.py +347 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/pemfc_dcdc_gf.ipynb +197 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/pemfc_dcdc_gf.py +261 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/pemfc_dcdc_gf_iso.hjson +31 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc.py +411 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc.py +274 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf.hjson +35 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf.ipynb +238 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf.py +411 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdc_gf_iso.hjson +31 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf.py +263 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_ib.hjson +49 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_ib.ipynb +7928 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_iso.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/sofc_dcdcac_gf_iso.ipynb +7871 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/temp.py +1822 -0
- pydae_uds-1.0.1/src/pydae/uds/fcs/xy_1.json +61 -0
- pydae_uds-1.0.1/src/pydae/uds/genapes/__init__.py +6 -0
- pydae_uds-1.0.1/src/pydae/uds/genapes/ac3ph3w_ideal.py +123 -0
- pydae_uds-1.0.1/src/pydae/uds/genapes/ac3ph4w_ideal.py +122 -0
- pydae_uds-1.0.1/src/pydae/uds/genapes/dc_ideal.py +74 -0
- pydae_uds-1.0.1/src/pydae/uds/genapes/genape_inf.py +215 -0
- pydae_uds-1.0.1/src/pydae/uds/genapes/genapes.py +26 -0
- pydae_uds-1.0.1/src/pydae/uds/lines/__init__.py +10 -0
- pydae_uds-1.0.1/src/pydae/uds/lines/lines.py +332 -0
- pydae_uds-1.0.1/src/pydae/uds/loads/__init__.py +6 -0
- pydae_uds-1.0.1/src/pydae/uds/loads/load_ac.py +135 -0
- pydae_uds-1.0.1/src/pydae/uds/loads/load_ac_3w.py +93 -0
- pydae_uds-1.0.1/src/pydae/uds/loads/load_dc.py +40 -0
- pydae_uds-1.0.1/src/pydae/uds/loads/loads.py +30 -0
- pydae_uds-1.0.1/src/pydae/uds/miscellaneous/__init__.py +6 -0
- pydae_uds-1.0.1/src/pydae/uds/miscellaneous/breaker.hjson +43 -0
- pydae_uds-1.0.1/src/pydae/uds/miscellaneous/breaker.py +59 -0
- pydae_uds-1.0.1/src/pydae/uds/miscellaneous/temp.py +1822 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/__init__.py +0 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mppt_dcdc.ipynb +252 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt.hjson +48 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt.py +158 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcac.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcac.py +188 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcdc.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pv_mpt_dcdc.py +194 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/pvs.py +22 -0
- pydae_uds-1.0.1/src/pydae/uds/pvs/temp.py +1951 -0
- pydae_uds-1.0.1/src/pydae/uds/shunts/__init__.py +6 -0
- pydae_uds-1.0.1/src/pydae/uds/shunts/shunts.py +47 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/__init__.py +10 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/ac3ph3w_ideal.py +100 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/ac3ph4w_ideal.hjson +39 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/ac3ph4w_ideal.py +157 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/acdc_3ph_4w_dc.hjson +42 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/acdc_3ph_4w_vdc_q.hjson +42 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/dc_ideal.py +74 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/dc_src_load.hjson +40 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/genape_inf.py +215 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/sources.py +25 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/temp.py +1951 -0
- pydae_uds-1.0.1/src/pydae/uds/sources/vdc_src.py +93 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/Dyg11.json +19 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/Dyg11.py +195 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/Dyn11.json +36 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/Dyn11.py +223 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/Dyn11t.json +38 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/__init__.py +6 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/cigre_eu_lv_ind.py +1823 -0
- pydae_uds-1.0.1/src/pydae/uds/transformers/transformers.py +763 -0
- pydae_uds-1.0.1/src/pydae/uds/uds_builder.py +442 -0
- pydae_uds-1.0.1/src/pydae/uds/utils/__init__.py +9 -0
- pydae_uds-1.0.1/src/pydae/uds/utils/measurements.py +165 -0
- pydae_uds-1.0.1/src/pydae/uds/utils/model2svg.py +302 -0
- pydae_uds-1.0.1/src/pydae/uds/utils/reports.py +132 -0
- pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/__init__.py +0 -0
- pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/ctrl_3ph_4w_droop.py +96 -0
- pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/ctrl_3ph_4w_pq.py +208 -0
- pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/ctrl_3ph_4w_pq_ib.hjson +44 -0
- pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/temp.py +1951 -0
- pydae_uds-1.0.1/src/pydae/uds/vsc_ctrls/vsc_ctrls.py +21 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/__init__.py +0 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac1ph2wpq.py +105 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph3wpq.py +105 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph3wvdcq.py +232 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgf.py +204 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi2.py +274 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi3.py +350 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi3_ib.hjson +44 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpi3_iso.hjson +44 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq.py +236 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq3.hjson +47 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq3.py +360 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wgfpidq3_ib.hjson +43 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wpq.py +131 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac3ph4wvdcq.py +147 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_1_dc_2.py +1951 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph4w_gfpizv.py +510 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w.ipynb +222 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w.py +161 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv.ipynb +7043 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv.py +570 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_back.py +543 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_ib.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_ib.ipynb +7105 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_iso.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_iso.ipynb +7105 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_gfpizv_sharing.hjson +45 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_ib.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_iso.hjson +46 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l.hjson +40 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l.py +332 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_ib.hjson +40 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_ib.ipynb +194 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_iso.hjson +43 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_l_iso.ipynb +191 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_pq.hjson +38 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_pq.py +168 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/ac_3ph_4w_pq_ib.hjson +40 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_2ac_2dc.hjson +41 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_2ac_2dc.py +1951 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_2ac_2dc_gfh.hjson +55 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_l.py +248 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_pq.hjson +39 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_pq.ipynb +333 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_pq.py +135 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_vdc_q.hjson +41 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/acdc_3ph_4w_vdc_q.py +160 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfh.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfh.py +132 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfl.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_gfl.py +99 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_ph.hjson +34 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/dcdc_ph.py +107 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/temp.py +1822 -0
- pydae_uds-1.0.1/src/pydae/uds/vscs/vscs.py +81 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/__init__.py +0 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/calcs.ipynb +64 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gflpfzv.py +226 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gflpfzv_ib.hjson +47 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gflpfzv_ib.ipynb +265 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv.py +407 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_ib.hjson +48 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_ib.ipynb +64 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_iso.hjson +47 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_sharing.hjson +58 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/gfpizv_sharing.ipynb +64 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/temp.py +1822 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/vsg_lpf.hjson +43 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/vsg_lpf.py +130 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/vsg_lpf_ib.hjson +47 -0
- pydae_uds-1.0.1/src/pydae/uds/vsgs/vsgs.py +25 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.egg-info/
|
|
6
|
+
*.egg
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
*.so
|
|
10
|
+
*.dll
|
|
11
|
+
*.dylib
|
|
12
|
+
|
|
13
|
+
# Virtual environments
|
|
14
|
+
.venv/
|
|
15
|
+
venv/
|
|
16
|
+
env/
|
|
17
|
+
|
|
18
|
+
# uv
|
|
19
|
+
uv.lock
|
|
20
|
+
|
|
21
|
+
# IDE
|
|
22
|
+
.vscode/
|
|
23
|
+
.idea/
|
|
24
|
+
*.swp
|
|
25
|
+
*.swo
|
|
26
|
+
|
|
27
|
+
# Build artifacts from pydae
|
|
28
|
+
*_cffi.c
|
|
29
|
+
*_ctypes.c
|
|
30
|
+
*_ctypes.so
|
|
31
|
+
*_ctypes.dll
|
|
32
|
+
*.pyd
|
|
33
|
+
*.obj
|
|
34
|
+
*.exp
|
|
35
|
+
*.lib
|
|
36
|
+
system_data.json
|
|
37
|
+
packages/**/temp_*_data.json
|
|
38
|
+
packages/**/temp_*_xy_0.json
|
|
39
|
+
packages/**/temp_*_damp_report.md
|
|
40
|
+
packages/**/xy_0.json
|
|
41
|
+
packages/**/jacobian_diagnostic.png
|
|
42
|
+
packages/**/Release/
|
|
43
|
+
|
|
44
|
+
# OS
|
|
45
|
+
.DS_Store
|
|
46
|
+
Thumbs.db
|
|
47
|
+
|
|
48
|
+
# Testing
|
|
49
|
+
.pytest_cache/
|
|
50
|
+
.coverage
|
|
51
|
+
htmlcov/
|
|
52
|
+
|
|
53
|
+
# Jupyter
|
|
54
|
+
.ipynb_checkpoints/
|
|
55
|
+
|
|
56
|
+
# Generated artifacts from examples
|
|
57
|
+
examples/*.svg
|
|
58
|
+
examples/*_data.json
|
|
59
|
+
examples/xy_0.json
|
|
60
|
+
examples/*_xy_0.json
|
|
61
|
+
examples/jacobian_diagnostic.png
|
|
62
|
+
|
|
63
|
+
# Root-level test data artifacts
|
|
64
|
+
*xy_0.json
|
|
65
|
+
test_*_data.json
|
|
66
|
+
test_*_bcd_data.json
|
|
67
|
+
compare_hjson.py
|
|
68
|
+
test_ieee39_casadi.py
|
|
69
|
+
condaenv.*.requirements.txt
|
|
70
|
+
|
|
71
|
+
# Sphinx build output
|
|
72
|
+
docs/**/_build/
|
|
73
|
+
docs/**/_autosummary/
|
|
74
|
+
|
|
75
|
+
# Claude Code local state (keep .claude/commands, settings.json, this repo's shared config)
|
|
76
|
+
.claude/settings.local.json
|
|
77
|
+
.claude/.credentials*
|
|
78
|
+
.claude/history*
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
prompts/
|
pydae_uds-1.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pydae-uds
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: Unbalanced distribution systems builder for pydae DAE solver
|
|
5
|
+
Project-URL: Homepage, https://github.com/pydae/pydae
|
|
6
|
+
Project-URL: Repository, https://github.com/pydae/pydae
|
|
7
|
+
Author-email: Juan Manuel Mauricio <jmmauricio6@gmail.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: DAE,distribution,power-systems,three-phase,unbalanced
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Requires-Dist: hjson>=3.0.0
|
|
16
|
+
Requires-Dist: networkx>=3.2.0
|
|
17
|
+
Requires-Dist: pydae>=1.0.0
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# pydae-uds
|
|
21
|
+
|
|
22
|
+
Unbalanced Distribution Systems builder for the [pydae](https://github.com/pydae/pydae) DAE solver.
|
|
23
|
+
|
|
24
|
+
Reads 3-phase unbalanced distribution network descriptions and constructs the symbolic DAE system dictionary for `pydae.core.Builder`.
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install pydae-uds # automatically installs pydae as a dependency
|
|
30
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# pydae-uds
|
|
2
|
+
|
|
3
|
+
Unbalanced Distribution Systems builder for the [pydae](https://github.com/pydae/pydae) DAE solver.
|
|
4
|
+
|
|
5
|
+
Reads 3-phase unbalanced distribution network descriptions and constructs the symbolic DAE system dictionary for `pydae.core.Builder`.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install pydae-uds # automatically installs pydae as a dependency
|
|
11
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# pydae-uds: Unbalanced Distribution Systems Builder
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Previously known as "urisi". Builds DAE system dictionaries for
|
|
5
|
+
# unbalanced (3-phase) distribution network analysis.
|
|
6
|
+
#
|
|
7
|
+
# Users install with: pip install pydae-uds
|
|
8
|
+
# Import with: from pydae.uds import UdsBuilder
|
|
9
|
+
# =============================================================================
|
|
10
|
+
|
|
11
|
+
[project]
|
|
12
|
+
name = "pydae-uds"
|
|
13
|
+
version = "1.0.1"
|
|
14
|
+
description = "Unbalanced distribution systems builder for pydae DAE solver"
|
|
15
|
+
readme = "README.md"
|
|
16
|
+
requires-python = ">=3.10"
|
|
17
|
+
license = {text = "MIT"}
|
|
18
|
+
authors = [
|
|
19
|
+
{name = "Juan Manuel Mauricio", email = "jmmauricio6@gmail.com"}
|
|
20
|
+
]
|
|
21
|
+
keywords = ["power-systems", "DAE", "unbalanced", "distribution", "three-phase"]
|
|
22
|
+
classifiers = [
|
|
23
|
+
"License :: OSI Approved :: MIT License",
|
|
24
|
+
"Development Status :: 4 - Beta",
|
|
25
|
+
"Intended Audience :: Science/Research",
|
|
26
|
+
"Topic :: Scientific/Engineering",
|
|
27
|
+
]
|
|
28
|
+
dependencies = [
|
|
29
|
+
"pydae>=1.0.0",
|
|
30
|
+
"networkx>=3.2.0",
|
|
31
|
+
"hjson>=3.0.0",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
Homepage = "https://github.com/pydae/pydae"
|
|
36
|
+
Repository = "https://github.com/pydae/pydae"
|
|
37
|
+
|
|
38
|
+
[tool.uv.sources]
|
|
39
|
+
pydae = { workspace = true }
|
|
40
|
+
|
|
41
|
+
[build-system]
|
|
42
|
+
requires = ["hatchling"]
|
|
43
|
+
build-backend = "hatchling.build"
|
|
44
|
+
|
|
45
|
+
[tool.hatch.build.targets.wheel]
|
|
46
|
+
packages = ["src/pydae"]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pydae.uds - Unbalanced Distribution Systems Builder
|
|
3
|
+
=====================================================
|
|
4
|
+
|
|
5
|
+
Previously known as "urisi". This package reads 3-phase unbalanced
|
|
6
|
+
distribution network descriptions and constructs the DAE system
|
|
7
|
+
dictionary for pydae.core.Builder.
|
|
8
|
+
|
|
9
|
+
Usage::
|
|
10
|
+
|
|
11
|
+
from pydae.uds import UdsBuilder
|
|
12
|
+
|
|
13
|
+
net = UdsBuilder('distribution_network.json')
|
|
14
|
+
net.construct('my_network')
|
|
15
|
+
|
|
16
|
+
from pydae.core import Builder
|
|
17
|
+
bld = Builder(net.sys_dict, target='ctypes')
|
|
18
|
+
bld.build()
|
|
19
|
+
|
|
20
|
+
Migration from urisi
|
|
21
|
+
---------------------
|
|
22
|
+
Old: from pydae.uds import UdsBuilder
|
|
23
|
+
New: from pydae.uds import UdsBuilder
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
from pydae.uds.uds_builder import UdsBuilder
|
|
27
|
+
__all__ = ["UdsBuilder"]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# pydae/uds/builder.py
|
|
2
|
+
"""
|
|
3
|
+
Unbalanced Distribution Systems Builder.
|
|
4
|
+
|
|
5
|
+
This module will contain the code currently in pydae.urisi.urisi_builder.
|
|
6
|
+
It reads 3-phase unbalanced network descriptions and constructs the
|
|
7
|
+
symbolic DAE system dictionary for pydae.core.Builder.
|
|
8
|
+
|
|
9
|
+
Migration checklist:
|
|
10
|
+
1. Copy urisi_builder.py content here
|
|
11
|
+
2. Rename class urisi -> UdsBuilder
|
|
12
|
+
3. Update internal imports from pydae.uds.* -> pydae.uds.*
|
|
13
|
+
4. Move component models into pydae/uds/components/
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
# Placeholder - replace with actual urisi code
|
|
17
|
+
# class UdsBuilder:
|
|
18
|
+
# def __init__(self, network_file):
|
|
19
|
+
# ...
|
|
20
|
+
# def construct(self, name):
|
|
21
|
+
# ...
|
|
22
|
+
# return self.sys_dict
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "code",
|
|
5
|
+
"execution_count": 1,
|
|
6
|
+
"metadata": {},
|
|
7
|
+
"outputs": [],
|
|
8
|
+
"source": [
|
|
9
|
+
"import sympy as sym"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"cell_type": "code",
|
|
14
|
+
"execution_count": 21,
|
|
15
|
+
"metadata": {},
|
|
16
|
+
"outputs": [],
|
|
17
|
+
"source": [
|
|
18
|
+
"'''\n",
|
|
19
|
+
"I1 = U1_to_I1 * U1\n",
|
|
20
|
+
"U1 = N*UA\n",
|
|
21
|
+
"IA = N.T * I1 + UnRG\n",
|
|
22
|
+
"\n",
|
|
23
|
+
"IA = Yp*UA\n",
|
|
24
|
+
"\n",
|
|
25
|
+
"IA = (N.T * U1_to_I1 * N)*UA + UnRG \n",
|
|
26
|
+
"\n",
|
|
27
|
+
"'''\n",
|
|
28
|
+
"\n",
|
|
29
|
+
"G_ta,B_ta,G_ma,B_ma,Ratio_a = sym.symbols('G_ta,B_ta,G_ma,B_ma,Ratio_a', real = True)\n",
|
|
30
|
+
"G_tb,B_tb,G_mb,B_mb,Ratio_b = sym.symbols('G_tb,B_tb,G_mb,B_mb,Ratio_b', real = True)\n",
|
|
31
|
+
"G_tc,B_tc,G_mc,B_mc,Ratio_c = sym.symbols('G_tc,B_tc,G_mc,B_mc,Ratio_c', real = True)\n",
|
|
32
|
+
"\n",
|
|
33
|
+
"G_ta,B_ta,G_ma,B_ma,Ratio_a = sym.symbols('G_t,B_t,G_m,B_m,Ratio_a', real = True)\n",
|
|
34
|
+
"G_tb,B_tb,G_mb,B_mb,Ratio_b = sym.symbols('G_t,B_t,G_m,B_m,Ratio_b', real = True)\n",
|
|
35
|
+
"G_tc,B_tc,G_mc,B_mc,Ratio_c = sym.symbols('G_t,B_t,G_m,B_m,Ratio_c', real = True)\n",
|
|
36
|
+
"\n",
|
|
37
|
+
"G_t,B_t,G_m,B_m,Ratio = sym.symbols('G_t,B_t,G_m,B_m,Ratio', real = True)\n",
|
|
38
|
+
"Ratio_2abc = sym.symbols('Ratio_2abc', real = True)\n",
|
|
39
|
+
"B_m = 0.0\n",
|
|
40
|
+
"G_m = 0.0\n",
|
|
41
|
+
"B_ta = B_tb = B_tc = B_t\n",
|
|
42
|
+
"G_ta = G_tb = G_tc = G_t\n",
|
|
43
|
+
"\n",
|
|
44
|
+
"B_ma = B_mb = B_mc = B_m\n",
|
|
45
|
+
"G_ma = G_mb = G_mc = G_m\n",
|
|
46
|
+
"\n",
|
|
47
|
+
"U_A,U_B,U_C,U_a,U_b,U_c,U_n = sym.symbols('U_A,U_B,U_C,U_a,U_b,U_c,U_n')\n",
|
|
48
|
+
"\n",
|
|
49
|
+
"\n",
|
|
50
|
+
"R_g = sym.symbols('R_g', real = True)\n",
|
|
51
|
+
"\n",
|
|
52
|
+
"\n",
|
|
53
|
+
"Y_ta = G_ta + sym.I*B_ta\n",
|
|
54
|
+
"Y_ma = G_ma + sym.I*B_ma\n",
|
|
55
|
+
"Y_tb = G_tb + sym.I*B_tb\n",
|
|
56
|
+
"Y_mb = G_mb + sym.I*B_mb \n",
|
|
57
|
+
"Y_tc = G_tc + sym.I*B_tc\n",
|
|
58
|
+
"Y_mc = G_mc + sym.I*B_mc \n",
|
|
59
|
+
"\n",
|
|
60
|
+
"RRatio_a = Ratio\n",
|
|
61
|
+
"RRatio_b = Ratio\n",
|
|
62
|
+
"RRatio_c = Ratio\n",
|
|
63
|
+
"\n",
|
|
64
|
+
"U1_to_I1 = sym.Matrix([\n",
|
|
65
|
+
" [ Y_ta + Y_ma, -RRatio_a*Y_ta, 0, 0, 0, 0],\n",
|
|
66
|
+
" [-RRatio_a*Y_ta, RRatio_a**2*Y_ta, 0, 0, 0, 0],\n",
|
|
67
|
+
" [ 0, 0, Y_tb + Y_mb, -RRatio_b*Y_tb, 0, 0],\n",
|
|
68
|
+
" [ 0, 0,-RRatio_b*Y_tb, RRatio_b**2*Y_tb, 0, 0],\n",
|
|
69
|
+
" [ 0, 0, 0, 0, Y_tc + Y_mc, -RRatio_c*Y_tc],\n",
|
|
70
|
+
" [ 0, 0, 0, 0,-RRatio_c*Y_tc, RRatio_c**2*Y_tc]\n",
|
|
71
|
+
"])\n",
|
|
72
|
+
"\n",
|
|
73
|
+
"N = sym.Matrix([# A B C a b c n\n",
|
|
74
|
+
" [ 1, -1, 0, 0, 0, 0, 0], # 1 \n",
|
|
75
|
+
" [ 0, 0, 0, 1, 0, 0, -1], # 2\n",
|
|
76
|
+
" [ 0, 1, -1, 0, 0, 0, 0], # 3\n",
|
|
77
|
+
" [ 0, 0, 0, 0, 1, 0, -1], # 4\n",
|
|
78
|
+
" [-1, 0, 1, 0, 0, 0, 0], # 5\n",
|
|
79
|
+
" [ 0, 0, 0, 0, 0, 1, -1] # 6\n",
|
|
80
|
+
"])\n",
|
|
81
|
+
"\n",
|
|
82
|
+
"Y_prim = N.T @ U1_to_I1 @ N\n",
|
|
83
|
+
"Y_prim[-1,-1] += 1/R_g\n",
|
|
84
|
+
"Y_prim = sym.simplify(Y_prim)\n",
|
|
85
|
+
"\n",
|
|
86
|
+
"U_ABCabcn = sym.Matrix([U_A,U_B,U_C,U_a,U_b,U_c,U_n]) \n",
|
|
87
|
+
"\n",
|
|
88
|
+
"\n",
|
|
89
|
+
"I_ABCabcn = Y_prim @ U_ABCabcn\n",
|
|
90
|
+
"I_n = I_ABCabcn[-1]\n",
|
|
91
|
+
"\n",
|
|
92
|
+
"I = sym.I\n",
|
|
93
|
+
"U_n_abc = sym.solve( I_n, U_n)[0]\n",
|
|
94
|
+
"\n",
|
|
95
|
+
"I_ABCabc = sym.Matrix(I_ABCabcn.subs(U_n,U_n_abc)[:-1])\n",
|
|
96
|
+
"U_ABCabc = sym.Matrix([U_A,U_B,U_C,U_a,U_b,U_c]) \n",
|
|
97
|
+
"\n",
|
|
98
|
+
"Y_prim = I_ABCabc.jacobian(U_ABCabc)\n",
|
|
99
|
+
"\n",
|
|
100
|
+
"G = sym.simplify(sym.re((Y_prim)))\n",
|
|
101
|
+
"B = sym.simplify(sym.im((Y_prim)))"
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"cell_type": "code",
|
|
106
|
+
"execution_count": 22,
|
|
107
|
+
"metadata": {},
|
|
108
|
+
"outputs": [
|
|
109
|
+
{
|
|
110
|
+
"name": "stdout",
|
|
111
|
+
"output_type": "stream",
|
|
112
|
+
"text": [
|
|
113
|
+
"1700\n",
|
|
114
|
+
"False\n",
|
|
115
|
+
"Matrix([[2*G_t, -G_t, -G_t, -G_t*Ratio, 0, G_t*Ratio], [-G_t, 2*G_t, -G_t, G_t*Ratio, -G_t*Ratio, 0], [-G_t, -G_t, 2*G_t, 0, G_t*Ratio, -G_t*Ratio], [-G_t*Ratio, G_t*Ratio, 0, Ratio**2*(6*B_t**2*G_t*R_g**2*Ratio**4 + B_t**2*R_g*Ratio**2 + 6*G_t**3*R_g**2*Ratio**4 + 5*G_t**2*R_g*Ratio**2 + G_t)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [0, -G_t*Ratio, G_t*Ratio, R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), Ratio**2*(6*B_t**2*G_t*R_g**2*Ratio**4 + B_t**2*R_g*Ratio**2 + 6*G_t**3*R_g**2*Ratio**4 + 5*G_t**2*R_g*Ratio**2 + G_t)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [G_t*Ratio, 0, -G_t*Ratio, R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), R_g*Ratio**4*(-6*B_t**2*G_t*R_g*Ratio**2 + (B_t**2 - G_t**2)*(3*G_t*R_g*Ratio**2 + 1))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), Ratio**2*(6*B_t**2*G_t*R_g**2*Ratio**4 + B_t**2*R_g*Ratio**2 + 6*G_t**3*R_g**2*Ratio**4 + 5*G_t**2*R_g*Ratio**2 + G_t)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1)]])\n"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"source": [
|
|
120
|
+
"print(len(str(G)))\n",
|
|
121
|
+
"print('I' in str(G))\n",
|
|
122
|
+
"print(G)"
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"cell_type": "code",
|
|
127
|
+
"execution_count": 23,
|
|
128
|
+
"metadata": {},
|
|
129
|
+
"outputs": [
|
|
130
|
+
{
|
|
131
|
+
"name": "stdout",
|
|
132
|
+
"output_type": "stream",
|
|
133
|
+
"text": [
|
|
134
|
+
"1613\n",
|
|
135
|
+
"False\n",
|
|
136
|
+
"Matrix([[2*B_t, -B_t, -B_t, -B_t*Ratio, 0, B_t*Ratio], [-B_t, 2*B_t, -B_t, B_t*Ratio, -B_t*Ratio, 0], [-B_t, -B_t, 2*B_t, 0, B_t*Ratio, -B_t*Ratio], [-B_t*Ratio, B_t*Ratio, 0, B_t*Ratio**2*(6*B_t**2*R_g**2*Ratio**4 + 6*G_t**2*R_g**2*Ratio**4 + 4*G_t*R_g*Ratio**2 + 1)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [0, -B_t*Ratio, B_t*Ratio, B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*Ratio**2*(6*B_t**2*R_g**2*Ratio**4 + 6*G_t**2*R_g**2*Ratio**4 + 4*G_t*R_g*Ratio**2 + 1)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2)], [B_t*Ratio, 0, -B_t*Ratio, B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*R_g*Ratio**4*(-2*G_t*(3*G_t*R_g*Ratio**2 + 1) - 3*R_g*Ratio**2*(B_t**2 - G_t**2))/(9*B_t**2*R_g**2*Ratio**4 + (3*G_t*R_g*Ratio**2 + 1)**2), B_t*Ratio**2*(6*B_t**2*R_g**2*Ratio**4 + 6*G_t**2*R_g**2*Ratio**4 + 4*G_t*R_g*Ratio**2 + 1)/(9*B_t**2*R_g**2*Ratio**4 + 9*G_t**2*R_g**2*Ratio**4 + 6*G_t*R_g*Ratio**2 + 1)]])\n"
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"source": [
|
|
141
|
+
"print(len(str(B)))\n",
|
|
142
|
+
"print('I' in str(B))\n",
|
|
143
|
+
"print(B)"
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"cell_type": "code",
|
|
148
|
+
"execution_count": 20,
|
|
149
|
+
"metadata": {},
|
|
150
|
+
"outputs": [
|
|
151
|
+
{
|
|
152
|
+
"data": {
|
|
153
|
+
"text/latex": [
|
|
154
|
+
"$\\displaystyle \\frac{- 2 B_{t}^{2} G_{t} R_{g}^{2} \\left(Ratio_{a} - Ratio_{c}\\right)^{2} \\left(Ratio_{a}^{2} + Ratio_{b}^{2} + Ratio_{c}^{2}\\right) + 2 G_{t} \\left(B_{t}^{2} R_{g}^{2} \\left(Ratio_{a}^{2} + Ratio_{b}^{2} + Ratio_{c}^{2}\\right)^{2} + \\left(G_{t} R_{g} Ratio_{a}^{2} + G_{t} R_{g} Ratio_{b}^{2} + G_{t} R_{g} Ratio_{c}^{2} + 1\\right)^{2}\\right) + R_{g} \\left(Ratio_{a} - Ratio_{c}\\right) \\left(B_{t}^{2} Ratio_{a} - B_{t}^{2} Ratio_{c} - G_{t}^{2} Ratio_{a} + G_{t}^{2} Ratio_{c}\\right) \\left(G_{t} R_{g} Ratio_{a}^{2} + G_{t} R_{g} Ratio_{b}^{2} + G_{t} R_{g} Ratio_{c}^{2} + 1\\right)}{B_{t}^{2} R_{g}^{2} \\left(Ratio_{a}^{2} + Ratio_{b}^{2} + Ratio_{c}^{2}\\right)^{2} + \\left(G_{t} R_{g} Ratio_{a}^{2} + G_{t} R_{g} Ratio_{b}^{2} + G_{t} R_{g} Ratio_{c}^{2} + 1\\right)^{2}}$"
|
|
155
|
+
],
|
|
156
|
+
"text/plain": [
|
|
157
|
+
"(-2*B_t**2*G_t*R_g**2*(Ratio_a - Ratio_c)**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2) + R_g*(Ratio_a - Ratio_c)*(B_t**2*Ratio_a - B_t**2*Ratio_c - G_t**2*Ratio_a + G_t**2*Ratio_c)*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"execution_count": 20,
|
|
161
|
+
"metadata": {},
|
|
162
|
+
"output_type": "execute_result"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"source": [
|
|
166
|
+
"G[0,0]"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"cell_type": "code",
|
|
171
|
+
"execution_count": 25,
|
|
172
|
+
"metadata": {},
|
|
173
|
+
"outputs": [
|
|
174
|
+
{
|
|
175
|
+
"name": "stdout",
|
|
176
|
+
"output_type": "stream",
|
|
177
|
+
"text": [
|
|
178
|
+
"Matrix([[(2*B_m*B_t**2*R_g**2*Ratio_a**4 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_b**4 + 4*B_m*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_c**4 + 2*B_m*G_t**2*R_g**2*Ratio_a**4 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_b**4 + 4*B_m*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_c**4 + 4*B_m*G_t*R_g*Ratio_a**2 + 4*B_m*G_t*R_g*Ratio_b**2 + 4*B_m*G_t*R_g*Ratio_c**2 + 2*B_m + B_t**3*R_g**2*Ratio_a**4 + 2*B_t**3*R_g**2*Ratio_a**3*Ratio_c + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**3*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_a*Ratio_b**2*Ratio_c + 2*B_t**3*R_g**2*Ratio_a*Ratio_c**3 + 2*B_t**3*R_g**2*Ratio_b**4 + 3*B_t**3*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**3*R_g**2*Ratio_c**4 + B_t*G_t**2*R_g**2*Ratio_a**4 + 2*B_t*G_t**2*R_g**2*Ratio_a**3*Ratio_c + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_b**2*Ratio_c + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_c**3 + 2*B_t*G_t**2*R_g**2*Ratio_b**4 + 3*B_t*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t*G_t**2*R_g**2*Ratio_c**4 + 2*B_t*G_t*R_g*Ratio_a**2 + 4*B_t*G_t*R_g*Ratio_a*Ratio_c + 4*B_t*G_t*R_g*Ratio_b**2 + 2*B_t*G_t*R_g*Ratio_c**2 + 2*B_t)/(B_t**2*R_g**2*Ratio_a**4 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_b**4 + 2*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_c**4 + G_t**2*R_g**2*Ratio_a**4 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_b**4 + 2*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_c**4 + 2*G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2 + 1), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a*(-B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_b**2*(B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [(-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (2*B_m*B_t**2*R_g**2*Ratio_a**4 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_b**4 + 4*B_m*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_c**4 + 2*B_m*G_t**2*R_g**2*Ratio_a**4 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_b**4 + 4*B_m*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_c**4 + 4*B_m*G_t*R_g*Ratio_a**2 + 4*B_m*G_t*R_g*Ratio_b**2 + 4*B_m*G_t*R_g*Ratio_c**2 + 2*B_m + B_t**3*R_g**2*Ratio_a**4 + 2*B_t**3*R_g**2*Ratio_a**3*Ratio_b + 2*B_t**3*R_g**2*Ratio_a**2*Ratio_b**2 + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_a*Ratio_b**3 + 2*B_t**3*R_g**2*Ratio_a*Ratio_b*Ratio_c**2 + B_t**3*R_g**2*Ratio_b**4 + 3*B_t**3*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_c**4 + B_t*G_t**2*R_g**2*Ratio_a**4 + 2*B_t*G_t**2*R_g**2*Ratio_a**3*Ratio_b + 2*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_b**3 + 2*B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*Ratio_c**2 + B_t*G_t**2*R_g**2*Ratio_b**4 + 3*B_t*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_c**4 + 2*B_t*G_t*R_g*Ratio_a**2 + 4*B_t*G_t*R_g*Ratio_a*Ratio_b + 2*B_t*G_t*R_g*Ratio_b**2 + 4*B_t*G_t*R_g*Ratio_c**2 + 2*B_t)/(B_t**2*R_g**2*Ratio_a**4 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_b**4 + 2*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_c**4 + G_t**2*R_g**2*Ratio_a**4 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_b**4 + 2*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_c**4 + 2*G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2 + 1), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a*(B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_c**2*(-B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [(-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (-B_m*B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_m*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_m*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t**3*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**3*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**3*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_m*G_t*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_m*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - B_t*G_m*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_m*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t*G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*B_t*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*B_t*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*B_t*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + B_t*G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), (2*B_m*B_t**2*R_g**2*Ratio_a**4 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_b**4 + 4*B_m*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*B_t**2*R_g**2*Ratio_c**4 + 2*B_m*G_t**2*R_g**2*Ratio_a**4 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 4*B_m*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_b**4 + 4*B_m*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_m*G_t**2*R_g**2*Ratio_c**4 + 4*B_m*G_t*R_g*Ratio_a**2 + 4*B_m*G_t*R_g*Ratio_b**2 + 4*B_m*G_t*R_g*Ratio_c**2 + 2*B_m + 2*B_t**3*R_g**2*Ratio_a**4 + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**3*R_g**2*Ratio_a**2*Ratio_b*Ratio_c + 3*B_t**3*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**3*R_g**2*Ratio_b**4 + 2*B_t**3*R_g**2*Ratio_b**3*Ratio_c + 2*B_t**3*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t**3*R_g**2*Ratio_b*Ratio_c**3 + B_t**3*R_g**2*Ratio_c**4 + 2*B_t*G_t**2*R_g**2*Ratio_a**4 + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_b*Ratio_c + 3*B_t*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t*G_t**2*R_g**2*Ratio_b**4 + 2*B_t*G_t**2*R_g**2*Ratio_b**3*Ratio_c + 2*B_t*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + 2*B_t*G_t**2*R_g**2*Ratio_b*Ratio_c**3 + B_t*G_t**2*R_g**2*Ratio_c**4 + 4*B_t*G_t*R_g*Ratio_a**2 + 2*B_t*G_t*R_g*Ratio_b**2 + 4*B_t*G_t*R_g*Ratio_b*Ratio_c + 2*B_t*G_t*R_g*Ratio_c**2 + 2*B_t)/(B_t**2*R_g**2*Ratio_a**4 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*B_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_b**4 + 2*B_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + B_t**2*R_g**2*Ratio_c**4 + G_t**2*R_g**2*Ratio_a**4 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_b**2 + 2*G_t**2*R_g**2*Ratio_a**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_b**4 + 2*G_t**2*R_g**2*Ratio_b**2*Ratio_c**2 + G_t**2*R_g**2*Ratio_c**4 + 2*G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2 + 1), B_t*R_g*Ratio_a**2*(-B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [B_t*Ratio_a*(-B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a*(B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*(-B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_a**2*(B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_b**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [B_t*R_g*Ratio_b**2*(B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - 2*G_t*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_a*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_b**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_b**2*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_c**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + 2*G_t*R_g*Ratio_c**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_b**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)], [B_t*Ratio_c*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_a*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_c**2*(-B_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*Ratio_a*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g*Ratio_b*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*Ratio_a*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + 2*G_t*Ratio_b*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c*(-B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - B_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g**2*Ratio_b*Ratio_c*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_a**2 - 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_b**2 - 2*G_t*R_g*Ratio_b*Ratio_c*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) - G_t*R_g*Ratio_c**2 + G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_a**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*R_g*Ratio_b**2*Ratio_c**2*(-B_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + G_t**2*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - 2*G_t*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1))/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2), B_t*Ratio_c**2*(B_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + B_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_a**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) - G_t**2*R_g**2*Ratio_b**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 2*G_t*R_g*Ratio_a**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_a**2 + 2*G_t*R_g*Ratio_b**2*(G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1) + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 - G_t*R_g*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2) + 1)/(B_t**2*R_g**2*(Ratio_a**2 + Ratio_b**2 + Ratio_c**2)**2 + (G_t*R_g*Ratio_a**2 + G_t*R_g*Ratio_b**2 + G_t*R_g*Ratio_c**2 + 1)**2)]])\n"
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"source": [
|
|
183
|
+
"print(B)"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"cell_type": "code",
|
|
188
|
+
"execution_count": null,
|
|
189
|
+
"metadata": {},
|
|
190
|
+
"outputs": [],
|
|
191
|
+
"source": []
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
"metadata": {
|
|
195
|
+
"kernelspec": {
|
|
196
|
+
"display_name": "base",
|
|
197
|
+
"language": "python",
|
|
198
|
+
"name": "python3"
|
|
199
|
+
},
|
|
200
|
+
"language_info": {
|
|
201
|
+
"codemirror_mode": {
|
|
202
|
+
"name": "ipython",
|
|
203
|
+
"version": 3
|
|
204
|
+
},
|
|
205
|
+
"file_extension": ".py",
|
|
206
|
+
"mimetype": "text/x-python",
|
|
207
|
+
"name": "python",
|
|
208
|
+
"nbconvert_exporter": "python",
|
|
209
|
+
"pygments_lexer": "ipython3",
|
|
210
|
+
"version": "3.11.7"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"nbformat": 4,
|
|
214
|
+
"nbformat_minor": 2
|
|
215
|
+
}
|