python中包含一些参数的集成

2024-04-26 12:10:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对一个只有一个变量和几个常量的方程进行积分,这个方程的值我计划在积分后输入。只有一个变量而没有其他符号(包含一些常量值)的积分方程是简单而直接的,但是对于有符号的情况,使用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的值 . 在

请建议一种方法:)


Tags: is错误符号情况scipysin解决方案where
2条回答

似乎您没有定义变量“A”,请尝试

A=15

或者诸如此类的事情,只需确保在调用之前定义了A。在

如果函数的值小于或等于某个函数的值,我们可以把它的值设为常数。在

我的一个项目的示例代码:

from sympy import *
A = symbol('A')
k = symbol('k')
p = symbol('p')
x = symbol('x')
s = symbol('s')

f = integrate(exp(-1*s*x)*A*sin(k*x+p),(x,0,oo))

f = f.subs(A,50)

print str(f)

(x,0,oo) means integrate wrt x from zero (0)toinfinty(oo)

代码需要完成的是,首先将常量A、k、p和s以及变量x定义为symbols,然后使用integrate()来集成表达式。在

integrate()返回集成表达式,现在,f.subs(symbol,value)用于替换符号的值。在

in f.subs(symbol,value) , f is the variable containing the integrated expression, symbol is the symbol defined earlier(like A,k,p) and value is the constant value for that symbol.

这种方法也有助于得到方程的定积分(从x=ax=b)。我们要做的是用b替换x的值,并使用m = f.subs(x,b)将它存储在某个变量m中,然后使用n = f.subs(x,a)将x的值用a代替,并将其存储在某个变量n中。现在,用m - n减去m和n,得到表达式的定积分

There is one more possibe solution to the question.

可以做的是定义一个函数,它接受a、k和p的用户输入,然后使用quad()来集成表达式,这样就不需要先集成表达式,然后再使用用户输入来替换符号常量的值

相关问题 更多 >