Mathematica基础——循环和迭代
来源:网络收集 点击: 时间:2024-04-03我们可以用Table来列出前10个整数的立方:
Table
这其实是给出了前10个整数的立方的列表,还可以求出50到100之间所有3的倍数的立方、500到1000之间所有55的倍数的平方:
Table//Column



用Do给出前10个整数的平方:
Do,{n,10}]//TraditionalForm
注意:Do自己是不会返回任何结果给你的,需要结合Print才行!而且,返回的结果不是列表。再试试:
Do,{n,10}]


用For求出0到10这10个数的5次方:
For]
这个For的用法,与C语言的用法差不多。

类似地,用While给出1到10这10个数的6次方:
n = 1; While; n++]
这里,先运行Print,再运行n++,然后循环。

用Map给出前10个数的平方:
Map]
注意:Map可以用 /@ 代替;#^2 是纯函数。你还可以试试——Sqrt/@ Range/ /Column/ /N


计算2的100次方,可以直接输入——2^100,运行即可。
但是,也可以麻烦点,用Nest(迭代、嵌套)来计算:
(Nest//TraditionalForm)/.x-1

用NestList看以看到迭代的每个步骤:
NestList//TraditionalForm
运行结果是:
{x,x y,x y^2,x y^3,后面的就不去一一列举了}


给出一个连分数:
Nest//simplify
式子化简之后,得到一个分式——(6765+10946x)/(4181+6765x),它的图像如下图。


有条件限制的迭代:NestWhile。
求大于10996的最小素数:
NestWhile ]
! PrimeQ表示非素数,代码的执行过程是——当迭代的值不是素数的话,进行下一次迭代,否则停止迭代,并返回最终结果(本例是11003,英语读作eleven thousand, three)!
那么,11003是第几个素数呢?在下面第六部能看到答案!

求大于10996的最小的一对孪生素数:
NestWhile || ! PrimeQ , 3】
代码的执行过程——每当进行三次迭代,迭代值的第一个数和第三个数不都是素数的时候,进行下一次迭代,否则停止迭代,并返回孪生素数里面较少的素数(11059,说明:大于10996的最小的一对孪生素数是11059,11061)!

判断小于10996的最大的Fibonacci 数是第几个Fibonacci 数:
NestWhile = 10996 ]]
答案:小于10996的最大的Fibonacci 数是第22个Fibonacci 数——17711=89*199。而且,第四步的问题,11003是第1136个素数。

看看具体的迭代步骤:
NestWhileList = 10996 】

更多的内容,请查看Mathematica的帮助文档!
MATHEMATICA循环迭代版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_416522.html