【问题标题】:How to obtain partial derivative symbol in mathematica如何在mathematica中获得偏导符号
【发布时间】:2017-06-01 23:06:25
【问题描述】:

我希望 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 的偏导数。

我该怎么做?

【问题讨论】:

    标签: wolfram-mathematica mathematica-8


    【解决方案1】:

    你可以使用Inactivate

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

    Hold

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

    【讨论】:

    • 感谢您的回复!我正在寻找 Mathematica 仅返回 sigma23 相对于 rho 的偏导数符号。我正在寻找的结果将在乳胶中输入,如下所示: \frac{\partial{\sigma_{12}}}{\partial\rho}
    • Inactivate 正在返回:Inactive[D][ Inactive[Part][{{[Sigma]11, [Sigma]12, [Sigma]13}, {[Sigma]21, \ [Sigma] 22、σ23}、{σ31、σ32、σ33}}、2、3]、[Rho]]
    • Hold 正在返回:Hold[\!( *SubscriptBox[([PartialD]), (varList[[1, 1]])](StressMatrix[[ 2, 3]]))]
    【解决方案2】:

    各种方法,包括指定的值(需要在之后设置hold)。

    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}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-05
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多