SymPy无法求解已知存在解的四元方程组问题咨询
四阶贝塞尔方程分解的SymPy求解问题
已知方程组的解
- ζ₁ = 0.620702965049498
- ζ₂ = 0.957974461859108
- ω₁ = 3.38936579272158
- ω₂ = 3.02326493881663
所用SymPy代码(版本1.10.1)
z1, z2, w1, w2 = symbols( 'z1, z2, w1, w2', real=True ) ex1 = 2 * (z1*w1 + z2*w2) ex2 = w1**2 + w2**2 + 4*z1*z2*w1*w2 ex3 = 2*w1*w2 * (z1*w2 + z2*w1) ex4 = w1**2 * w2**2 eq1 = Eq( ex1, 10 ) eq2 = Eq( ex2, 45 ) eq3 = Eq( ex3, 105 ) eq4 = Eq( ex4, 105 ) solve( [ eq1, eq2, eq3, eq4 ], [ z1, z2, w1, w2 ] ) [] # 结果为空
解的正确性验证
solution = { z1:0.620702965049498, z2:0.957974461859108, w1:3.38936579272158, w2:3.02326493881663 } for i in [ ex1, ex2, ex3, ex4 ]: i.subs( solution ) 9.99999999999999 # 接近eq1的10 44.9999999999999 # 接近eq2的45 105.000000000000 # 匹配eq3的105 105.000000000000 # 匹配eq4的105
疑问
该解代入方程组后完全符合要求,但SymPy求解器返回空结果。想确认是方程组设置有误,还是SymPy(版本1.10.1)求解器存在已知问题?
注:此问题源于电子滤波器设计中四阶贝塞尔方程齐次解的二阶分解。
内容的提问来源于stack exchange,提问作者jonk
相关产品推荐
相关产品推荐

