MATLAB中的微分或导数
函数y=f(x)的微分告诉我们y的值是如何随x的变化而变化的,它也可以称为函数的斜率。
一个函数f(x)相对于x的导数表示为:
MATLAB允许用户使用diff()方法来计算一个函数的导数。diff()方法的不同语法是:。
- f’ = diff(f)
- f’ = diff(f, a)
- f’ = diff(f, b, 2)
f’ = diff(f)
它返回函数f(x)相对于变量x的导数。
示例 1:
% Create a symbolic expression in variable x
syms x
f = cos(x);
disp("f(x) :");
disp(f);
% Derivative of f(x)
d = diff(f);
disp("Derivative of f(x) :");
disp(d);
输出 :
例子2: 使用subs(y,x,k).
- subs(y,x,k) ,它给出了函数y在x=k处的值。
% Create a symbolic expression in
# variable x
syms x
f = cos(x);
disp("f(x) :");
disp(f);
% Derivative of f(x)
d = diff(f);
val = subs(d,x,pi/2);
disp("Value of f'(x) at x = pi/2:");
disp(val);
输出 :
f’ = diff(f, a)
- 它返回函数f相对于变量a的导数。
% Create a symbolic expression in variable x
syms x t;
f = sin(x*t);
disp("f(x) :");
disp(f);
% Derivative of f(x,t) wrt t
d = diff(f,t);
disp("Derivative of f(x,t) wrt t:");
disp(d);
输出 :
f’ = diff(f, b, 2)
它返回函数f相对于变量b的双导数。
示例 1:
% Create a symbolic expression in
% variable x,n
syms x n;
f = x^n;
disp("f(x,n) :");
disp(f);
% Double Derivative of f(x,n) wrt x
d = diff(f,x,2);
disp("Double Derivative of f(x,n) wrt x:");
disp(d);
输出 :
用同样的方法,你也可以用diff(f,x,k)计算函数f的k阶导数。
示例 2:
使用subs(y,x,k)评估一个函数在指定数值处的导数。
subs(y,x,k),它给出了函数y在x=k处的值。
% Create a symbolic expression in variable
% u and v
syms u v;
f = u^2;
g = sin(v)*(3*u);
disp("f(u,v) :");
disp(f);
disp("g(u,v) :");
disp(g);
% Jacobian matrix of function f(u,v) and
% g(u,v)
J = jacobian([f; g], [u v]);
disp("Jacobian matrix :");
disp(J);
% Determinant of Jacobian matrix
d = det(J);
disp("Determinant of Jacobian matrix:");
disp(d);
输出 :