这很好用:
syms a b x
jacobian ([a*x - a*b, a*b],[a, b])
但是这个:
syms a b(i) x
i = 1:6
jacobian ([a*x - a*b(i), a*b(i)],[a, b(i)])
返回错误:
Error using sym/jacobian (line 37)
The second argument must be a vector of variables.
在我看来,第二个参数是变量的向量,所以我不理解错误。
是否可以区分ODE载体,例如b(i)
?我该怎么做呢?
答案 0 :(得分:1)
声明syms b(i)
创建b
的符号函数i
。
因此,如果将doubles
的向量传递给b(i)
,则输出将是函数值的向量:
>> syms b(i)
>> b(1:6)
ans =
[ b(1), b(2), b(3), b(4), b(5), b(6)]
>> b(i) = i^2; % Defining the actual function will generate actual values
>> b(1:6)
ans =
[ 1, 4, 9, 16, 25, 36]
所以错误是正确的:你有一个值列表。
要创建变量向量,请使用sym
函数
>> b = sym('b',[1,6])
b =
[ b1, b2, b3, b4, b5, b6]