построить функцию множественного правила в Mathematica - PullRequest
3 голосов
/ 21 июля 2011

Как мне написать код для функции (сложного контура), подобной этой в Mathematica: enter image description here

Ответы [ 2 ]

5 голосов
/ 21 июля 2011

Я не совсем уверен, что такое с, но я предположил, что это число от 0 до 1, означающее высоту входящей прямой линии. Так что, может быть, что-то подобное подойдет вам?

c = 0.7;
t0 = ArcSin[c];
PolarPlot[If[Abs[t] < t0, Abs[Sin[t0]/Sin[t]], 1], {t, -\[Pi], \[Pi]}]
4 голосов
/ 22 июля 2011

Самый прямой способ - использовать графические примитивы (хотя я думаю, что я предпочитаю решение PolarPlot от Феликса)

With[{q = Pi/6}, 
 Graphics[{Circle[{0, 0}, 1, {q, 2 Pi - q}], 
   Arrowheads[{{.05, .8}}], 
   Arrow[{{Cos[q] + 2, Sin[q]}, {Cos[q], Sin[q]}}], 
   Arrow[{{Cos[q], Sin[-q]}, {Cos[q] + 2, Sin[-q]}}],
   FontSize -> Medium, Text["\[ScriptCapitalC]", {2, Sin[q]}, {0, -2}]}, 
  Axes -> True, PlotRange -> {{-4, 6}, {-4, 4}}]]

contour

Полагаю, если вам нужна действительная функциядля контура, то, возможно, что-то вроде

contour[t_, t0_: (5 Pi/6)] := Piecewise[{
   {Exp[I (t + Pi)], -t0 < t < t0},
   {t - t0 + Exp[I (t0 + Pi)], t >= t0},
   {-t - t0 + Exp[-I (t0 + Pi)], t <= -t0}}]

ParametricPlot[Through[{Re, Im}[contour[t]]], {t, -8, 8}, PlotPoints -> 30]

contour v2

И чтобы добавить стрелки к этому графику, я думаю, вам придется добавить их вручную (используя Epilog илиинструменты рисования) или используйте один из пакетов, который изменяет встроенные графики.

...