python获取股指_在sympy中获取系数/指数对的列表

在处理包含实数指数幂的乘积时,转换为加权幂和后,需要提取系数和指数对。文章讨论了使用sympy库遇到的问题,即非整数指数导致Poly()无法直接工作。文中列举了两种不完全满意的方法来获取这些值,但都存在缺陷,如输出不准确的浮点数和未处理的变量z。作者寻求一种更通用的方法来处理这样的多项式表达式。
摘要由CSDN通过智能技术生成

我有一个和的乘积,它包含实数指数的幂。在成功地将该乘积扩展为加权幂和后(因此它几乎是一个多项式):0.001953125*z**(7/4) + 0.013671875*z**(5/4) + 0.025390625*z**(3/4) +...

我试着得到它的指数。Poly()由于非整数指数,似乎不起作用。在

我是如何创建表达式的:

^{pr2}$

我找到了两种不太令人满意的方法来获得这些值。第一种方法是列表理解变得难看,因为sympy似乎提供了一个不一致的表达式树,这意味着向下到原子的路径可以是Add->Mul->Pow->Rational或{},或者。。。在[(coeff,e, )

for addand in G_F.args

for coeff, zterm in [addand.args or (float(addand),z**0)]

for _, e in [zterm.args or (None, (zterm))]

]

输出:[(0.421875, 1), (0.0820312500000000, 1/2), ... ,(0.00195312500000000, 7/4), (0.0703125000000000, z)]

几乎和循环一样:result = []

for addend in G_F.args:

if isinstance(addend,(sp.Mul)):

coeff, zterm = addend.args

if isinstance(zterm, sp.Pow):

result.append((coeff.evalf(), zterm.args[1].evalf()))

else:

r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值