matlab没有数值解,matlab 关于积分限带参数的二重积分没有数值解的问题

syms x y;

n=8;

for i=1:n

for j=1:n

if i

f2(i,j)=x*y*(1/(2*pi))*(factorial(n))/(factorial(i-1)*factorial(j-i-1)*factorial(n-j))*normcdf(y)^(i-1)*(normcdf(x)-normcdf(y))^(j-i-1)*(1-normcdf(x))^(n-j)*exp(-(y^2+x^2)/2);

end

end

end

f2的部分运算结果如图所示,是一个8*8的矩阵,矩阵里每一个不为0的表达式,我都需要对其进行二重积分,x的积分下限是y,上限是+inf,y的积分下限是-inf,上限是+inf。

比如拿出其中的f2(1,2)=(40139127974558613*x*y*exp(- x^2/2 - y^2/2)*erfc((2^(1/2)*x)/2)^6)/288230376151711744,

试过int(int),可以得出符号积分,E2=int(int((40139127974558613*x*y*exp(- x^2/2 - y^2/2)*erfc((2^(1/2)*x)/2)^6)/288230376151711744, x, y, Inf), y, -Inf, Inf),但是用double转换数值积分时,显示

错误使用 symengine

DOUBLE cannot convert the input expression into a double array.

出错 sym/double (line 643)

Xstr = mupadmex('symobj::double', S.s, 0);

用eval仍然是符号积分

>> eval(E2)

ans =

int(int((5017390996819827*x*y*exp(- x^2/2 - y^2/2)*erfc((2^(1/2)*x)/2)^6)/36028797018963968, x, y, Inf), y, -Inf, Inf)

如果用integral2直接解数值积分,则又报错:

错误使用 integral2 (line 71)

XMIN 必须为浮点标量。

求大神赐教有什么解决办法可以把这个二重积分求出数值解来。

1.jpg

(37.33 KB, 下载次数: 1)

2018-6-10 14:48 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

2fa702e9f448a11e6b1fe5ee2dbfe3de.png

2.jpg

(58.89 KB, 下载次数: 0)

2018-6-10 14:48 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

00d53adca520f1588dddcf4612ba52ee.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值