首页 > 解决方案 > MATLAB 积分 2 为 2 个数学上等价的表达式返回不同的值

问题描述

我正在使用 MATLAB 积分 2。我有 2 个数学上等价的表达式。但是integral2返回2个不同的值。我无法解释为什么。

pB=0.03p=0.02

方法一。

f1 = @(t1,t2) (pB>=t1+t2).*p.*(max(0,t1-p).*(t1>=t2)+max(0,t2-p).*(t1<t2));
Y1 = integral2(f1,0,1,0,1,'AbsTol', 1e-14,'RelTol',1e-14); 

它返回Y1=0

方法2。

f0 = @(t2,t1) t1-p;
ymin = @(t2) max(t2,p);
ymax = @(t2) min(1,pB-t2);
Y0 = 2*p.*integral2(f0,0,1,ymin,ymax,'RelTol',1e-14);  

它返回Y0=1.940533323582925e-04

我个人更喜欢使用方法 1,因为它不需要太多的数学推导。但似乎方法1会产生错误的结果。

标签: matlabintegral

解决方案


推荐阅读