matlab符号函数的求导与差分的计算

在上一章节我们介绍了matlab对符号变量的定义与计算,在这一章我们介绍一下如何对符号函数进行求导与对向量或者矩阵进行差分

一、符号函数的求导

1.一元函数的导数

dy=diff(y,m)
diff函数可以对符号变量进行求导,输入的一个参数为代求函数,第二个变量为求导的阶数。
matlab求导后的式子可能非常复杂,可用symplify函数进行化简求导后的式子

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

2.多元函数的导数

py = diff(y,x_m,n)
diff函数可以对多元函数进行求偏导,输入的一个参数为待求函数,第二个参数为求偏导的变量,第三个参数为求导的阶数

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函数作用在矩阵或者向量上就是对其进行差分运算

1.对向量进行差分

diff(A,m)
输入的第一个参数为待差分向量,第二个参数为差分的阶数

A=[4 5 6 3 2 1];
diff(A)  % 求向量A的一阶差分     1     1    -3    -1    -1
diff(A,2)  % 在一阶差分的基础上再差分一次     0    -4     2     0

2.对矩阵进行差分

A1=diff(A,m,p)
第二个参数是差分的阶数,第三个参数是差分的方法,1的话是按行进行差分,2的话是按列进行差分。不输入就是默认按行进行差分

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 @ 2024-08-15 17:21  卢宇博  阅读(51)  评论(0编辑  收藏  举报