我想对一个只有一个变量和几个常量的方程进行积分,这个方程的值我计划在积分后输入。只有一个变量而没有其他符号(包含一些常量值)的积分方程是简单而直接的,但是对于有符号的情况,使用quad
来自scipy.integrate
的积分会产生错误。实际上,quad()
要求所有符号的值都是预定义的。我想要一个解决方案,我不必事先输入符号的值,而是在输入之后替换它们。在
为了让问题更清楚
我想积分一个波动方程
A * sin(kx + wt) , where A is amplitude, w is angular velocity, t is time and x is position (x is only variable )
quad()
需要在积分之前定义A,k和p的值,但我想做的是先积分A*sin(kx+wt),然后通过用户输入来替换结果中的A、k和p的值
. 在
请建议一种方法:)
似乎您没有定义变量“A”,请尝试
或者诸如此类的事情,只需确保在调用之前定义了A。在
如果函数的值小于或等于某个函数的值,我们可以把它的值设为常数。在
我的一个项目的示例代码:
代码需要完成的是,首先将常量A、k、p和s以及变量x定义为
symbols
,然后使用integrate()
来集成表达式。在integrate()
返回集成表达式,现在,f.subs(symbol,value)
用于替换符号的值。在这种方法也有助于得到方程的定积分(从x=a到x=b)。我们要做的是用b替换x的值,并使用
m = f.subs(x,b)
将它存储在某个变量m中,然后使用n = f.subs(x,a)
将x的值用a代替,并将其存储在某个变量n中。现在,用m - n
减去m和n,得到表达式的定积分可以做的是定义一个函数,它接受a、k和p的用户输入,然后使用
quad()
来集成表达式,这样就不需要先集成表达式,然后再使用用户输入来替换符号常量的值相关问题 更多 >
编程相关推荐