Как получить символ частной производной в математике

Я хотел бы, чтобы Mathematica возвращала символическую частную производную вместо фактической производной.

StressMatrix = ( {
    {\[Sigma]11, \[Sigma]12, \[Sigma]13},
    {\[Sigma]21, \[Sigma]22, \[Sigma]23},
    {\[Sigma]31, \[Sigma]32, \[Sigma]33}
   } );
varList = ( {
   {\[Rho], \[Theta], z}
  } )
StressMatrix[[2, 3]]
varList[[1, 1]]
D[StressMatrix[[2, 3]], varList[[1, 1]]]

Приведенный выше код возвращает ноль, но я хотел бы, чтобы он возвращал символически частную производную Sigma[[2,3]] по отношению к rho.

Как я могу это сделать?


person PatStarks    schedule 01.06.2017    source источник


Ответы (2)


Вы можете использовать Inactivate,

Inactivate[D[StressMatrix[[2, 3]], varList[[1, 1]]]]

or Hold

Hold[D[StressMatrix[[2, 3]], varList[[1, 1]]]]
person zhk    schedule 02.06.2017
comment
Спасибо за ваш ответ! Я ищу Mathematica, чтобы вернуть только символ частной производной sigma23 по отношению к ро. Результат, который я ищу, будет напечатан латексом, как показано ниже: \frac{\partial{\sigma_{12}}}{\partial\rho} - person PatStarks; 02.06.2017
comment
Inactivate возвращается: Inactive[D][ Inactive[Part][{{[Sigma]11, [Sigma]12, [Sigma]13}, {[Sigma]21, \ [Sigma]22, [Sigma]23}, {[Сигма]31, [Сигма]32, [Сигма]33}}, 2, 3], [Ро]] - person PatStarks; 02.06.2017
comment
Удержание возвращается: Hold[\!( *SubscriptBox[([PartialD]), (varList[[1, 1]])](StressMatrix[[ 2, 3]]))] - person PatStarks; 02.06.2017

Различные методы, в том числе заданные значения (которые необходимо установить после удержания).

Clear[σ23]

StressMatrix = Map[Hold,
   {{σ11, σ12, σ13}, {σ21, σ22, σ23}, {σ31, σ32, σ33}}, {2}];
varList = {{ρ, θ, z}};

σ23 = 4 ρ^2;

expr = StandardForm[
   "∂" <> StringTake[ToString[StressMatrix[[2, 3]]], {6, -2}]/
    "∂" <> ToString[varList[[1, 1]]]];

symbolic = Inactive[D][ReleaseHold@StressMatrix[[2, 3]], varList[[1, 1]]];

result = D[ReleaseHold@StressMatrix[[2, 3]], varList[[1, 1]]];

Row[{expr, " = ", symbolic, " = ", result}]

введите здесь описание изображения

Альтернативно

symbolic2 = StringJoin["D[",
  StringTake[ToString[StressMatrix[[2, 3]]], {6, -2}], ",", 
  ToString@varList[[1, 1]], "]"];

Row[{expr, " = ", symbolic2, " = ", ToExpression[symbolic2]}]

введите здесь описание изображения

И наконец

Clear[σ23]

StressMatrix = 
  Map[HoldForm, {{σ11, σ12, σ13}, {σ21, σ22, σ23}, {σ31, σ32, σ33}}, {2}];
varList = {{ρ, θ, z}};

σ23 = 4 ρ^2;

expr = StandardForm[
   "∂" <> ToString[StressMatrix[[2, 3]]]/
    "∂" <> ToString[varList[[1, 1]]]];

symbolic = Inactive[D][ToString@StressMatrix[[2, 3]], varList[[1, 1]]];

result = D[ReleaseHold@StressMatrix[[2, 3]], varList[[1, 1]]];

Row[{expr, " = ", symbolic, " = ", result}]

введите здесь описание изображения

person Chris Degnen    schedule 02.06.2017