【发布时间】:2016-09-10 16:31:14
【问题描述】:
我从一个变量的符号函数开始,计算 1 到 N 阶的符号导数,然后将这些符号函数转换为函数句柄,并将函数句柄存储在一个元胞数组中。然后,我使用循环在相同的输入值处评估每个函数句柄。我遇到的问题是,其中一个导数可能是常数(当然,高阶导数为零)。当我试图给每个函数处理一个输入时,我遇到了“输入参数太多”错误。我希望能够提前检查函数句柄是否为常量,这样我就可以避免错误,但我不知道该怎么做。
如果一个小的工作示例有帮助,我提供以下内容
symVar = sym('symVar');
startFunc = symVar^4 + symVar^3 + symVar^2;
derivesCell = cell(5);
for J=1:5
derivesCell(J) = {matlabFunction(diff(startFunc,symVar,J))};
end
cumSum = 0;
evalPoint = 2;
for J=1:5
cumSum = cumSum + derivesCell{J}(evalPoint);
end
执行产生“使用 symengine 时出错>@()2.4e1 输入参数过多。”
【问题讨论】:
标签: matlab