- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想绘制一个分段函数,例如:
import sympy as sym
x = sym.symbols("x")
f = sym.Piecewise((-1, x < -1),
(x, sym.And(-1 <= x, x < 0)),
(x**2, sym.And(0 <= x, x < 1)),
(x**3, x >= 1))
sym.plotting.plot(f, (x, -3, 3))
但是,当运行这段代码时,出现了异常......
AttributeError: 'BooleanFalse' object has no attribute 'evalf'
我觉得问题可能出在这两种情况
sym.And(-1 <= x, x < 0)
和
sym.And(0 <= x, x < 1)
这里假定一个 python 类型 'bool',而函数 'evalf' 不能将 'sympy' 类型 'BooleanFalse' 转换为 python 类型 'bool'。
我想知道如何处理这个问题,是否可以在不使用“matplotlib”模块的情况下绘制分段函数?
最佳答案
您的函数定义过度,sympy
按顺序计算条件并返回条件为 True
的第一个表达式。
我不明白你的定义到底哪里出了问题,但一个更简单的定义对我有用
In [19]: f = sym.Piecewise(
(-1, x < -1),
(x, x < 0),
(x**2, x < 1),
(x**3, True))
....:
In [20]: sym.plotting.plot(f, (x, -3, 3))
Out[20]: <sympy.plotting.plot.Plot at 0x7f90cb9ec6d8>
In [21]:
PS 我明白为什么你的情节失败了,这是因为 plot
试图评估为 x
提供值的条件,但是条件是常量 BooleanFalse
,它是 sym.And()
定义时分段函数的计算结果。
关于python - 属性错误 : 'BooleanFalse' object has no attribute 'evalf' (piecewise plotting using sympy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258692/
我偶然发现了它,因为它的行为与我预期的不一样。 s.evalf(subs={t: 0}) 到底是做什么用的? 它似乎既不是 s.evalf().subs({t: 0}) 的“快捷方式”,也不是 s.e
我们知道 Python 的 eval() 是邪恶的 http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html 整个 Stac
对于使用 Sympy 的 python 大学项目,我需要在部分替换后评估 2 var 符号函数的输出,例如: f = (x-1)/sqrt((x-10)^2+(y-10)^2) / x = 1 =>
我想绘制一个分段函数,例如: import sympy as sym x = sym.symbols("x") f = sym.Piecewise((-1, x = 1)) sym.plotting.
我是一名优秀的程序员,十分优秀!