资源描述:
《再举一个简单的m文件实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、8再举一个简单的M文件实例:sunooy发表于2006-6-220:07:00 日本数学家角谷提出一个著明的猜想:任何一个大于1的自然数经过如下的有限步运算,最后结果为1 (1)如果是偶数,将其除以2 (2)如过是奇数,将其乘以3,再加上1例如n=1010/2=55*3+1=1616/2=88/2=44/2=22/2=1根据上面提供的猜想:建立M文件,以便方便的验证对不同自然数,角谷猜想是否正确。程序可以参考这里:user2/sunooy/archives/2006/1275717.shtml 第一步:建立M文件%M-file,jiaog
2、u.m%验证对不同的自然数n,角谷猜想是否成立n=input('Typen:'); %从键盘输入n,并赋值给ni=1; %标记运算的步数f=[n];%存放每次运算后的n的值whilen~=1%当n不等于1时就循环,直到n=1时为止。 ifmod(n,2)==0 n=n/2; elsen=n*3+1; end i=i+1; f(i)=n;endf %输出每次运算后的n的值组成的集合I=i-1 %输出运算的步数,f集合中会有i个元素,但实际上是只经过i-1步的运算n %输出最后一步所得n的值,显然,一般n
3、=1,除非猜想不成立时,n会取到其它的值!8第二步:保存M文件:进入File菜单,打开New菜单,选择M-file,在保存,注意为了直观最好将文件名保存为jiaogu第三步:调用M文件在matlab窗口输入调用命令jiaogu回车后显示Typen: 立即给n赋不同的值,马上得到结果。比如:n=10时,经过6步可将10化为1Typen:10f=10 5 16 8 4 2 1I= 6n=1--------------n=55时,经过20步可将55化为1 f= 55 166 8
4、3 250 125 376 188 94 47 142..... 4 2 1(为节省空间,中间的数略去了)------------------------------------n=100时,经过25步可将100化为1f=100 50 25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 2
5、0 10 5 16 8 4 2 1I=25n=1还可给n取更多的值或更大的值,总之,建立M文件够,验证工作变得十分方便了!---------------------------------------------特别说明:如果把whilen~=1改为whilen~=1&n>0程序会更完美。写成whilen~=1表面上看是没有错的。但因为角谷猜想毕竟是个猜想,我们无法验证所有的数,如果存在某个特别大的数使猜想不成立,它会从n逐渐的变小,直到负的无穷大,而不能被化为1。这样程序就会进入死循环!所以应该写成whi
6、len~=1&n>0,这就保证如果有某个数不满足角谷猜想,一旦发现它不是正数了,就停止循环,从而避免了死循环。8 如何建立和调用M文件(M-File)呢?(原创)sunooy发表于2006-6-2121:17:001.建立M文件的必要性:对于常用的或很长的程序,如果每次都从头输入,则非常费时间,也容易出错.将这些程序做成M文件就方便多了--只要输入自定义的命令,就可以方便的调用,编程的效率大大提高!2.如何建立M文件(1)在记事本(.txt)或maltab命令窗口中编辑好M文件例:编写一个输入半径,计算圆的面积和球的体积的M文
7、件.前两行是文件头,一般说明文件的类型(M-file),文件名(tutex2),和文件的功能(输入半径,计算圆的面积和球的体积),后面是文件体,主要是解决特定问题的程序代码.%M-file,tutex2.m %输入半径,计算圆的面积和球的体积r=input('Typeradius:');%从键盘输入Typeradius的值,并将它赋值给r.area=pi*r^2;volume=(4/3)*pi*r^3;fprintf('Theradiusis%12.5f',r)fprintf('Theareaofacircleis%12.5f',
8、area)fprintf('Thevolumeofasphereis%12.5f',volume)(2)将上面的代码保存到工作空间里.保存方法是:File/New/F-ile/保存3.如何