在MATLAB中考虑以下MWE:
Document document = (Document)session.getObject(id);
List<Document> versions = document.getAllVersions();
Logger.debug("Numero de versiones:"+versions.size() );
for(int i=0;i<versions.size();i++){
Document version = versions.get(i);
if("2.0".equals(version.getVersionLabel())){
version.delete(false);
}
}
这会产生错误
f = @(t) integral(@(x) x.^2,0,t);
integral(f,0,1);
(还有一点)。我该如何解决?这甚至可能吗?我认为问题是变量上限。
答案 0 :(得分:1)
如果您想使用integral
,请将'ArrayValued'
设置为true
,否则t
将成为integral(@(x) x.^2,0,t)
中无效的终点。所以它会是:
f = @(t) integral(@(x) x.^2,0,t);
integral(f,0,1,'ArrayValued',true)
% ans =
% 0.0833
或者,由于您正在进行双重集成,因此请使用专用于此目的的函数,即integral2
。对于您的示例,它将是:
f = @(t,x) x.^2 ;
integral2(f,0,1,0, @(t) t)
% ans =
% 0.0833
如果你有符号数学工具箱,你也可以使用int
作为int(expr,var,a,b)
,但速度会慢一些。对于您的情况,它将是:
syms x t;
f = x.^2;
req = int(int(f,x,0,t),t,0,1); % It gives 1/12
req = double(req); % Convert to double if required