相关疑难解决方法(0)

使用With对比绘图使用Block(Mathematica)绘图

我想描述我一直有一个问题与Plot使用With,以保持定义的参数"本地".我不一定要求解决问题:我遇到的问题是理解问题.

有时候我使用如下的结构来获得一个Plot:

方法1

plot1 = With[{vmax = 10, km = 10}, 
  Plot[Evaluate@((vmax x)/(km + x)), {x, 0, 100}, 
   AxesOrigin -> {0, 0}]]
Run Code Online (Sandbox Code Playgroud)

我喜欢这种方法,即使对于非Mathematica用户来说,它也是相当清楚的.

当要绘制的方程式变得更加复杂时,我喜欢在绘图外部定义它们(使用SetDelayed).例如:

f[x_] := (vmax x)/(km + x)
Run Code Online (Sandbox Code Playgroud)

但是,以下不起作用

方法2

plot2 = With[{vmax = 10, km = 10}, 
  Plot[Evaluate@f[x], {x, 0, 100}, AxesOrigin -> {0, 0}]]
Run Code Online (Sandbox Code Playgroud)

我一直天真地认为它应该.但是,基于Help语句

Plot将变量x视为本地,有效地使用Block

我使用过各种解决方法,大多数情况如下

方法3

plot3 = Plot[With[{vmax = 10, km = 10}, Evaluate@f[x]], {x, 0, 100}, 
  AxesOrigin -> {0, 0}]
Run Code Online (Sandbox Code Playgroud)

这个看起来很尴尬,甚至通常需要对Mathematica用户进一步解释.

绘图输出

在此输入图像描述

但是,最近我发现偶然的机会,取代 …

wolfram-mathematica

28
推荐指数
1
解决办法
3679
查看次数

标签 统计

wolfram-mathematica ×1