MATLAB 中的微分或导数

matlabdata analysisprogramming

在数学中,微分导数是用于确定函数变化率的基本运算之一。因此,导数对于分析各种科学和工程过程或函数至关重要。我们可以使用 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"来计算给定符号表达式或数值数据集的微分或导数或差异。


相关文章