Wolfram mathematica 表中一个模型的多次计算

Wolfram mathematica 表中一个模型的多次计算,wolfram-mathematica,Wolfram Mathematica,我是Mathematica的新用户,我不知道如何解决这个问题。 我有一个计算S,它给出了10个随机变量的10个结果: Xi = RandomVariate[NormalDistribution[], 10] Mu = -0.00644131 Sigma= 0.0562005 t = 0.1 s = 100 fnmc[s_,Mu_,Sigma_, t_,Xi_] := s Exp[(Mu - Sigma^2/2) t + Sigma Sqrt[t ] Xi] S = fnmc[s, Mu, S

我是Mathematica的新用户,我不知道如何解决这个问题。 我有一个计算S,它给出了10个随机变量的10个结果:

Xi = RandomVariate[NormalDistribution[], 10]
Mu = -0.00644131
Sigma= 0.0562005
t = 0.1
s = 100

fnmc[s_,Mu_,Sigma_, t_,Xi_] := s  Exp[(Mu - Sigma^2/2) t + Sigma Sqrt[t ] Xi]
S = fnmc[s, Mu, Sigma, t, Xi]    
现在我需要计算公式S 10次,结果是100个数字。 我找不到在桌子上做这件事的方法。此外,我将不得不对这10个结果求和并计算平均值等。我想使用表格,因为进一步的计算-求和,平均值-我认为这是最简单的“形式”的结果…是吗

我的想法是:

Table[S(i),{i,10}]  
但它当然会乘以sx(i)。有什么建议吗?

S(i)
S
乘以
i
S[i]
使用参数
i
调用函数
S


我刚刚意识到
S
根本不是一个函数,所以您不想用参数
I
调用它。只需通过
表[S,{10}]
就可以得到
S
的10次结果,但是由于
Xi
只计算一次,因此只会得到10次相同的向量。也许你想把整个计算过程重复10次?这将是:

Table[
 (
  Xi = RandomVariate[NormalDistribution[], 10]; 
  Mu = -0.00644131; 
  Sigma = 0.0562005;
  t = 0.1; s = 100; 
  s*Exp[(Mu - Sigma^2/2)*t + Sigma*Sqrt[t]*Xi]
 ), {10}]

您可以在已创建的XI上使用函数编程方法映射(/@)您的函数

Mu = -0.00644131;
Sigma= 0.0562005;
t = 0.1;
s = 100;

(* if you wanted ten scalar random numbers, with each one used on one application of your equation  *) 
Xi = RandomVariate[NormalDistribution[], 10];
ans = s  Exp[(Mu - Sigma^2/2) t + Sigma Sqrt[t ] #] & /@ Xi;

(* if you wanted ten 10 dimensional  random numbers, with each 10D number used on one application of your equation  *) 

Xi = RandomVariate[NormalDistribution[], {10,10}];
ans = s  Exp[(Mu - Sigma^2/2) t + Sigma Sqrt[t ] #] & /@ Xi;

非常感谢你!关于函数-我认为当我定义“fnmc”时,它变成了一个函数-所以当我用特定值命名为“S”函数“fnmc”时,我认为“S”它仍然是一个函数。。。因此,如果我使用“fnmc”(或某些函数)而不是“S”,表的外观会有所不同吗?再次感谢您的回复,这对我帮助很大!如果您在
表中使用
fmnc
,它将被调用10次,但只要您在开始时只分配一次
Xi
,它将始终包含相同的值,因此调用
fnmc
N次仍然会得到10倍于相同向量的结果。您将获得对未来问题的答案,可能更快