求助manipulate的用法
mathematica吧
全部回复
仅看楼主
level 3
tootlex 楼主
f[x_] = a x^2 + b x + c
Manipulate[f[d], {d, 0, 1}, {a, 0, 1}, {b, 0, 1}, {c, 0, 1}]
关于manipulate的用法,我想调试函数的参数,但是上面的代码运行后,a,b,c的数值代不进去。
如果我把函数改成四元函数f[x_,a_,b_,c_],就可以用了,但这不是我真正的函数啊。我理解f[x]就是一个表达式啊,定义的时候,x和a,b,c有区别,但是代入具体的自变量x后为什么还是和a,b,c有区别?
2017年03月14日 12点03分 1
level 7
f[x_] := a x^2 + b x + c
Manipulate[Evaluate[f[d]], {d, 0, 1}, {a, 0, 1}, {b, 0, 1}, {c, 0, 1}]
Manipulate有HoldAll属性, 粗暴的理解是第一个参数的运算级比Manipulate低, 在计算Manipulate时并不存在a,b,c等参数, 所以算不出来
使用Evaluate强制提高计算优先级即可
2017年03月15日 03点03分 2
非常感谢你的解答,看了下holdall的资料,没想到简单的问题里涉及了这么多东西[大拇指]
2017年03月16日 10点03分
1