偶尔遇到这个问题,我没有找到解决方法。 它通常发生在我找到方程的根时,并且想根据某个参数最大化/最小化/绘制根。所以我尝试将代码包装在一个模块中,这样所有代码都可以用一个输入数字来执行,但它不能在诸如Plot之类的函数中使用。 例如:Mathematica:用FindRoot绘制一个模块
f[din_] := Module[{d = din},
sol = NDSolve[{y'[x] == y[x], y[0] == 1}, y[x], {x, 0, 10}];
t1 = Flatten[FindRoot[y[x] - d /. sol, {x, 1}]];
x /. t1
]
f[2]
f[2.5]
f[3]
Plot[f[x], {x, 2, 3}]
像预期的那样到f与一些所有工作电话,但在情节功能的F似乎与符号“X”进行评价 - 或东西,只是给了很多错误的文本。
任何方法?
环顾论坛,我发现类似的问题提出了一些建议 - 喜欢做的定义是这样的:
f[din_?NumericQ]:=
,我试图尽我所能,但似乎没有有所作为。 我使用Mathematica 8.0