【发布时间】:2016-02-16 01:07:17
【问题描述】:
我正在创建一个 MATLAB 代码来使用前向差异来估计雅可比矩阵。代码如下:
%Calculate Jacobian Numerically using forward differences:
function J=Jacobianest(x,F) % X is a column vector of variables, f is a column function vector
h=1e-7;
n=length(x);
J=zeros(n);
for i=1:n
xp=x;
xp(i)=x(i)+h;
J(:,i)=1/h*(F(xp)-F(x));
end
当我运行它时出现以下错误:
Jacobianest(x,'multivariable_newton_fun') 下标索引必须是实数正整数或逻辑数。 Jacobianest 中的错误(第 9 行) J(:,i)=1/h*(F(xp)-F(x));我查看了其他问题的答案并尝试调试/dbstop,但我似乎找不到任何明显的东西。
我使用i 作为列索引,它应该只有从1 到n 的整数值(希望所有整数)。
【问题讨论】:
-
错误不在
J的赋值中,而是在F的赋值中。我猜xp和x不是整数。我认为F(xp(i))可以解决您的问题。作为附加建议:don't useias a variable
标签: matlab