在项目的最后几天,我一直在与Mathematica的Manipulate功能作斗争.
我正在努力调整进入物理模型的假设和边界条件.为此,我希望能够绘制不同的方程并调整参数并使图表在运行中更新.Manipulate似乎是工作的完美工具 - 除了我无法让它工作.参数更改后,图表不会更新.
基本示例:
a =.;
b =.;
c =.;
func1[x_] := a*x;
func2[x_] := a*x^2 + b*x + c;
funcNamesList := {"Linear", "Quadratic"};
funcList := {func1[x], func2[x]}
Manipulate[
Plot[function, {x, -5, 5}], {function,MapThread[Function[#1 -> #2],
{funcList, funcNamesList}]}, {a, -5, 5}, {b, -5, 5}, {c, -5, 5},
LocalizeVariables -> False
]
Run Code Online (Sandbox Code Playgroud)
例如,我可以func1通过单击func1,调整a然后func1再次单击来刷新,但我希望在调整时更新它,a 因为我使用的实际功能相对于它们的参数而言相当不稳定.
- 因为我将处理具有不同参数的长函数,使用函数列表很有用.
编辑:
如果它为任何人产生任何想法,这里有一些我想做的各个组件的工作示例(来自Wolfram文档):
绘制图表并在参数更改时更新它们:
Manipulate[
Plot[Sin[a x + b], {x, 0, 6}], {{a, 2, "Multiplier"}, 1, …Run Code Online (Sandbox Code Playgroud)