0

如何在SCILAB中找到从极限-infinity 到 +infinity的积分?(要积分的表达式不能直接积分)

4

1 回答 1

2

将积分变量从 x=(-inf,inf) 改为 z=atan(x)
x=tan(z),
dx/dz = 1/(cos(z))^2

在新变量 z 中,积分限制从 -%pi/2+eps 到 +%pi/2-eps,其中 eps 是一个非常小的正数(否则您将无法除以 cos(z) ) 和
积分 f(x) dx =
= 积分 f(x(z)) d(x(z))
= 积分 f(z) dx/dz dz

例如,
函数 y=Gaussian(x); y=exp(-x^2/2)/sqrt(2*%pi); 终功能;
intg(-10,10,高斯)


使用函数 y=Gmodified(z)可实现相同的积分结果;x=tan(z); y=高斯(x)/(cos(z))^2;终功能;
intg(atan(-10),atan(10),G修改)


有趣的是,即使对于intg(-%pi/2,%pi/2,Gmodified) ,Scilab 也会采用上述积分,
但这只是因为 Scilab 将 1/cos(%pi/2) 计算为 1.633D+16 而不是无穷大。

于 2010-11-29T11:45:25.157 回答