在Mathematica中将函数绘制为另一个函数的函数

时间:2014-10-14 18:26:47

标签: function wolfram-mathematica

我不完全确定要搜索什么,所以如果之前已经提出这个问题,我会事先道歉:

我有两个功能

R:= Rref * mx(mx ^(4/3) - C0)^( - 1)

M:= Mref *(mx + C1 * mx ^( - 1)*((1 - C0 * mx ^( - 4/3))^( - 3) - 1))

其中Rref,Mref,C0和C1是常数,mx是变量。我需要将R绘制为M的函数。当然,Mathematica中必须有一些东西可以用来做这样的情节 - 我似乎无法找到它。

1 个答案:

答案 0 :(得分:0)

评论是正确的,因为你拥有的是一组两个"parametric equations"。您将使用ParametricPlot命令。但是,带参数的函数的语法有时很棘手,所以让我给你最好的建议:

R[Rref_, C0_, C1_][mx_] = Rref*mx (mx^(4/3) - C0)^(-1);
M[Mref_, C0_, C1_][mx_] = Mref*(mx + C1*mx^(-1)*((1 - C0*mx^(-4/3))^(-3) - 1));

我更喜欢这种符号,因为你可以做衍生物之类的事情:

R[Rref,C0,C1]'[mx]

(* Output: -((4 mx^(4/3) Rref)/(3 (-C0 + mx^(4/3))^2)) + Rref/(-C0 + mx^(4/3)) *)

然后您只需参数化绘制函数:

ParametricPlot[
 {R[0.6, 0.3, 0.25][mx], M[0.2, 0.3, 0.25][mx]},
 {mx, -10, 10},
 PlotRange -> {{-10, 10}, {-10, 10}}
]

您可以在Manipulate命令中将其打包以使用参数:

Manipulate[
 ParametricPlot[
  {R[Rref, C0, C1][mx], M[Mref, C0, C1][mx]},
  {mx, -mmax, mmax},
  PlotRange -> {{-10, 10}, {-10, 10}}
 ],
 {Rref, 0, 1},
 {Mref, 0, 1},
 {C0, 0, 1},
 {C1, 0, 1},
 {mmax, 1, 10}
]

我认为应该这样做。