Это не ответ как таковой, просто комментарий об использовании модуля с графиком.
Если я буду действовать следующим образом
f[t_] := {(a + b) Cos[t] - h Cos[(a + b)/b t], (a + b) Sin[t] -
h Sin[(a + b)/b t]}
Следующее НЕ будет работать
Метод 1:
Module[{a = 2, b = 1, h = 1},
ParametricPlot[f[t], {t, 0, 2 \[Pi]}, PlotRange -> All]]
Метод 2:
Module[{a = 2, b = 1, h = 1},
ParametricPlot[Evaluate[f[t]], {t, 0, 2 \[Pi]}, PlotRange -> All]]
Работает следующее (Метод 3)
ParametricPlot[
Module[{a = 2, b = 1, h = 1}, Evaluate[f[t]]], {t, 0, 2 \[Pi]},
PlotRange -> All]
, как и метод, описанный выше (метод4)
Module[{a = 2, b = 1, h = 1},
ParametricPlot[{(a + b) Cos[t] - h Cos[(a + b)/b t], (a + b) Sin[t] - h Sin[(a + b)/b t]},
{t, 0, 2 \[Pi]},
PlotRange -> All]]
Кто-нибудь может объяснить, почему метод 4 работает, а метод 2 - нет?(То же самое относится и к «С», который я нахожу более интуитивно понятным для модуля).
Для чего бы это ни стоило, я бы сгенерировал оригинальный параметрический график, используя правила замены следующим образом:
ParametricPlot[
Evaluate[{(a + b) Cos[t] - h Cos[(a + b)/b t], (a + b) Sin[t] -
h Sin[(a + b)/b t]}] /. {a -> 2, b -> 1, h -> 1}, {t, 0,
2 \[Pi]}, PlotRange -> All]
РЕДАКТИРОВАТЬ
f[x_] := (a x)/(b + x);
With[{a = 10, b = 100}, Plot[Evaluate[f[x]], {x, 0, 100}]]
With[{a = 10, b = 100}, Plot[(a x)/(b + x), {x, 0, 100}]]
Plot[With[{a = 10, b = 100}, Evaluate[f[x]]], {x, 0, 100}]
Plot[Evaluate[f[x]] /. {a -> 10, b -> 100}, {x, 0, 100}]
Метод 1 (из Edit) не работает (потому что 'Plot' обрабатывает переменную x как локальную, эффективно используя Block '?)
Мне кажется, что это абсолютноПонятно всем, даже тем, кто имеет элементарные знания Mathematica, что происходит с методом 2, демонстрируя мощь и простоту использования Mathematica.Когда уравнения становятся более сложными, выгодно ли определять их отдельно.Сейчас не так ясно, что метод 3 должен использоваться вместо метода 1. (Метод 4, конечно, вероятно, лучший из всех.)