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 program to calculate first derivative of a function
% Declare a symbolic variable
syms x;

% Define a function for variable x
f = x^2 + 5*x + 3;

% Calculate the derivative of the function f
dfdx = diff(f);

% Display the result
disp('Derivative of the function f is:');
disp(dfdx);

输出

Derivative of the function f is:
2*x + 5

解释

在此 MATLAB 代码中,我们首先创建一个符号变量“x”,然后在此变量中定义函数“f”。接下来,我们使用函数“diff”计算函数“f”的导数,并将结果存储在变量“dfdx”中。最后,我们使用“disp”函数显示结果。

(2). 计算函数相对于指定变量的导数

语法

以下“diff”函数语法用于计算函数相对于指定变量的导数。

f' = diff(f, b);

这将计算函数“f”相对于变量“b”的导数。

现在让我们在 MATLAB 中举一个示例程序来了解此语法的实现。

示例

% MATLAB program to calculate derivative of function with respect to specified variable
% Declare symbolic variables
syms x y;

% Define a function for variable x and y
f = x^2 + 5*x*y + 3*y^2;

% Calculate the derivative of the function f with respect to y
dfdy = diff(f, y);

% Display the result
disp('Derivative of the function f with respect to y is:');
disp(dfdy);

输出

Derivative of the function f with respect to y is:
5*x + 6*y

解释

在此 MATLAB 程序中,我们首先创建两个变量“x”和“y”。然后,我们为这两个变量定义一个函数,并将其存储在变量“f”中。之后,我们使用“diff”函数计算函数“f”相对于变量“y”的导数,并将结果存储在变量“dfdy”中。最后,我们使用“disp”函数显示结果。

(3). 计算函数的指定阶导数

语法

以下“diff”函数语法用于计算函数的指定阶导数:

f' = diff(f, n);

这里,“f”是函数,“n”是导数的阶数。

示例

请考虑以下 MATLAB 程序,以了解此函数的实现。

% MATLAB program to calculate derivative of specified order of a function 
% Declare a symbolic variable
syms x;

% Define a function for variable x
f = x^3 + 5*x^2 + 3*x;

% Calculate first-order derivative of the function f (n = 1)
dfdx1 = diff(f, 1);

% Calculate second-order derivative of the function f (n = 2)
dfdx2 = diff(f, 2);

% Calculate third-order derivative of the function f (n = 3)
dfdx3 = diff(f, 3);

% Display the results
disp('First order derivative of the function f is:');
disp(dfdx1);
disp('Second order derivative of the function f is:');
disp(dfdx2);
disp('Third order derivative of the function f is:');
disp(dfdx3);

输出

First order derivative of the function f is:
3*x^2 + 10*x + 3
 
Second order derivative of the function f is:
6*x + 10
 
Third order derivative of the function f is:
6

解释

此代码的实现和执行与上述代码类似。

(4). 计算向量元素之间的差值

语法

我们可以使用以下“diff”函数语法计算向量元素之间的差值:

D = diff(A);

这里,A 是输入向量。

示例

让我们举一个例子来了解“diff”函数的此语法。

% MATLAB program to calculate differences between vector elements
% Create a vector
A = [1 2 3 4 5 6 7 8 9 10];

% Calculate the differences between elements of the vector
D = diff(A);

% Display the result
disp('Differences between elements of the vector A is:');
disp(D);

输出

Differences between elements of the vector A is:
     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”函数此语法的实现。

% Create a multidimensional array
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% Calculate the differences along rows (dim = 1)
D_Row = diff(A, 1, 1);

% Calculate the differences along columns (dim = 2)
D_Column = diff(A, 1, 2);

% Display the original array and differences
disp('The original array A is:');
disp(A);
disp('Differences of A along rows is:');
disp(D_Row);
disp('Differences of A along columns is:');
disp(D_Column);

输出

The original array A is:
     1     2     3
     4     5     6
     7     8     9

Differences of A along rows is:
     3     3     3
     3     3     3

Differences of A along columns is:
     1     1
     1     1
     1     1

解释

此 MATLAB 代码计算数组 A 的行(第一维度)和列(第二维度)之间的差值。

结论

以上是关于 MATLAB 中的导数和微分的所有内容。我们借助 MATLAB 示例解释了导数或微分的概念。总之,MATLAB 是一种数字工具,它提供了一个内置函数“diff”来计算给定符号表达式或数值数据集的微分或导数或差值。

更新于:2023年9月6日

383 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告