标题:关于积分
取消只看楼主
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
结帖率:14.29%
已结贴  问题点数:20 回复次数:7 
关于积分
from scipy import integrate
def f(x,y,z):
    return x
def bounds_x():
    return [0,1]
def bounds_y(x):
    return [0,(1-x)/2]
def bounds_z(x,y):
    return [0,(1-x-2*y)]
v,err=integrate.nquad(f,[bounds_z,bounds_y,bounds_x])
print("f函数的三重积分是:{:.4}".format(v))
输出结果是0.02604
实际结果是0.02083
   这是出了什么问题,难道是nquad()函数的误差控制问题?
搜索更多相关主题的帖子: 函数 return def 积分 结果 
2023-04-19 11:31
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
回复 2楼 东海ECS
  晚上回来再倒腾下!其实,我看官方文档也注意了相关的变量顺序,但相差更大了。
i=integrate.nquad(lambda z,y,x:x,[lambda x,y:[0,1-x-2*y],lambda x:[0,(1-x)/2],[0,1]])
如果说函数f(z,y,x)的变量顺便必须对应积分上下限,那相差就更大了
i的三重积分是:(-0.010416666666666668, 1.1042013680736411e-14)
2023-04-19 19:56
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
听说,是用Fortran来写的,那玩意儿远古时代的事了
2023-04-19 19:57
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
回复 2楼 东海ECS
TypeError: nquad() got an unexpected keyword argument 'epsabs'
当我重新设置这epsabs=1.49e-10, epsrel=1.49e-10时,tpl()不报错,而nquad()则报上面的错.
不过即使三重积分将误差控制参数调小级别也相差不大
2023-04-19 20:53
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
再来吐槽下哈,输出的元组第二项说误差上限都e-14级别,跟真值比较一正一负,怎么可能误差这么小!刚用MATLAB求了下,就是1/48准确得很。看来,是nquad()这个函数写得不正确估计
2023-04-20 09:51
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
以下是引用sheeboard在2023-4-20 10:33:15的发言:

def f(x,y,z):
    return x
这句只是求 x dx,为什么要加y,z参数,或是加了不用?

f(x,y,z)=x,还有啥不知道,去看看官方文档
2023-04-20 10:39
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
回复 9楼 sheeboard
i=integrate.nquad(lambda z,y,x:x,[lambda x,y:[0,1-x-2*y],lambda x:[0,(1-x)/2],[0,1]])
你用nquad()跑,不要用tplquad()。跑完再看,后者是准确的,仔细看我发帖内容再说!
2023-04-20 11:45
lxping08
Rank: 2
等 级:论坛游民
帖 子:47
专家分:21
注 册:2023-3-7
得分:0 
回复 9楼 sheeboard
还有你说准确,要把代码贴上来,看看就知道你调用哪个函数算的。
2023-04-20 11:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511967-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052179 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved