matlab - MATLAB 积分 2 为 2 个数学上等价的表达式返回不同的值
问题描述
我正在使用 MATLAB 积分 2。我有 2 个数学上等价的表达式。但是integral2返回2个不同的值。我无法解释为什么。
pB=0.03
和p=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会产生错误的结果。
解决方案
推荐阅读
- java - 无法启动 jasperserver。源服务器没有找到目标资源的当前表示
- vba - 根据单词是否为粗体,更改单词的样式很慢
- types - 如何在 OCaml 中使用模块定义的类型值?
- amazon-web-services - 我应该如何跨 VPC 分配共享服务的暂存版本?
- c# - 在 HTML Div 中打印文件内容
- c - 如何使用 Memmove 和 Memset 删除列表中的项目?
- reactjs - 在更改路由或检测到新构建存在时刷新部署在 firebase 托管上的构建
- python - 如何为熊猫列中的每个逗号分隔值创建一个新行
- apache-spark - LOG4J 日志记录在 Spark 纱线集群模式下不起作用
- java - 多大的 HTTP 响应被认为是巨大的?