2015-06-02 20 views
0

雅可比這工作得很好:計算矢量常微分方程的MATLAB

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)?我會怎麼做呢?

回答

1

聲明syms b(i)創建i的符號函數b。 因此,如果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]