这
from sympy import *
t,r = symbols('t r', real=True, nonnegative=True)
c_x,c_y,a1,a2 = symbols('c_x c_y a1 a2', real=True)
integrate(-r*(a1 - a2)*(c_x*cos(-a1*t + a1 + a2*t) + c_y*sin(-a1*t + a1 + a2*t) + r)/2,(t,0,1))
我获得了分段解决方案
Piecewise((-a1*c_x*r*cos(a2)/2 - a1*c_y*r*sin(a2)/2 - a1*r**2/2 + a2*c_x*r*cos(a2)/2 + a2*c_y*r*sin(a2)/2 + a2*r**2/2, Eq(a1, a2)), (-a1*r**2/2 + a2*r**2/2 - c_x*r*sin(a1)/2 + c_x*r*sin(a2)/2 + c_y*r*cos(a1)/2 - c_y*r*cos(a2)/2, True))
不需要进行分段,因为如果a1
= a2
两个表达式都为0,那么第二个表达式实际上是一个全局非分段解决方案。
所以我的第一个问题是:我能不能给出非分段解决方案? (通过设置一些选项或其他任何东西)
无论上述可能性如何,由于我可以接受a1
不等于a2
(这是一个无关紧要的极限情况),有没有办法告诉同情这样的假设? (再次为了观察非分段解决方案)
先来感谢新手。
P.S。对于同样的问题,Maxima直接给出了非分段解决方案。
答案 0 :(得分:2)
有一个关键字conds,其默认值是"分段"。它也可以设置为"分开"或"无"。但是,因为它是一个明确的积分,你可以尝试关键字manual = True ..
如果将关键字设置为conds='separate'
,则应返回具有收敛条件的不同元组。我尝试过,只提供一个解决方案。我不知道为什么这种行为不符合预期。
conds='none'
关键字不应返回收敛条件,只是解决方案。这就是我想你想要的。
另一个选项,仅在明确积分的上下文中有效,是另一个关键字manual=True
。这模仿手工整合,方便和“忘记”#34;关于检查收敛条件。