我有功能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{:});
答案 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)