用Python计算积分

3 投票
1 回答
13139 浏览
提问于 2025-04-17 23:17

我需要在Python中计算一个积分。

我已经导入了sympy这个库。

 g(a,z) = integral_from_z_to_inf of ( t^(a-1) * e^(-1))

在Python中:

 x,a,z = symbols('x a z')
 g = integrate(x**(a-1) * exp(-x), z, oo)

我遇到了一个错误:

 ValueError: Invalid limits given: (z, oo)

我调用了:

b,c,mean,variance  = S('b c mean variance'.split())

ff1 = b*g((1+c), lb / b)  // lb is a constant, b and c are unknown var that I need to solve. and mean and variance are constants. 

我又遇到了一个错误:

TypeError: 'Add' object is not callable

1 个回答

6

我现在用的是Python 2.7,不过你的问题似乎是没有仔细阅读文档。文档里说:

var可以是:

  • 一个符号 – 不定积分

  • 一个元组(符号, a) – 带结果的不定积分

    结果会用一个替换符号给出

  • 一个元组(符号, a, b) – 定积分

你想要做的是最后一种,所以你需要使用一个元组。

你需要的命令是:

import sympy as sym


x, a, z = sym.symbols('x a z')
g = sym.integrate(x**(a-1) * sym.exp(-x), (x, z, sym.oo))

撰写回答