找回密码
 注册
Simdroid-非首页
查看: 347|回复: 2

[原创短文] Mathematica使用过程中的心得

[复制链接]
发表于 2012-2-1 19:35:21 | 显示全部楼层 |阅读模式 来自 英国
Mathematica软件功能强大,虽然现在已有中文的帮助文档,要把帮助文档全部吃透是很难的,有时候如果一些细节问题没有搞清楚,虽然M可以给出结果,但不一定是正确的,有些时候直接无法计算信息。因此还有很多细节的问题要自己摸索,现把本人在使用M的过程中的心得与大家共享。

也希望大家能多发表些使用心得的贴子,这对于对M的学习非常有帮助。计算分析常常一个符号,一个数字决定着结果的成败。

1 因为for循环在程序中应用很多。以下为常遇到的问题。在For循环中,即For[i=1,i<n,i++,body]最后一次计算,当i循环到第n次,即i=>n时,则此时计算中止,所以在for循环中,此时在test即程序中(i<n)后面的出现的i值为第n-1次加1时的值即i=n-1,而在for循环外,所有语名中包含i的值为i第n次加1即i=n时的值,这一点非常重要。总之,循环结束时,循环内与循环外的i 值是不同的。可利用下式进行试算。vv[8],vv[3],ff[10],分析输出结果。
vv[n_] := (For[i = 1, i < n, i++, If[(i - 8) > 0, Break[]]];
  If[ i > 8, Print[i + bb], Print[i + aa]]; i)

2 对于利用for定义的函数,返回值为最后一个;后面的表达式的i(如下例i),而不是print结果.但执行的定义的函数时,相当于执行所定义的语句,可以输出print的结果及返回值。

ttt[x_] :=
Module[{tt1}, (For[i = 1; tt1[0] = b, i < x, i++,
    tt1 = m tt1[i - 1]; Print[i + c]]; Print[i + d]; tt1)]


3 如下式:
ttt1[x_] :=  Module[{tt1}, (For[i = 1; tt1[0] = b, i < x, i++,  tt1[i_] := tt1 = m tt1[i - 1]; Print[i + c]]; Print[i + d];    tt1)]
ttt2[x_] :=  Module[{tt1}, (For[i = 1; tt1[i_] := tt1 = m tt1[i - 1];   tt1[0] = b, i < x, i++, Print[i + c]]; Print[i + d]; tt1)]
ttt3[x_] :=  Module[{tt1}, (For[i = 1; tt1[0] = b;   tt1[i_] := tt1 = m tt1[i - 1], i < x, i++, Print[i + c]];  Print[i + d]; tt1)]

当x=1时,ttt1运行到test时不满足条件,中断,因此此过程tt1[]函数仍未定义,所以tt1[x]未知,当x=2时,则整个过程执行了一遍,tt1得到了定义,所以tt1[x]也可以算出,因此,ttt1[1]未能算,而ttt1[2],ttt1[3],.....,则可以计算。这时再算ttt1[1]则可以计算,因为执行ttt1[x],x>1时,tt1[x]函数已被定义,并被计算机所记录,所以可以计算,若tt1为局部函数,则当退出函数时,tt1[x]函数仍为未知。因此定义函数最好使用module函数,否则可能会定义在不同的函数内部的函数相互交差。

评分

2

查看全部评分

发表于 2012-3-14 09:01:57 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
初学者看你的帖子学习了。顺便问下,我在计算时里面有积分和求和,是不是直接按公式输入就行,但是怎么计算出来会有这样的错误呢?很不理解啊。Integrate::ilim: "\!\(\*
StyleBox[\"\"\", \"MT\"]\)Invalid integration variable or limit(s) in
难道求和要插入个像你说的For循环程序才行吗?
回复 不支持

使用道具 举报

发表于 2012-3-24 16:03:22 | 显示全部楼层 来自 湖北武汉
学习了。:)
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-28 20:58 , Processed in 0.031570 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表