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

Evaluate symbolic expression in Mathematica for ranges of variables

经过一些符号计算后,我得到了一个包含 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]]

但这要么需要很长时间,要么因内存错误而崩溃。还有另一种更有效的方法吗?

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]]];

具有三组变量值

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} *)

希望对您有所帮助。