我正在使用SymPy
包(如果可以的话,我不介意使用任何其他包)来解方程组。方程组包含虚单位I
和一些系数p,q,r,c,w
,作为变量n
和N
的常数。我感兴趣的是用这些常数系数来解这个系统,以便进一步评估。我写的代码是:
import sympy as sym
from sympy import re, im, I, E, symbols
I = complex(0,1)
p = sym.symbols('p', real=True)
q = sym.symbols('q', real=True)
r = sym.symbols('r', real=True)
c = sym.symbols('c', real=True)
w = sym.symbols('w', real=True)
n, N = sym.symbols('n, N')
Eq1 = sym.Eq(p*n-q*(N*r-n)-c + w*n*I, 0)
Eq2 = sym.Eq(q*(N*r-n) + w*N*I, 0)
Sol = sym.solve([Eq1, Eq2], (n, N))
n = sym.simplify(Sol[n])
N = sym.simplify(Sol[N])
n_real = sym.simplify(sym.re(n))
n_imag = sym.simplify(sym.im(n))
N_real = sym.simplify(sym.re(N))
N_imag = sym.simplify(sym.im(N))
p=1
q=1
r=1
c=1
print('Re(n) =', n_real)
print('Im(n) =', n_imag)
其输出为:
Re(n) = c*(q*r*(p*q*r - w**2) + w**2*(p + q*r + q))/(w**2*(p + q*r + q)**2 + (p*q*r - w**2)**2)
Im(n) = c*w*(p*q*r - q*r*(p + q*r + q) - w**2)/(w**2*(p + q*r + q)**2 + (p*q*r - w**2)**2)
这与我通过手工求解得到的解是一致的。
但是,我想知道如何用数值替换系数p,q,r,c
,例如代码中的=1。不幸的是,我总是得到一个符号系数的输出,而不是数字
有人知道我在这个包裹里遗漏了什么吗?是否有其他可以处理此任务/问题的软件包
提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐