mathematica中循环怎么实现?

2024-11-26 21:17:54
推荐回答(1个)
回答1:

1.
1. Do循环结构
简单地Do循环结构形式:
Do[expr,{i,imax}] 循环计算expr,以步长1,i从1增加到imax
Do[expr,{i,imin,imax,di}] 循环计算expr,以步长di,i从imin增加到imax
Do[expr,{n}] 循环计算expr n次
计算Print[i+i^2],i从1增加到3:
In[1]:=Do[Print[i+i^2],{i,1,3}]
Do中的定义的循环方式与函数Table和Sum中的定义一样。在函数Do中,你同样能建立重循环。下面给出的i从1到4进行循环,而对于每个i,j又从1到i-1进行循环:
In[2]:=Do[Print[{i,j}],{i,1,4},{j,1,i-1}] 两个{}中的初值1可以省略
{2,1}
{3,1}
{3,2}
{4,1}
{4,2}
{4,3}
我们还可把一个过程放入Do函数中:
In[3]:=t=67;Do[Print[t];t=Floor[t/2],{3}]
67
33
16
2. While与For结构
在Mathematica程序中,Do是以结构方式进行循环的,然而有时你需要生成非结构循环。此时,运用函数While和For是合适的。下面是While和For函数的循环结构形式:
While[test,body] 只要test为真,就重复计算body
For[start,test,incr,body] 以start为起始值,重复计算body和incr,直到test为假为止
当条件满足时,While循环一直进行,因此,为了防止死循环,在While 中应包括命令能改变test的值。
In[4]:=n=25;While[(n=Floor[n/3])!=0,Print[n]]
8
2
下面给出For循环的例子,i++表示i的值加1(在本节的最后我们给出在编程时常会用到的赋值方法):
In[5]:=For[i=1,i<4,i++,Print[i]]
1
2
3
下面再给出一个较复杂的For循环的例子,一旦i^2In[6]:=For[i=1;t=x,i^2<10,i++,t=t^2+i;Print[t]]
1+x 2
2+(1+x 2) 2
3+(2+(1+x 2) 2) 2
Mathematica中的函数While和For循环总是在执行循环体前对循环条件进行测试,一旦测试结果为假,就中止While和For循环,因此,循环体的计算总是在测试结果为真的情况下进行的。