繁体   English   中英

创建函数矩阵以提高可读性

[英]creating a matrix of function to aid readability

我有一个矩阵,我必须在其上求解特征方程,其中每个元素都是变量 x 的几个函数的组合。 我对每个函数都有明确的公式,可以让我使用矩阵,但问题是表达式非常长,可读性是一场噩梦。 我想知道是否有办法在我的矩阵中定义每个函数,例如: f(x) = "expr of f", g(x)='expr of g'等等......并使用它们以便结果是:

M = [[f(x)+2*g(x), e(x)**2, ...], ...]

在哪里我可以做sympy.solvers.solvers.solve(M.det(), x) 谢谢你。

这是一种可能性,可以帮助您入门:

eqs = [x, f(x), f(x) + g(x), sin(x), f(x)/g(x)]

def who(e):
    return ','.join(str(i.func) for i in ordered(e.atoms(Function)))

from collections import defaultdict
reps = defaultdict(list)
for i in eqs:
reps[who(i)].append(i)

r = {}
for k,v in reps.items():
if len(v) == 1:
    r[v[0]] = 'n/a'
else:
    for i,vi in enumerate(v):
    r[vi] = '%s_%i'%(k,i)

[i.xreplace(r) for i in eqs] -> ['n/a', 'f', 'f,g_0', 'sin', 'f,g_1']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM