



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流MATLAB心得體會(huì).精品文檔.MATLAB心得體會(huì)這學(xué)期開(kāi)了MATLAB這門課程,這里面有太多的學(xué)問(wèn)。只要書里面有最基本的語(yǔ)法和命令,對(duì)于一個(gè)有編程基礎(chǔ)的人,MATLAB可以在一個(gè)下午的時(shí)間內(nèi)學(xué)會(huì)。當(dāng)然,僅僅是學(xué)會(huì)。如果想要對(duì)MATLAB比較得心應(yīng)手,那么最好的辦法就是練習(xí)。練習(xí)的素材很多,比如對(duì)于學(xué)經(jīng)濟(jì)學(xué)的,可以做一些simulation之類的,也可以試著把計(jì)量或者宏觀教材里面的一些算法寫寫出來(lái)。一開(kāi)始可能很慢,但是當(dāng)你完成了一個(gè)比較大的project的時(shí)候,你的MATLAB的功力將會(huì)有巨大的提升。用MATLAB的無(wú)非是做數(shù)值計(jì)算或者最優(yōu)
2、化,這也是MATLAB的強(qiáng)項(xiàng),MATLAB有足夠多的工具解決這些問(wèn)題。但是在使用這些工具箱之前,應(yīng)該首先了解一些數(shù)值計(jì)算以及最優(yōu)化的理論。這一點(diǎn)在程序碰到問(wèn)題或者計(jì)算結(jié)果不理想的時(shí)候尤為重要。很多時(shí)候結(jié)果不理想并不是自己的理論出了問(wèn)題,而是盲目或者錯(cuò)誤使用MATLAB的工具箱而導(dǎo)致的。比如我曾經(jīng)做過(guò)一個(gè)單純形法的優(yōu)化程序,但是結(jié)果總是不理想,這個(gè)時(shí)候就要返回到單純形法具體是一種什么樣的來(lái)考慮這個(gè)問(wèn)題,最后發(fā)現(xiàn)是由于目標(biāo)的某一部分十分平緩導(dǎo)致的。當(dāng)然更重要的是如果你不理解理論,很多問(wèn)題根本不知道如何處理。有個(gè)學(xué)化學(xué)同學(xué)就曾問(wèn)我一個(gè)程序怎么寫,說(shuō)MATLAB肯定可以完成的。了解清楚之后才明白原來(lái)他
3、想做的就是一個(gè)受限最小二乘。但是他不懂得什么是最小二乘,當(dāng)然面對(duì)這個(gè)問(wèn)題無(wú)從下手。這個(gè)問(wèn)題沒(méi)有人強(qiáng)調(diào),但我覺(jué)著蠻重要。這里的關(guān)鍵點(diǎn)其實(shí)很簡(jiǎn)單,就是盡量減少重復(fù)計(jì)算,哪怕是多項(xiàng)式復(fù)雜度以內(nèi)的計(jì)算。重復(fù)計(jì)算的內(nèi)容應(yīng)該適時(shí)保存到內(nèi)存中,以后直接調(diào)用。一個(gè)程序可能會(huì)重復(fù)運(yùn)行幾千次幾萬(wàn)次,一點(diǎn)點(diǎn)的浪費(fèi)時(shí)間都可能被放大很多??臻g(內(nèi)存)我們是可以擴(kuò)充的,但是時(shí)間不是,所以絕大多數(shù)時(shí)候我們需要放棄空間,獲得時(shí)間上的迅捷。這里有個(gè)故事,曾經(jīng)在某技術(shù)論壇上看到的,說(shuō)騰訊公司早期做的QQ實(shí)在太過(guò)垃圾,他們追蹤過(guò)QQ的行為,發(fā)現(xiàn)在幾分鐘時(shí)間里重復(fù)調(diào)用了某同一注冊(cè)表項(xiàng)幾百次。顯然注冊(cè)表的內(nèi)容所占內(nèi)存是有限的,甚至是可
4、以忽略的,但是每次讀注冊(cè)表項(xiàng)可能都要讀硬盤,這里的時(shí)間花費(fèi)是很大的,為什么不把這項(xiàng)內(nèi)容直接存儲(chǔ)在內(nèi)存里呢?但是卻多了三次計(jì)算時(shí)間。請(qǐng)問(wèn)哪種好?不一定,看你的時(shí)間空間的權(quán)衡。但是具體到這個(gè)例子來(lái)說(shuō),第二種是不推薦的,因?yàn)椋菏紫?,第二種程序晦澀難懂,難以維護(hù),內(nèi)存不至于低到不能存儲(chǔ)一個(gè)變量;第二,如果兩個(gè)數(shù)字都特別特別大,計(jì)算a的時(shí)候會(huì)有溢出的危險(xiǎn)。 我想幾乎所有學(xué)過(guò)的人都被這樣告誡過(guò)。比較好的是MATLAB自帶的編輯器本身就可以自動(dòng)縮進(jìn)之類的,程序十分易讀。但是還有一些東西是有些人不曾注意過(guò)的。比如變量名,一個(gè)好的變量名一定要有清晰的含義,讓人一看就能明白,否則日后的修改維護(hù)必然要花費(fèi)更多的時(shí)間
5、去識(shí)別這些變量名的含義。這一點(diǎn)可以參考 這里面詳細(xì)列舉了很多命名的規(guī)則和技巧。還有一點(diǎn)就是注釋。好的注釋可以極大的方便以后的維護(hù)以及代碼的重用。我的習(xí)慣是在代碼的開(kāi)頭都要交代這個(gè)代碼是干什么用的,怎么用等等。在程序中一個(gè)大塊的功能模塊也要加上注釋告訴大家你在做什么。如果某個(gè)語(yǔ)句很復(fù)雜,可以加注釋告訴大家這句到底在干什么。這樣寫出來(lái)的程序維護(hù)起來(lái)或者他人使用起來(lái)將非常方便。另有一篇十分有趣的文章分享給大家:如何寫出無(wú)法維護(hù)的代碼 之所以叫做程序,是因?yàn)槲覀兯龅墓ぷ骶褪歉嬖V計(jì)算機(jī)要做什么,該怎么做。所以如果你的腦子里根本不知道這個(gè)問(wèn)題該怎么解決的時(shí)候,你就更加無(wú)法寫出程序。找思路的一
6、般方法是分解問(wèn)題,然后逐個(gè)擊破?;蛘咴谔厥馇闆r下,需要把問(wèn)題轉(zhuǎn)化。分解與轉(zhuǎn)化的第一步是把實(shí)際問(wèn)題轉(zhuǎn)化為數(shù)學(xué)問(wèn)題。這一步可能已經(jīng)做好,可能沒(méi)有。如果沒(méi)有,那么這一步就叫做數(shù)學(xué)建模。絕大多數(shù)問(wèn)題都可以轉(zhuǎn)化為兩類問(wèn)題,一類是最優(yōu)化問(wèn)題,一類是求解問(wèn)題。如果你能知道你在最優(yōu)化什么東西或者求解什么東西,問(wèn)題就簡(jiǎn)單很多。轉(zhuǎn)化問(wèn)題的第二步是把數(shù)學(xué)問(wèn)題轉(zhuǎn)化為程序。也就是說(shuō),你要想清楚這個(gè)問(wèn)題是怎么一步步實(shí)現(xiàn)的。 這個(gè)過(guò)程可能很簡(jiǎn)單,有現(xiàn)成的方法用,也有可能很復(fù)雜,還可能涉及多種轉(zhuǎn)化。比如我們經(jīng)濟(jì)學(xué)中遇到的求解動(dòng)態(tài)最優(yōu)化,經(jīng)常要把連續(xù)的東西離散化。最后,考慮怎么把你的程序轉(zhuǎn)化為真實(shí)的代碼。這一步說(shuō)簡(jiǎn)單很簡(jiǎn)單,因
7、為只要你做好了以上兩步,這一步是順其自然的。但是當(dāng)然會(huì)有很多小的細(xì)節(jié),也許這就是所謂的technique。但是我還是覺(jué)著。 應(yīng)該是debug中最常用的工具。MATLAB的編輯器中可以很方便的實(shí)現(xiàn)在每一行的開(kāi)頭有個(gè)小橫線,單擊一下變成紅點(diǎn),然后就設(shè)置成斷點(diǎn)了。當(dāng)程序運(yùn)行到斷點(diǎn)之后就會(huì)中斷,然后會(huì)在主窗口顯示K>>的標(biāo)志,這時(shí)你可以輸入命令查看內(nèi)存情況等等。一步步的跟蹤,直到變量值跟你的預(yù)期不一樣,這時(shí)你就可以很容易的找到錯(cuò)誤在什么地方發(fā)生了。 這個(gè)方法很簡(jiǎn)單,離開(kāi)你的電腦,找一個(gè)人,隨便什么人,說(shuō)一遍你的程序的思路,說(shuō)的越具體越好。多數(shù)情況下,你在闡述的過(guò)程中,程序的錯(cuò)誤就會(huì)突然從你的大腦里冒出來(lái)了。如果實(shí)在找不到就找大街上的乞
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院《系統(tǒng)工程與工程項(xiàng)目管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省泰安市肥城市湖屯鎮(zhèn)初級(jí)中學(xué)2025年初三下黃金四模考試生物試題試卷含解析
- 江西應(yīng)用工程職業(yè)學(xué)院《經(jīng)濟(jì)法(反不正當(dāng)競(jìng)爭(zhēng)法、反壟斷法)》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林省通榆一中2025屆高三第一次摸底歷史試題含解析
- 沈陽(yáng)音樂(lè)學(xué)院《鋼琴基礎(chǔ)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧特殊教育師范高等專科學(xué)?!队耙曡b賞與視聽(tīng)分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇省無(wú)錫市宜興市宜城環(huán)科園聯(lián)盟市級(jí)名校2025屆高中畢業(yè)班新課程教學(xué)質(zhì)量監(jiān)測(cè)卷生物試題含解析
- 蘭州工業(yè)學(xué)院《食品工程原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年信息安全專業(yè)考試試題及答案
- 內(nèi)蒙古磴口縣2025年中考物理試題命題比賽模擬試卷(6)含解析
- 美世-崗位管理
- 中考物理模擬試卷講評(píng)課課件
- DB32T 3921-2020 居住建筑浮筑樓板保溫隔聲工程技術(shù)規(guī)程
- 跨越架施工方案
- 流動(dòng)團(tuán)員管理服務(wù)告知書
- 人民幣全版(錢幣)教學(xué)打印版word版
- Excel在財(cái)務(wù)管理中的應(yīng)用(第五版)第10章綜合案例
- 高考理綜試題答題技巧方法!課件
- 購(gòu)物中心租金修正測(cè)算
- 行書典范《蘭亭序》鑒賞PPT共32頁(yè)課件
- 一體化泵站檢測(cè)報(bào)告(共6頁(yè))
評(píng)論
0/150
提交評(píng)論