Matlab - 函数表达式的导数

Matlab - derivative of a function expression

我有以下非线性方程

其中A1、B1、C1、D1、E1、A2、B2、C2、D2、E2是一些常量。但是,Z 是 eta(z = z(eta)) 的某个函数。

在 Matlab 中,是否有可能得到上述方程关于 eta 的(一阶和二阶)导数的表达式,即 dz/d-eta 和 d^2z/d-eta^2?

我试过了diff(aboveexpression,eta)。但这将 z 视为常量。

我该如何解决这个问题?

是的,有可能(而且不用确定z的解析式也有可能)。您可以使用 inverse function differentiation rule:

syms A1 B1 C1 D1 E1 A2 B2 C2 D2 E2 z
F= A1*atan(B1*asinh(C1*z-D1)+E1)+A2*atan(B2*asinh(C2*z-D2)+E2);
dz= 1/diff(F,z) % the first derivative

现在是二阶导数。我们需要微分结果表达式 dz,其中 zeta 的函数。我们可以利用

d2z= diff(dz,z)*dz  % the second derivative