Ваш ответ представляется конкретным из-за простой формы ваших e1
и e2
. Одна возможность состоит в том, чтобы определить e2
как функцию в терминах e1
, не указывая, что такое e1
:
In[8]:= Clear[e1, e2];
e2[x_] := 2^e1[x]
Тогда
In[10]:= D[e2[x], x]
Out[10]= 2^e1[x] Log[2] Derivative[1][e1][x]
который является в целом правильным ответом. Как только вы захотите его вычислить, вы можете предоставить конкретное определение для e1
. Вы также можете сделать это внутри Block
, чтобы не вводить глобальные определения:
In[11]:=
Block[{e1},
e1[x_] := x + y;
D[e2[x], x]]
Out[11]= 2^(x + y) Log[2]
Полагаю, этот подход может масштабироваться до большего числа подвыражений.
НТН