Do命令:
Do 使用标准的 Mathematica 迭代规则.
可以在 Do 中使用 Return、Break、Continue 和 Throw.
除非使用明确的 Return,由 Do 返回的值是 Null。
Do[expr,spec] 首先计算 spec,然后局部化指定的变量,依次对其连续赋值,每次计算 expr.
Do 实际上用 Block 来实现值或变量的局部化.
Do[expr,Subscript[spec, 1],Subscript[spec, 2]] 实际上等价于 Do[Do[expr,Subscript[spec, 2]],Subscript[spec, 1]].
【语法】
1、Do[expr,{i_max}]
对 expr 计算 imax 次.
2. Do[ expr, {i,i_max} ]
将变量 i 从 1 递增到 i_max(步长为 1),计算 expr.
<span style="font-size:14px;">Do[Print[n^2], {n, 4}]
1
2
4
16
</span>
3.Do[expr,{i,Subscript[i, min],Subscript[i, max]}]
从 i=Subscript[i, min] 开始.
<span style="font-size:14px;">Do[Print[n 3], {n, 3, 5}]</span>
<span style="font-size:14px;">9<p>16</p><p>25</p></span>
4.Do[expr,{i,Subscript[i, min],Subscript[i, max],di}]
使用步长 di.
<span style="font-size:14px;">Do[Print[n], {n, -3, 5, 2}]</span>
<span style="font-size:14px;">-3</span>
<span style="font-size:14px;">-1</span>
<span style="font-size:14px;">1</span>
<span style="font-size:14px;">3</span>
<span style="font-size:14px;">5</span>
【综合应用】:用蒙特卡洛方法求,pie
<span style="font-size:14px;">ctr = 1000000;
num = 0;
Do[x = 2* Random[] - 1; y = 2*Random[] - 1;
If[x^2 + y^2 < 1, num++], {i, 1, ctr}]; N[4*num/ctr, 10]</span>
out:3.140988000
注意:N[expr] 表示expr的数值
z.m. input: N[1/7]
output: 0.142857
N[expr,n]
尝试给出具有 n 位精度的结果.