首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sympy函数求值

Sympy函数求值
EN

Stack Overflow用户
提问于 2013-06-13 22:46:51
回答 1查看 3.3K关注 0票数 2

我有一个关于渐变的小问题。我用以下命令加载了这个库:

代码语言:javascript
复制
from sympy import *

在我的程序的某个点上,我想评估一个函数。

代码语言:javascript
复制
x=Symbol('x', real=True)
sqrt(1-x).subs(x, 9).evalf()
>>> 2.82842712474619*I

Sympy回答我复数值,但我希望像在basic python中那样出现错误:

代码语言:javascript
复制
sqrt(-1)
>>> ValueError: math domain error

有人知道如何使用sympy来做这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 22:58:21

我可能是错的,但我不认为你可以让它这样叫喊,因为那是一个科学库,所以它是为支持虚数而设计的,但你可以稍微改变一下:

代码语言:javascript
复制
x=Symbol('x', real=True)
v = sqrt(1-x).subs(x, 9).evalf()

if not v.is_real:
    raise ValueError, "math domain error"

或者您可以创建一个函数:

代码语言:javascript
复制
def assert_real(v):
    if not v.is_real:
        raise ValueError, "math domain error"
    return v

所以你可以这样做:

代码语言:javascript
复制
x = Symbol('x', real=True)
v = assert_real(sqrt(1-x).subs(x, 9).evalf())
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17090073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档