在Mathematica中评估变量范围的符号表达式

时间:2016-03-30 09:53:42

标签: wolfram-mathematica evaluate

在一些符号计算之后,我有一个带有5个符号变量的表达式:expr = f(v1,v2,v3,v4,v5)。每个变量都是一系列值,例如:

v1 = Range[1, 15, 1]
v2 = Range[0.5, 3, 0.1]
... 

我想评估所有变量中所有值的每个组合的表达式,并取其平均值和标准差。

我试过

exprEval = Table[Table[Table[Table[Table[expr, {v1, 1, 15, 1}], {v2, 0.5, 3, 0.1}], {v3,...}], {v4, ...}], {v5, ...}]
exprEvalMean = Mean[Flatten[exprEval]]

但这要么是永远的,要么因内存错误而崩溃。还有另一种更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

有三组变量值

v1 = Range[1, 3, 1];
v2 = Range[1.1, 1.5, 0.2];
v3 = Range[300, 400, 100];

说你的表达是变量的乘积

f[a_, b_, c_] := a b c

然后

res = f[Sequence @@ #] & /@ Tuples[{v1, v2, v3}];
Through@{Mean, StandardDeviation}[res]
(* {910., 428.348} *)

希望这有帮助。

答案 1 :(得分:0)

v1 = Range[1, 3, 1];
v2 = Range[1.1, 1.5, 0.2];
v3 = Range[300, 400, 100];

Print[out = Outer[List, v1, v2, v3]];

Print[avg = Mean[Flatten[out]]];
Print[sd = StandardDeviation[Flatten[out]]];