matlab中代码的含义

时间:2014-01-22 10:54:29

标签: matlab for-loop plot wolfram-mathematica post-increment

作为mathematica的新手, 请帮助我在mathematica中给出的代码中发生的事情。 我想用matlab编写它。

Clear[t, k, w, fg, g];   
t = 0;     
k = 0;      
For[a = 1, a < 26, t = t1, t1 = t + 8];   
g = ((−1)^a+1)∗ Integrate[Exp[−i ∗ w ∗ z],{z,t,t1}]; k = k + g; a++);    
fg[w_] = Re[k ∗ Conjugate[k]];      
li = Plot[fg[w], {w, 0.1, 0.7}], PlotRange → All, Frame → True]       
want to know how the for loop is working here.?

实际问题是将函数与一组w值的限制相结合,并且再次使用相同的w值集合来更改限制并对这些积分值求和。 在这里输入“w”值的输入?

1 个答案:

答案 0 :(得分:1)

我最好猜测这应该是什么样的:

 Clear[w];
 t = 0; k = 0;
 For[a = 1, a < 26, a++,
       g = ((-1)^a + 1)  Integrate[Exp[ -I   w   z], {z, t, t + 8}];
       k += g;
       t += 8];
 fg[w_] = Re[k   Conjugate[k]];
 Plot[fg[w], {w, 0.1, 0.7}, PlotRange -> All]

enter image description here

以更加数学的形式出现:

Clear[w]
fg[w_] = Re[#   Conjugate[#]] &@ 
          Sum[ ((-1)^a + 1) 
            8 Integrate[Exp[-I   w   (z + a - 1)  8 ], {z, 0, 1}] ,
               {a, 25}];
 Plot[fg[w], {w, 0.1, 0.7}, PlotRange -> All]