2

我正在尝试解决(2**(1/2)*y**(1/2)/2)**2from 0to的积分5(也显示在这里)。我一直在使用

func = lambda y: (  2**(1/2) * y**(1/2)/2  )**2 and a == 0 and b == 5
from scipy import integrate
integrate.quad(func, a b)

出于某种原因,我一直得到 1.25 的值,而 wolfram 说它应该是 6.25?我似乎无法指出错误。

ps 抱歉,katrie 的错误,我忘记了 python 使用而不是 && 用于逻辑 AND


已解决: 这是一个愚蠢的 int/float 错误。谢谢大家。

4

3 回答 3

3

好吧,让我用普通的数学符号来写你的函数(我不能用 Python 思考)。我不喜欢**,因为它变得令人困惑:

(2**(1/2)*y**(1/2)/2)**2      =>
(2^(1/2) * (1/2) * y^(1/2))^2 =>
2 * (1/4) * y                 =>
y / 2

所以整合,反分化(我只是在大声思考):

antidifferentiate(y / 2) = y^2 / 4

所以

integral('y / 2', 0, 5) =
5^2 / 4 - 0^2 / 4 =
25 / 4 = 
6.25

正确的。你试过用 替换1/20.5?它可以解释为两个整数的商,四舍五入。

试试这个(正如其他人所建议的那样):

func = lambda y: (2**(0.5) * y**(0.5) / 2.0)**2.0 & a == 0 & b == 5

from scipy import integrate
integrate.quad(func, a b) # What's 'a b'? Maybe 'a, b' would work?

祝你好运!

于 2010-12-15T04:36:21.927 回答
2

问题是 Python(1/2)使用整数除法来查看和评估它,结果为零。

于 2010-12-15T04:56:40.560 回答
0

那么价值应该是多少?此外,您应该在等式中添加更多括号。我不知道(2**(1/2)*y**(1/2)/2)**2解析出来的是什么。

于 2010-12-15T04:14:14.373 回答