MATLAB 中的微分或导数
在数学中,微分或导数是用于确定函数变化率的基本运算之一。因此,导数对于分析各种科学和工程过程或函数至关重要。我们可以使用 MATLAB 等各种数学工具执行导数。
在本教程中,我们将探索如何使用 MATLAB 计算给定数学函数的导数。但在此之前,让我们先了解一下导数。
什么是导数?
导数是一种数学运算,用于计算函数或过程中发生的变化率。从几何学角度来说,导数定义为给定数学函数在某一点的曲线的切线的斜率。
从数学上讲,如果 f 是 x 的函数,即 f(x),则其导数可以表示为 f'(x) 或 df/dx。这里,f'(x) 表示函数 f(x) 在每个 x 值处的变化率。
在 MATLAB 中,可以使用内置函数"diff()"计算给定数学函数的导数。
"diff"函数可以计算给定数值数据或符号表达式的导数。根据不同的使用情况,'diff' 函数可以采用以下给出的各种不同语法 -
f' = diff(f);
f' = diff(f, n);
f'= diff(f, n, dim);
现在,我们将通过示例程序探索 'diff' 函数的每种语法。
(1). 计算函数的一阶导数
语法
可以使用以下 'diff' 函数的语法来计算函数的一阶导数 -
f' = diff(f);
请考虑以下 MATLAB 程序,以了解如何使用"diff"函数计算函数的一阶导数。
示例
% MATLAB 程序计算函数的一阶导数 % 声明一个符号变量 syms x; % 为变量 x 定义一个函数 f = x^2 + 5*x + 3; % 计算函数 f 的导数 dfdx = diff(f); % 显示结果 disp('函数 f 的导数为:'); disp(dfdx);
输出
函数 f 的导数为: 2*x + 5
解释
在此 MATLAB 代码中,我们首先创建一个符号变量"x",然后在此变量中定义一个函数"f"。接下来,我们使用函数"diff"计算函数"f"的导数,并将结果存储在变量"dfdx"中。最后,我们使用"disp"函数显示结果。
(2). 计算函数关于指定变量的导数
语法
以下"diff"函数语法用于计算函数关于指定变量的导数。
f' = diff(f, b);
这将计算函数"f"关于变量"b"的导数。
现在让我们以 MATLAB 中的一个示例程序来了解此语法的实现。
示例
% MATLAB 程序用于计算函数关于指定变量的导数 % 声明符号变量 syms x y; % 为变量 x 和 y 定义一个函数 f = x^2 + 5*x*y + 3*y^2; % 计算函数 f 关于 y 的导数 dfdy = diff(f, y); % 显示结果 disp('函数 f 关于 y 的导数为:'); disp(dfdy);
输出
函数 f 对 y 的导数为: 5*x + 6*y
解释
在此 MATLAB 程序中,首先我们创建两个变量"x"和"y"。然后,我们为这两个变量定义一个函数并将其存储在变量"f"中。之后,我们使用"diff"函数计算函数"f"对变量"y"的导数,并将结果存储在变量"dfdy"中。最后,我们使用"disp"函数显示结果。
(3). 计算函数指定阶的导数
语法
"diff"函数的以下语法用于计算函数指定阶的导数 −
f' = diff(f, n);
此处,"f"为函数,"n"为导数的阶数。
示例
请考虑以下 MATLAB 程序以了解此函数的实现。
% MATLAB 程序用于计算函数指定阶数的导数 % 声明符号变量 syms x; % 为变量 x 定义函数 f = x^3 + 5*x^2 + 3*x; % 计算函数 f (n = 1) 的一阶导数 dfdx1 = diff(f, 1); % 计算函数 f (n = 2) 的二阶导数 dfdx2 = diff(f, 2); % 计算函数 f (n = 3) 的三阶导数 dfdx3 = diff(f, 3); % 显示结果 disp('函数 f 的一阶导数为:'); disp(dfdx1); disp('函数 f 的二阶导数为:'); disp(dfdx2); disp('函数 f 的三阶导数为:'); disp(dfdx3);
输出
函数 f 的一阶导数为: 3*x^2 + 10*x + 3 函数 f 的二阶导数为: 6*x + 10 函数 f 的三阶导数为: 6
解释
此代码的实现和执行与上述代码类似。
(4). 计算向量元素之间的差异
语法
我们可以使用"diff"函数的以下语法来计算向量元素之间的差异 −
D = diff(A);
这里,A 是输入向量。
示例
让我们举一个例子来理解"diff"函数的语法。
% MATLAB 程序计算向量元素之间的差异 % 创建一个向量 A = [1 2 3 4 5 6 7 8 9 10]; % 计算向量元素之间的差异 D = diff(A); % 显示结果 disp('向量 A 元素之间的差异为:'); disp(D);
输出
向量 A 的元素之间的差异为: 1 1 1 1 1 1 1 1 1
解释
此 MATLAB 代码从左侧开始计算输入向量的两个连续元素之间的差异。
(5). 沿指定维度计算多维数组的导数
语法
"diff"函数的以下语法用于计算沿指定维度的多维数组的导数 −
D = diff(A, n, dim);
这里,A 是多维数组,n 是导数的阶,'dim' 是指定的维度。
如果 'dim = 1',则将沿数组的行计算导数或差值。如果 'dim = 2',则将沿数组的列计算差值的导数。
示例
以下 MATLAB 程序演示了 'diff' 函数的此语法的实现。
% 创建多维数组 A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 计算行上的差异 (dim = 1) D_Row = diff(A, 1, 1); % 计算列上的差异 (dim = 2) D_Column = diff(A, 1, 2); % 显示原始数组和差异 disp('原始数组 A 为:'); disp(A); disp('A 沿行的差异为:'); disp(D_Row); disp('A 沿列的差异为:'); disp(D_Column);
输出
原始数组 A 为: 1 2 3 4 5 6 7 8 9 A 沿行方向的差异为: 3 3 3 3 3 3 A 沿列的差异为: 1 1 1 1 1 1
解释
此 MATLAB 代码计算数组 A 的行(第一维)和列(第二维)之间的差异。
结论
这就是 MATLAB 中的导数和微分。我们借助 MATLAB 示例解释了导数或微分的概念。总之,MATLAB 是一种数字工具,它提供内置函数"diff"来计算给定符号表达式或数值数据集的微分或导数或差异。