MATLAB symbolic definite integration error while taking symbolic function as input arguments
显示 更早的评论
The code is
syms v T;
int(@(x) x*v, 0, T)
int(@(tau) tau*v, 0, T)
I expect the answers to be
but the second definite integration incorrectly contains τ.
采纳的回答
更多回答(1 个)
Walter Roberson
2024-11-4
syms a v T
disp(int(@(tau) tau*v, 0, T))
disp(int(@(tau) tau*a, 0, T))
Notice that in the first case, it integrated with respect to v and kept tau constant, but in the second case it integrated with respect to tau and kept a constant.
What is happening is the anonymous function is being automatically converted to a symbolic expression (not a symfun !), and then the symbolic expression is being integrated with respect to the default variable. The default variable happens to be different between [tau, v] and [tau, a]
It is arguably a bug. On the other hand, no behaviour is documented for int() of anonymous functions.
类别
在 帮助中心 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!