我刚开始学习 MATLAB,我正在尝试规范化bump
由
function b = bump(x)
region1 = abs(x) < 1
b(region1) = (exp(-1./(1 - x(region1).^2)))
region2 = abs(x) >= 1
b(region2) = 0
end
为此,我需要除以从 -1 到 1 的定积分。但是,当我输入
syms x;
int(bump(x), -1, 1)
我收到一条很长的错误消息,上面写着
使用 symengine 时出错(第 58 行)
无法从字面上证明 'abs(x) < 1'。要以数学方式测试该语句,请使用 isAlways。sym/subsindex 中的错误(第 1554 行)
X = find(mupadmex('symobj::logical',As,9)) - 1;sym>privformat 中的错误(第 2357 行)
x = subsindex(x)+1;sym/subsref 中的错误(第 1578 行)
[inds{k},refs{k}] = privformat(inds{k});凹凸错误(第 3 行)
b(region1) = (exp(-1./(1 - x(region1).^2)))
我尝试用abs(x)<1
我认为建议的替换isAlways(abs(x)<1)
替换,这消除了错误,尽管它给出了错误的答案(它说积分为零)。
我不明白错误消息是什么意思。