4.4 数值求导与积分
在数学计算中,积分和求导是最常见的运算。
4.4.1 导数与梯度
导数的数值计算是数值计算的基本操作之一。如牛顿法求根、微分方程求解、泰勒级数展开等,都离不开导数。
1.导数
在MATLAB中,diff函数被用来计算数值差分或者符号导数。本小节只介绍diff函数如何用来计算差分,符号导数的计算将在下一章介绍。
diff函数的调用语法如下。
(1)Y = diff(X):求X相邻行元素之间的一阶差分。
(2)Y = diff(X,n):求X相邻行元素之间的n阶差分。
(3)Y = diff(X,n,dim):在dim指定维上求X相邻行元素之间的n阶差分。
【例4-31】 diff函数应用示例。
>> rand('state',0) % 设置随机种子
>> A=randperm(9) % 生成随机数列
A =
8 2 7 4 3 6 9 5 1
>> B = diff(A) % 求数列的差分
B =
-6 5 -3 -1 3 3 -4 -4
>> C = pascal(6)
C =
1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
1 5 15 35 70 126
1 6 21 56 126 252
>> D = diff(C) % 对矩阵C列方向各元素进行差分计算
C =
0 1 2 3 4 5
0 1 3 6 10 15