我有以下非线性方程式
其中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
视为常量。
我该如何解决这个问题?
答案 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
,其中z
是eta
的函数。我们可以使用
d2z= diff(dz,z)*dz % the second derivative