clear;
clc;
syms f1 f2 f3 f4 f5 f6 x1 x2
f1=x1*exp(x2);
f2=x2*cos(x1);
f3=(x1^2)*(x2^2);
f4=(x1^6)*x2;
f5=(x2^5)*x1;
f6=x2*exp(x1);
%% 【1】F是一维标量,X是列向量
% 注: diff(F,X); diff中的x必须为一个变量或者具体数,因此在这里不能用
F=f1;
X=[x1;x2];
d1=jacobian(F,X); % 返回F关于X的雅可比矩阵
d2=hessian(F,X); % 返回F关于X的Hesse矩阵
d3=taylor(F,X,'ExpansionPoint',[1,2],'order',4); % F在X=[1,2]处的Talor展开到3次式,自变量为X
sympref('PolynomialDisplayStyle','ascend'); % 使用该sympref函数来修改符号多项式的输出顺序。按升序重新显示多项式。
%% 【2】F是函数列向量,X是列向量
F=[f1;f2;f3];
X=[x1;x2];
d4=jacobian(F,X); % 向量函数F关于X的雅可比矩阵
%注:d5=hessian(F,X); % 返回标量函数F关于X的Hesse矩阵(2阶),这里不用
d6=taylor(F,X,'ExpansionPoint',[1,2],'order',4);
sympref('PolynomialDisplayStyle','ascend');
%% 【3】F是函数矩阵,X是列向量
F=[f1,f4;f2,f5;f3,f6];
X=[x1;x2];
%注:d7=jacobian(F,X); % 向量函数F关于X的雅可比矩阵
%注:d8=hessian(F,X); % 返回标量函数F关于X的Hesse矩阵
d9=taylor(F,X,'ExpansionPoint',[1,2],'order',3);
sympref('PolynomialDisplayStyle','ascend');
参考资料:矩阵对向量求导