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
,其中 z
是 eta
的函数。我们可以利用
d2z= diff(dz,z)*dz % the second derivative
我有以下非线性方程
其中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
,其中 z
是 eta
的函数。我们可以利用
d2z= diff(dz,z)*dz % the second derivative