数模-符号运算(符号函数的求导和差分的计算)

%% 符号函数的求导
clear;clc

% 一元函数的导数
syms x
y = x^4-5*x^2+6
diff(y) %求一阶导数
% 4*x^3 - 10*x
diff(y,2) %求二阶导数
% 12*x^2 - 10

y = cos(x)*tan(x)
dy = diff(y,10)  %求十阶导数
simplify(dy)
y = sin(x)*tan(x)
dy = diff(y,10)  %求十阶导数
simplify(dy)


% 多元函数的导数
syms x1 x2 x3
y1 = x1^5*x2+x2*x3-x1^2*x3
py1 = diff(y1,x1,1) % 对x1求一阶偏导
% 5*x2*x1^4 - 2*x3*x1
py2 = diff(y1,x1,2) % 对x1求二阶偏导
% 20*x2*x1^3 - 2*x3
py3 = diff(y1,x1,x2) % 先对x1求偏导,再对x2求偏导
% 5*x1^4
py4 = diff(y1,x2,x1) % 先对x2求偏导,再对x1求偏导
% 5*x1^4


%% 注意,如果diff函数作用的对象不是符号函数,而是矩阵,那么对应的功能是求差分。
A=[4 5 6 3 2 1];
diff(A)  % 求向量A的一阶差分     1     1    -3    -1    -1
diff(A,2)  % 在一阶差分的基础上再差分一次     0    -4     2     0

A=[4 5 6; 
     7 4 2;
     5 6 2]
A1=diff(A)  % 下一行减去上一行求一阶差分
%      3    -1    -4
%     -2     2     0
A2=diff(A,2) % 下一行减去上一行求二阶差分(在一阶差分的基础上再差分一次)
%     -5     3     4
A3=diff(A,2,1) % 最后面的1表示在行上进行差分(在列的方向上进行差分)
%     -5     3     4
A4=diff(A,1,2)  % 后一列减去前一列求一阶差分, 最后面的2表示在列上进行差分(在行的方向上进行差分)
%      1     1
%     -3    -2
%      1    -4
A4=diff(A,2,2) % 后一列减去前一列求二阶差分
%      0
%      1
%     -5

posted @ 2022-05-07 23:53  司砚章  阅读(342)  评论(0编辑  收藏  举报