MATLAB心得体会_第1页
MATLAB心得体会_第2页
MATLAB心得体会_第3页
MATLAB心得体会_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.MATLAB 心得体会这学期开了 MATLAB 这门课程,这里面有太多的学问。只要书里面有最基本的语法和命令,对于一个有编程基础的人, MATLAB 可以在一个下午的时间内学会。当然,仅仅是学会。如果想要对 MATLAB 比较得心应手,那么最好的办法就是练习。练习的素材很多,比如对于学经济学的, 可以做一些 simulation之类的, 也可以试着把计量或者宏观教材里面的一些算法写写出来。 一开始可能很慢, 但是当你完成了一个比较大的project 的时候,你的 MATLAB的功力将会有巨大的提升。用 MATLAB 的无非是做数值计算或者最优化,这也是MATLAB 的强项, MATLAB 有

2、足够多的工具解决这些问题。但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。 这一点在程序碰到问题或者计算结果不理想的时候尤为重要。很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用MATLAB 的工具箱而导致的。比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的来考虑这个问题,最后发现是由于目标的某一部分十分平缓导致的。当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。有个学化学同学就曾问我一个程序怎么写,说MATLAB 肯定可以完成的。了解清楚之后才明白原来他想做的就是一个受限最小二乘。但是他不懂

3、得什么是最小二乘,当然面对这个问题无从下手。这个问题没有人强调, 但我觉着蛮重要。 这里的关键点其实很简单,就是尽量减少重复计算,哪怕是多项式复杂度以内的计算。重复计算的内容应该适时保存到内存中,以后直接调用。一个程序可能会重复运行几千次几万次,一点点的浪费时间都可能被放大很多。空间(内存)我们是可以扩充的, 但是时间不是, 所以绝大多数时候我们需要放弃空间,获得时间上的迅捷。这里有个故事, 曾经在某技术论坛上看到的,说腾讯公司早期做的QQ 实在太过垃圾, 他们追踪过 QQ 的行为, 发现在几分钟时间里重复调用了某同一注册表项几百次。显然注册表的内容所占内存是有限的,甚至是可以忽略的, 但是每

4、次读注册表项可能都要读硬盘,这里的时间花费是很大的,为什么不把这项内容直接存储在内存里呢?但是却多了三次计算时间。 请问哪种好?不一定,看你的时间空间的权衡。但是具体到这个例子来说,第二种是不推荐的,因为:首先,第二种程序晦涩难懂,难以维护,内存不至于低到不能存储一个变量;第二,如果两个数字都特别特别大,计算 a 的时候会有溢出的危险。我想几乎所有学过的人都被这样告诫过。比较好的是MATLAB 自带的编辑器本身就可以自动缩进之类的, 程序十分易读。 但是还有一些东西是有些人不曾注意过的。比如变量名,一;.个好的变量名一定要有清晰的含义,让人一看就能明白, 否则日后的修改维护必然要花费更多的时间

5、去识别这些变量名的含义。这一点可以参考这里面详细列举了很多命名的规则和技巧。还有一点就是注释。 好的注释可以极大的方便以后的维护以及代码的重用。我的习惯是在代码的开头都要交代这个代码是干什么用的,怎么用等等。 在程序中一个大块的功能模块也要加上注释告诉大家你在做什么。如果某个语句很复杂,可以加注释告诉大家这句到底在干什么。这样写出来的程序维护起来或者他人使用起来将非常方便。另有一篇十分有趣的文章分享给大家:如何写出无法维护的代码之所以叫做程序, 是因为我们所做的工作就是告诉计算机要做什么,该怎么做。 所以如果你的脑子里根本不知道这个问题该怎么解决的时候,你就更加无法写出程序。找思路的一般方法是

6、分解问题,然后逐个击破。或者在特殊情况下,需要把问题转化。分解与转化的第一步是把实际问题转化为数学问题。这一步可能已经做好,可能没有。 如果没有, 那么这一步就叫做数学建模。绝大多数问题都可以转化为两类问题,一类是最优化问题,一类是求解问题。 如果你能知道你在最优化什么东西或者求解什么东西,问题就简单很多。转化问题的第二步是把数学问题转化为程序。也就是说, 你要想清楚这个问题是怎么一步步实现的。 这个过程可能很简单,有现成的方法用,也有可能很复杂,还可能涉及多种转化。比如我们经济学中遇到的求解动态最优化,经常要把连续的东西离散化。最后, 考虑怎么把你的程序转化为真实的代码。这一步说简单很简单,

7、因为只要你做好了以上两步, 这一步是顺其自然的。但是当然会有很多小的细节, 也许这就是所谓的 technique 。但是我还是觉着。应该是 debug 中最常用的工具。 MATLAB 的编辑器中可以很方便的实现在每一行的开头有个小横线,单击一下变成红点, 然后就设置成断点了。 当程序运行到断点之后就会中断, 然后会在主窗口显示K>> 的标志, 这时你可以输入命令查看内存情况等等。一步步的跟踪, 直到变量值跟你的预期不一样,这时你就可以很容易的找到错误在什么地方发生了。这个方法很简单,离开你的电脑,找一个人,随便什么人,说一遍你的程序的思路,说的越具体越好。 多数情况下, 你在阐述的过程中, 程序的错误就会突然从你的大脑里冒出来了。如果实在找不到就找大街上的乞讨人员吧,给他们

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论