使用jacobian()时出错:" MuPAD命令出错:索引超出矩阵尺寸。"

时间:2014-04-19 13:02:39

标签: matlab

我有功能F_test.m

function [ F_t ] = F_test( x )
F_t(1)=x(2)^2+5*x(1);
F_t(2)=x(1)+7*x(2);
end

我想计算这个函数的雅可比矩阵

[dF1/dx(1), dF2/dx(1) ; dF1/dx(2), dF2/dx(2)]

但是当我尝试这样做时,我收到错误

jacobian(F_test(x),x)
Error using mupadmex
Error in MuPAD command: Index exceeds matrix dimensions.

Error in sym/subsref (line 1577)
        B = mupadmex('symobj::subsref',A.s,inds{:});

Error in F_test (line 4)
F_t(1)=x(2)^2+5*x(1);

甚至这个

    syms x
jacobian([x(1)+x(2),x(1)*x(2)],x)
Error using mupadmex
Error in MuPAD command: Index exceeds matrix dimensions.

Error in sym/subsref (line 1577)
        B = mupadmex('symobj::subsref',A.s,inds{:});

2 个答案:

答案 0 :(得分:1)

Thnak,但我找到了如何计算它。

x=sym('x',[1 2])
jacobian(F_test(x),x)

答案 1 :(得分:0)

出现此错误

Error in F_test (line 4)
F_t(1)=x(2)^2+5*x(1);

我认为你的一个问题可能就是这个问题: 你这样做

F_t(1)=x(2)^2+5*x(1);
F_t(2)=x(1)+7*x(2);

F_t从未在您的函数中初始化(未知大小)

确保如何使用jacobian(f,v)

http://www.mathworks.fr/fr/help/symbolic/jacobian.html

(抱歉,不确定,很长一段时间我还没有使用过MatLab)