Matlab - 函数表达式的衍生物

时间:2017-08-08 14:39:27

标签: matlab symbolic-math

我有以下非线性方程式

enter image description here

其中A1,B1,C1,D1,E1,A2,B2,C2,D2,E2是一些常数。然而,Z是eta的一些函数(z = z(η))。

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

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

是的,有可能(并且可以在不确定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