- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的练习是将一些功能与 sympy 集成。第一个积分是(我打算把它加到图片上,因为我这里不能用latex,但你也可以在代码中看到):
和
a 是实常数。
这是我的代码:
%pylab inline
from sympy import *
init_printing()
v, a = symbols('v, a', real=True, nonzero=True)
f = sqrt(2/pi)*(v**2*exp((-v**2)/(2*a**2)))/(a**3)
print(integrate(v*f, (v, 0, oo)))
Piecewise((2*sqrt(2)*a/sqrt(pi), Abs(periodic_argument(polar_lift(a)**(-2), oo)) < pi/2), (Integral(sqrt(2)*v**3*exp(-v**2/(2*a**2))/(sqrt(pi)*a**3), (v, 0, oo)), True))
v, a = symbols('v, a', positive=True)
v, a = symbols('v, a', negative=True)
2*sqrt(2)*a/sqrt(pi)
最佳答案
在当前的开发版本中,输出不那么难看:
Piecewise((2*sqrt(2)*a/sqrt(pi), pi/2 > 2*Abs(arg(a))), (Integral(sqrt(2)*v**3*exp(-v**2/(2*a**2))/(sqrt(pi)*a**3), (v, 0, oo)), True))
pi/2 > 2*Abs(arg(a))
,SymPy 不确定积分是否收敛。不成立。由于您知道它确实在您的上下文中收敛,您可以通过设置
conds="none"
告诉 SymPy 不要理会收敛条件。 :
>>> integrate(v*f, (v, 0, oo), conds="none")
2*sqrt(2)*a/sqrt(pi)
a
上设置“积极”假设足够。您可以通过临时交换
a
来为积分步骤执行此操作。带有积极的符号。
>>> apos = symbols('apos', positive=True)
>>> integrate(v*f.subs(a, apos), (v, 0, oo)).subs(apos, a)
2*sqrt(2)*a/sqrt(pi)
a
在更大的计算环境中保持原样。
a
可以做某事已知是正数,它会产生很好的输出。 a
还可以做另一件事已知为负数,它会产生很好的输出。 a
是实数且非零,SymPy 问:我可以做第一件事吗?不,因为不能保证
a
是积极的。然后它问:我可以做第二件事吗?不,因为不能保证
a
是否定的。所以,两者都没有完成。
The core issue is that there are limitations to using Python logic to do symbolic logic. In Python logic, everything must be evaluated down to a single truth value. In symbolic logic, expressions may have unknown truth values. Another example of this is the law of the excluded middle. Python does not know that "stuff or not stuff" is always True without first evaluating "stuff". Symbolic logic can know this, even if the truth value of "stuff" is unknown. https://github.com/sympy/sympy/wiki/Assumptions-history
关于python-3.x - 我应该如何处理 sympy 以获得积分的 'normal' 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245054/
在下面的程序中,SymPy 似乎不理解被积函数是乘积的导数。有没有办法让它返回u*v ? import sympy x = sympy.symbols('x', real=True) u = symp
我有两个单变量函数,f(x)和 g(x) ,我想替换 g(x) = y重写 f(x)正如一些 f2(y) . 这是一个有效的简单示例: In [240]: x = Symbol('x') In [24
我需要以字符串的形式接受用户输入,将其解析为一个 sympy 表达式,然后求解一个变量。大多数用户允许的函数与 sympy 函数匹配,除了 log2(x) 等同于 sympy 的 log(x, 2)。
当 Function 出现在方程中或者是要求解的目标时,sympy 的 solve 函数似乎无法求解某些方程。 为了解决这个问题,我想创建一个通用函数,它会自动用同名的 Symbol 替换表达式中的
尽管 radsimp函数看起来正是我想要的: from sympy import radsimp, sqrt, symbols v1, v2 = symbols('v1 v2') radsimp(1
在动态系统中,我的基值都是时间的函数,d(t)。我使用 d = Function('d')(t) 创建变量 d,其中 t = S('t') 显然,d 的导数(变化率,如速度等)很常见。但是 diff(
我有各种涉及 UndefinedFunction 实例的 SymPy 表达式: f = Function('f') g = Function('g') e = f(x) / g(x) 如何获取出现在此
我试图使用 sympy 解决斐波那契数列的递推关系。我得到了一个与教科书不同的答案。不知道我哪里弄错了。 我的同情码 from sympy import * f=Function('f') var('
我设置了 Anaconda 2.0.0 (Win 64)。 它有 SymPy 0.7.5。 我将 Spyder(Anaconda 附带的 2.3.0rc)配置为使用符号数学: 工具 > 首选项 > i
我是 sympy 的新手,并且正在学习它。我正在浏览堆栈交换中关于使用 sympy 符号求解具有初始条件的微分方程组的文档和问题。 我有一个简单的 ODE-s 系统 ( dV/dt ) = -(
x,i,n = symbols("x i n") summation(x,(i,1,n)) 我如何制作 x由 i 索引? 最佳答案 没有数字上限,它不会做任何事情,但除此之外,您可以使用类似函数的表达
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 Improve thi
我正在尝试在 Jupyter 笔记本中使用 sympy 以可重复的方式记录和执行一系列数学计算。 如果我定义以下内容: from sympy import * init_printing() x, y
当我打字时 >python > from sympy import * > x=symbols('x') > integrate(1/4/sin(1/3*x),x) 输出是 0.375*log(cos
如果我们知道变量满足某个方程,是否可以简化 SymPy 中的表达式?例如,在 Mathematica 中我们可以这样写: Simplify[a+b-c, a+b==c] 当然,在这种情况下可以解决 a
在 sympy 中,如何声明一个对子函数中的多个变量具有多个限制的 Piecewise 函数? 这是我的背景和尝试: from sympy import Piecewise, Symbol, exp
我想使用 sympy 求解以下简单方程 2^(x-y)=1 其中 x 和 y 是 +ve 整数 我的预期结果是 x=y 当我尝试使用 sympy 求解时 x = Symbol('x') y = Sym
我有一个表达式列表,例如 4.0*x[0] + 5.0*x[10] + 1 = 0我想根据 [4.0, 0, 0, ..., 5.0, ... , 1] 等系数将它们转换为向量。原因是我的一些方程可能
当我打字时 >python > from sympy import * > x=symbols('x') > integrate(1/4/sin(1/3*x),x) 输出是 0.375*log(cos
我想对 SU(2) 的一般矩阵进行计算,即我有一个 a,b=symbols('a,b') m=Matrix([[a,b],[-conjugate(b), conjugate(a)]]) 经过一些计算,
我是一名优秀的程序员,十分优秀!