Matlab积分2达到最大功能数

时间:2018-12-04 23:37:25

标签: matlab

我想计算这个积分

integral2(function,0,a,0,2*pi)

其中

function = @(R,PHI) (e_r(R,PHI).*E_R(R,PHI) + e_phi(R,PHI).*E_PHI(R,PHI)).*R;

我得到警告

Warning: Reached the maximum number of function evaluations (10000). The result fails the global error test. 

我认为该问题位于E_R(R,PHI)E_PHI(R,PHI)函数内部,因为它们是由常量参数以及两个变量RPHI造成的

E_R = @(R,PHI) (Ex*cos(PHI) + Ey*sin(PHI)) .* exp(1i*k*R.*cos(phi_inc-PHI).*sin(theta_inc));
E_PHI = @(R,PHI) (-Ex*sin(PHI) + Ey*cos(PHI)) .* exp(1i*k*R.*cos(phi_inc-PHI).*sin(theta_inc));

这里Ex, Ey是我选择的复数,k被赋予phi_inctheta_inc被赋予弧度角。

我不理解该警告,因为我只是在将常量乘以依赖于我要集成的变量的变量。

要解决这个问题,我使用了integral2(function,0,a,0,2*pi,'method','iterated')甚至是tiled接缝来工作,但是计算起来太费力了。我想念什么吗?

编辑:实际上,当我更改theta_inc时就会出现问题,该theta_inc = 0描述了场对表面的入射角。如果我使用,因为指数的整个指数变为零,就没有问题,但是对于大于predict()的角度,模拟会给我该警告。 可能是由于我用来描述字段发生率的模型中的错误?

0 个答案:

没有答案