将 POLY 与 SQRT 一起使用时出现 Sympy 错误 [英] Sympy Error when using POLY with SQRT

查看:41
本文介绍了将 POLY 与 SQRT 一起使用时出现 Sympy 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码:

from sympy import *
a = Symbol('a')
p = Poly(sqrt(a), domain=QQ)
p.eval(a,2)

eval 之后我期望的是 2 的平方根.但是我得到的是:

What I expect after eval is the square-root of 2. however what I get is:

ValueError: tuple.index(x): x not in tuple

我在这里误解了什么吗?

Am I misunderstanding something here?

推荐答案

评估 多项式 意味着替换它的生成器之一.问题是在 sqrt(a) 中创建多项式后,您试图替换 a.

Evaluating a polynomial means substituting for one of its generators. The problem is that you are trying to substitute for a, after creating a polynomial in sqrt(a).

本质上,您将多项式视为表达式,它恰好在 sqrt(a) 中具有多项式形式.因此,命令应该是

Essentially you are treating a polynomial as an expression that happens to have polynomial form in sqrt(a). Accordingly, the command should be

p.as_expr().subs(a, 2)

按预期返回 sqrt(2).

which returns sqrt(2) as expected.

这篇关于将 POLY 与 SQRT 一起使用时出现 Sympy 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆