首頁 > 文章中心 > 數學建模算法與程序

      數學建模算法與程序

      前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇數學建模算法與程序范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。

      數學建模算法與程序

      數學建模算法與程序范文第1篇

      關鍵詞:工程計算能力;計算基礎教育;理工類

      中圖分類號:G642 文獻標識碼:B

      1問題的提出

      我國大學計算機基礎教育經過了三十幾年的發展歷程,幾代教育工作者為此付出了辛勤勞動。他們針對我國理工類大學生的特點和中國國情,在當時的歷史條件下提出了一系列培養大學生計算機操作技能的教學方法,形成了具有中國特色的計算機基礎教育理念和體系。但是,大學計算機基礎教育發展到今天如果仍然停留在以計算機基本操作為主體的教學模式上,那將與社會發展對大學生的要求很不適應。今天我們更應該強調培養大學生尤其是理工類大學生以計算機為工具的工程計算能力,并將這種能力與各自的專業結合起來,真正起到為專業服務的作用。由此我國的大學計算機基礎教育應該轉變為大學計算基礎教育。

      八十年代初期以來,我國計算機基礎教育成為大學里的公共教育,面向全體大學生開設計算機基礎教育公共課,并由專門的教學小組(教研室或計算中心)組織教學,依不同專業確定教學內容,因此理工類大學生計算機基礎教育的教學內容基本統一。教育部教學指導委員會和全國高等學校計算機基礎教學研究會相繼出臺一些教學指導性意見,如2004年教育部高等學校非計算機專業計算機基礎課程教學指導分委員會出臺的《關于進一步加強高校計算機基礎教學的幾點意見》(簡稱《白皮書》)以及1997年教育部高教司頒發的《加強非計算機專業計算機基礎教學工作的幾點意見》(簡稱155號文件),雖然針對不同學科和專業有不同的教學要求,但是培養目標和內容主要以教導學生如何操作好計算機或者說如何提高大學生計算機操作技能為主體,沒有強調大學生工程計算能力的培養。以典型的理工類大學生為例,大學期間的計算機基礎教育主要開設“大學計算機基礎”和“程序設計”兩門課程,在“大學計算機基礎”課程中,主要介紹計算機的基本組成、環境以及常用軟件平臺,在“程序設計”課程中也只是講解編程的基本方法,其他課程更趨向于計算機專業類學生的課程。筆者認為,開設這些課程對于提高大學生計算機操作技能和計算機應用能力起到了重要作用,但是在計算機基礎教育的教學體系中沒有涉及工程計算能力培養的內容,沒有闡明工程計算能力與計算機基本知識和應用能力之間的關系,實際上沒有認識到計算機基礎教育的根本問題是要以培養大學生現代工程計算能力為目標。

      隨著計算機技術的迅速發展和廣泛應用,作為我國高層次人才――大學生的培養,尤其是規模最大的理工類大學生的培養,應培養他們具有將計算機應用與自己專業知識密切結合的能力,這種結合實質上就是要增強大學生以計算機為基本工具的工程計算能力,而不是簡單地操作計算機或使用某一個軟件?;仡櫸覈陙淼挠嬎銠C基礎教育,大部分精力花在教大學生如何提高計算機操作技能上,如:Windows基本操作、Office軟件的使用等,沒

      作者簡介:鄒北驥(1961-),男,江西南昌人,博士,教授,博士生導師,研究方向為計算機教育、計算機圖形學與數字圖像處理。

      有涉及工程計算能力的培養。造成這種結果的主要原因有以下幾個方面:(1)計算機技術雖然發展很快,但歷史不長,對于以計算機為工具的工程計算能力的培養沒有深刻的認識。(2)存在誤區,誤以為培養大學生的操作技能就能提高學生應用計算機的能力。(3)師資問題。大部分從事計算機基礎教育課程的教師都是學計算機專業出生的,對于計算機與其它專業的融合問題缺乏了解。(4)大部分從事計算機基礎教育的教師很少參與實際科研項目的開發,缺乏軟件開發經驗,不能體會計算機軟件開發中的計算問題和工程計算能力之間的關系。

      如果說這種現象的出現是由于歷史造成的,或者說是歷史發展的必經之路,那么從現在開始,我們就應該高度重視大學生工程計算能力的培養,真正提高他們運用計算機的能力,發揮計算機技術在其它各專業領域的作用。

      2工程計算能力培養

      什么是工程計算能力?本文所述的工程計算能力是以現代計算機為工具的工程計算能力,也就是以計算機為工具的計算方法的掌握和運用能力。多年以來,“計算方法”或“數值分析”課程是理工類大學生一門重要的基礎課,它教給學生用數值求解方法解決工程問題,其中涉及到基本的以計算機為工具的計算方法,如:遞歸求解等。然而計算機技術發展到今天,特別是軟件開發技術和方法的發展,使得以計算機為工具的計算方法變得更加豐富和神奇,非計算機專業,尤其是理工類專業的大學生應該盡可能多地掌握這些方法,以便他們能更好地融入到自己的專業領域。筆者認為,理工類大學生工程計算能力培養應包含以下幾個方面。

      2.1建模能力

      建模能力實質上就是數學建模的應用能力。在理工類大學計算機基礎教育中,應該大力加強數學建模方法的學習,大力加強數學建模訓練。理工類大學生面臨不同領域工程問題,應用計算機求解這些問題的基礎是數學建模。在過去幾十年的計算機基礎教育中,我們忽略了這一方面的培養,使得大學生的計算機應用能力受到限制。因此從培養大學生尤其是理工類大學生工程計算能力的角度出發,應普遍開設數學建模課程。

      2.2數據組織能力

      工程計算能力培養的第二個方面是數據的組織能力。在計算機專業人才的培養中,是通過“數據結構”課程來教學生基本的數據組織方法。筆者認為,對于非計算機專業尤其是理工類專業的大學生,應該為他們開設“數據結構”課程。我們應該認識到,“數據結構”課程中介紹的數據組織方法,如:堆棧、隊列這些基本結構和樹、鏈表等這些復雜結構絕不只是計算機專業學生需要學習的,非計算機專業尤其是理工類計算機專業學生同樣需要學習,而且對于他們來講,這門課程更為重要。有一種觀點認為:“數據結構”課程有較大難度,一般理工類學生學習起來比較困難。其實不然,歷屆研究生入學考試成績表明,理工類大學生大多通過自學學習“數據結構”課程,而且相當一部分學生成績優異。

      數據結構是程序設計的基礎,沒有掌握好數據的組織方法,不會運用數據結構表達工程問題中的數據,又怎么可能學好程序設計課程?又怎么能編寫好程序?幾十年來的計算機基礎教育強調了程序設計能力的培養,但沒有開設“數據結構”課程,實際上像一座空中樓閣,基礎很不牢固。

      2.3算法設計能力

      算法是計算機計算的步驟描述,是實現計算機求解問題的關鍵。培養理工類大學生的工程計算能力,需要教給他們基本的算法思想和常用的算法。例如:基本的算法包括排序、遞歸、查找等。設想一個理工類大學畢業生,如果大學期間對于計算機常用算法理解得比較深刻,應用得比較好,對于他在實際工作中利用計算機解決問題就會變得輕而易舉。反之,如果對基本算法一無所知,如:不知道什么是遞歸算法,不知道什么是排序算法,那么對一些基本的工程問題他都會一籌莫展,甚至無法求解。因此基本算法的學習對于理工類大學生而言是非常重要的。

      2.4程序設計能力

      工程計算能力培養的第四個方面是程序設計能力,它是工程計算能力的實際載體,用計算機解決實際工程問題最終要落實到計算機程序的開發,也就是人們常說的編程。在學習和掌握數學建模、數據結構和算法設計的基礎上,以一門具體的程序設計語言為模板,學習程序設計的基本方法,學習程序的基本結構和運行規律,掌握順序結構、分支結構和循環結構等對于理工類大學生工程計算能力的提高是極其重要的。

      3計算機基礎教育與計算基礎教育

      面向非計算機專業大學生的計算機教育一直沿用“計算機基礎教育”這個名稱。筆者認為:“計算機基礎教育”是圍繞計算機本身的計算機科學與技術方面的專業基礎教育,面向非計算機專業學生的計算機教育應該用“計算基礎教育”這個名稱,其本質是要培養非計算機專業大學生以現代計算機為基本工具的工程計算能力,而不是關于計算機本身的科學與技術。長期以來,我國從事非計算機專業計算機教學的教師忽視了這一細節,有意或無意地將非計算機專業大學生的計算機教育引向了計算機科學與技術專業教育的道路,越來越多的課程設置與計算機科學與技術專業的核心課程一致了,如:“計算機網絡技術”、“微機接口原理”、“多媒體技術”等。如此下去不僅大大增加了理工類大學生課程學習的負擔,而且沒有提高理工類大學生工程計算能力。因此我們需要從觀念和教學理念上轉變,要清楚地認識理工類大學生工程計算能力的培養并不需要為計算機專業類學生開設的那些課程內容,只是需要圍繞“數學建模”、“數據結構”、“算法設計”和“程序設計”四個方面的基礎課程。

      4實施方案建議

      綜上所述,面向理工類大學生以計算機為工具的工程計算能力培養需要從數學建模、數據結構、算法基礎和程序設計四個方面進行,所有的教學要求、內容和目標都應該圍繞這四個問題展開。筆者建議,針對理工類大學生的計算基礎教育課程體系可以有兩個方案,一個方案是緊縮方案,開設的課程概括上述四方面內容,設置兩門課程,分別為“大學計算基礎”和“大學計算機程序設計”;另一個方案是擴展方案,開設四門課程,分別對應上述四個方面的內容,即“大學數學建模方法”、“數據結構基礎”、“算法基礎”和“程序設計基礎”。兩種方案的內容、要求和課時見表1和表2。

      表1方案1(壓縮型)

      課程名稱 主要內容 要求與目標 學時建議

      大學計算基礎 1.計算機的基本知識 掌握計算機基礎知識 80

      2.數學建模方法介紹 掌握基本的數學建模方法

      3.數據結構基礎 掌握常用的數據結構

      4.算法基礎 掌握常用的算法

      大學計算機程序設計 1.程序的基本概念

      2.C語言程序設計 掌握計算機程序的原理和運行方式

      掌握C語言編程方法 48

      表2方案2(擴展型)

      課程名稱 主要內容 要求與目標 學時建議

      大學數學建模方法 1.計算機的基本知識 掌握計算機基礎知識 80

      2.數學建模方法介紹 掌握基本的數學建模方法

      數據結構基礎 1.數據的組織方法 掌握數據的組織方式 48

      2.基本的數據結構及其應用 掌握隊列、堆棧、鏈表等基本數據結構的應該

      算法基礎 1.算法的基本概念 掌握算法的思想、流程、表達方式及其與程序之間的關系 48

      2.基本算法及其應用 掌握常用的算法

      程序設計基礎 1.程序的基本概念

      2. C語言程序設計 掌握計算機程序的原理和運行方式

      掌握C語言編程方法 48

      5結束語

      教育理念和觀念的轉變需要全體教育工作者形成共識,提出的方案需要通過論證和實踐檢驗,建議相關部門

      組織一部分長期從事非計算機專業計算機基礎教育的教師、學者進行研討,針對理工類大學生計算機基礎教育和計算基礎教育的內涵進行討論,明確理工類大學生計算機基礎教育因面向工程計算能力培養,文中提出的實施方案可在高水平大學試點。

      參考文獻:

      數學建模算法與程序范文第2篇

      關鍵詞:系統模擬與仿真;課程教學;實例演示

      中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2010)22-6369-03

      Simulation Exemplars for System Simulation Course

      HUANG Han-ming

      (College of Computer Science and Information Engineering, Guangxi Normal University, Guilin 541004, China)

      Abstract: This paper briefly narrates the general concepts of system and various system theories, and introduces the necessity of system simulation for the researches of systems. Then the teaching purpose and main contents of system simulation course are given. After that, some understandings in this course teaching experiences are presents. Finally, several having applied measures which might be helpful to enhance the effect of teaching are discussed:reinforce simulation principles teaching, guide students broadening scope of knowledge, use simulation case studies as education emphases

      Key words: system simulation; course pedagogy; exemplar demonstration

      系統是一個與環境相對的概念,任何相互聯系、相互影響、相互作用的部分所組成的一個整體皆可稱為一個系統。系統的各個組成部分之間,通過物質、能量和信息的交換而相互關聯、相互影響、相互作用;系統與環境之間,亦存在著物質、能量和信息的輸入、輸出關系。早在古代中國和古希臘的哲學中,就包含樸素的系統思想。隨著社會的發展和近、現代科學技術的興起與進步,在軍事、工程、經濟、社會等諸多領域,都存在著大量的有關系統的問題。為解決這些問題,20世紀40年代相繼產生了運籌學、控制論、信息論和一般系統論等系統理論;20世紀40年代以來,系統理論被大量應用于工程實踐,系統工程應用學科迅速發展,同時其他科學技術學科也在不斷獲得新的突破與發展,從而對各種系統的性質和規律的認識在不斷深入,產生的一些新的系統理論:耗散結構理論、協同學、動力系統理論、混沌理論、突變論等。

      當前,對復雜及復雜適應系統的研究是系統科學這門學科的熱點。國際上,有關復雜系統的系統科學研究可分為三個主要學派:“歐洲學派” ―― 以非線性自組織理論為核心內容的系統理論(系統元素為無機物,源于物理、化學系統);“美國學派” ―― 以圣菲研究所(SFI)為代表的理論框架(系統元素為有機物,具主動性,源于生物系統);“中國學派” ―― 以開放的復雜巨系統理論為核心的體系(系統元素為“人”,源于大工程協作系統)。其實,這三個主要學派的主要區別只是從系統的不同層次為出發點去把握系統的性質和規律;它們的共同點可認為是要從整體上去認識問題和解決問題,對系統的許多性質,部分和的累加并不一定等于整體,整體很可能大于部分和,由于涌現性,整體會出現一些任一部分所不曾擁有的新性質。

      由于現實系統的廣泛性、多樣性和復雜性,如果直接對系統進行觀測、實驗和研究,可能會對真實系統造成破壞性影響而且可重復性很可能也差,或者用真實系統試驗時間過長,或費用太昂貴。對于工程系統,在系統建立之前需要對其結構、行為特性開展研究,但真實系統尚不存在。這些情況下,系統的模擬仿真是唯一可行的研究手段。

      1 系統模擬仿真課程的教學目的

      系統模擬仿真課程的教學目的為:培養學生科學分析和解決各類學科中出現的一般復雜系統問題的能力,掌握多種解決各種復雜系統問題的研究、設計與分析方法。通過本課程的教學,希望學生能了解系統模型的形式化描述;掌握連續系統的時域與頻域建模仿真方法:龍格-庫塔法、線性多步法、離散相似法、替換法、根匹配法等;了解離散事件系統的一般概念和離散事件系統的建模工具――Petri網,掌握經典的離散事件系統:單服務臺與多服務臺排隊系統,庫存系統等的仿真方法;掌握離散事件系統的仿真輸出數據的分析方法;了解現代仿真技術――虛擬現實技術的一般概念、分析建模方法和和基于Agent的的建模方法及Swarm仿真和分布建模仿真。

      系統科學專業碩士點的設立是為了滿足國家和廣西的經濟和社會發展的需要,旨在培養高層次的復合型研究與管理人才。系統科學專業碩士點有兩個專業:系統理論和系統分析與集成,其中系統理論專業從2004年起開始面向全國招生,系統分析與集成專業從2006年起招生。系統模擬仿真課程是系統科學專業碩士生的必修課程,本人從2006年起到目前為止連續5年擔任了本門課程的任課教師,在此對這幾年的教學實踐作些總結,以圖對本課程后續的教學水平的提高和教學效果的完善能有所幫助。

      2 課程基礎建設

      專業課程與選修課程的組成,不同課程的先后安排和教材的選擇對教學目的之達成與教學效果之提高至關重要。系統模擬仿真課程的先修課程為:控制理論,概率統計,至少一種通用程序設計語言(如:C/C++程序設計語言和Matlab編程語言)。這幾年教學過程中的有些學期,在本課程剛開始時,有些學生反映從未接觸過其中一門或兩門先修課程,應學生的要求,用一、兩次課程的時間介紹相應課程,解釋其中的重要內容,并鼓勵學生自學相應課程,難懂之處同學之間互相探討,并及時向老師請教。教材選擇的是美國多家高校系統仿真類課程普遍采用的, 由清華大學出版社出版的原版影印英文教材[1]。該教材著眼于離散事件系統仿真的原理和方法學的闡述,基本概念通過實例加以闡述展開,對仿真方法、技術談論深入,對新技術發展方向描述明確。該教材以C/C++和Fortran為仿真算法的主要編程語言。

      開始的連續2年只使用該教材進行教學,有些學生反應跟不上教學進度,仔細了解,跟不上的原因是難以完全讀懂教材中的英文內容和從未學過C/C++和Fortran語言。為讓每位學生都能掌握好基本仿真方法、技術而又不失去對仿真前沿研究的了解,后增加系統科學與系統的一般理論及其工程應用[2]的介紹,連續系統仿真原理[3]的介紹和較容易編程實現的仿真實例教學[4]。作業與考試方式、頻次的安排設置對加強學生的學習動力和提高學習效果起著極大的作用,除了常規作業和期末考試外,增加了每學期每位學生上講臺講解至少30分鐘提前布置的、要求學生課后完成的仿真建模實例小作業并接著深入討論。還安排了學期結束時應完成的較復雜的系統仿真編程大作業,并撰寫一份系統仿真應用的研究報告。

      3 提高教學效果的措施

      3.1 加強仿真原理教學

      現代仿真是基于計算機、利用合適的算法通過模型(物理的或數學的)以代替實際系統進行實驗和研究的一門學科和實驗技術。 仿真過程中系統、模型與計算機(包括軟、硬件)的關系如圖1所示。這里模型通常是指數學模型。常用的數學模型[5]有:初等模型、確定性連續模型、確定性離散模型和隨機模型。如該圖所示,系統建模、仿真建模和仿真實驗為系統仿真的三個基本活動。

      系統的模型是實際系統的簡化或抽象,分物理模型與數學模型。系統模型的形式化描述一般可表述為:

      S=(T,U,Ω,X,Y,δ,f)

      其中:T―時間基, 其若為整數,則系統S為離散系統,若為實數,則系統S為連續系統;U―輸入集,U?奐Rn,n∈I+;Ω―輸入段集,某時間內的輸入模式,是(U,T)的子集;X―系統狀態集,是系統內部結構狀態建模的核心;Y―系統輸出集;δ―系統狀態轉移函數;f―系統輸出函數,可表達為:f:X×U×TY。

      實際建模時,模型描述的詳細程度可用如下3個水平來表示:(1)行為水平,只知系統的輸入輸出,系統被視為“黑箱”;(2)分解結構水平,系統輸入輸出及結構組成已知,系統被視為多個簡單“黑箱”的組合;(3)狀態結構水平,系統的輸入輸出,內部狀態及轉移函數皆為已知。要全面了解仿真過程的核心內容,需要較全面的數學知識、計算方法知識和編程語言知識。

      由圖1可知,系統仿真的第1步是建立系統的數學模型。雖然另有一門課程―《數學模型》(或稱《數學建?!?(應用數學專業課程)專門介紹個各種數學建模方法,如不特別介紹,本專業學生或許不知有該課程的存在。在建立好系統數學模型的基礎上,可能需要利用《計算方法》中的專門知識,基于學生熟悉的編程語言(Fortran,C/C++, C#或Matlab等),如學生對任一編程語言都不了解,推薦學生優先選擇較容易入門且有大量編程工具箱可資利用的Matlab編程語言,把數學模型轉化為計算機算法程序,得到仿真模型。在設置好各可調參數條件下運行仿真模型(即仿真算法程序),即可得到一系列的輸出,這些輸出要進行各種分析[1],如條件允許,并應該與實際系統的相應數據作對比分析。

      3.2 引導學生擴展知識面

      仿真技術廣泛應用于工程領域--機械、航空、電力、冶金、化工、電子等方面,和非工程領域DD交通管理、生產調度、庫存控制、生態環境以及社會經濟等方面。幾乎滲透于每一個需要計算的領域和學科,相關文獻十分豐富。許多學術期刊都刊登有系統模擬仿真方面的研究論文,其中系統科學領域的期刊,尤其值得同學們去了解和學習,以擴展知識面和了解建模仿真方面的前沿研究。

      應該特別留意的期刊有:中科院數學與系統科學研究院期刊學會(/)主辦的《系統科學與數學》(中) ,《系統科學與復雜性》(英)和《系統工程理論與實踐》,中國系統仿真學會與航天科工集團706所主辦的《系統仿真學報》,美國伊利諾伊大學復雜系統研究中心主辦的《復雜系統 》,美國UL控制與系統工程學會和弗羅茨瓦夫理工大學主辦的《系統科學 》,IEEE的《智能系統》,圣菲研究所的《復雜系統學報》等。

      每年都有多次由不同機構發起、在不同國家舉辦的有關系統仿真的國際學術會議。通過各個級別的系統科學學會或系統仿真學會網站,或直接通過搜索引擎(如, )可檢索到最近舉辦過的系統仿真會議介紹或論文,以及即將舉辦的系統仿真會議的地點、時間和投稿須知, 如:國際系統科學學會(International Society for the Systems Sciences, ISSS)網站上 /world/index.php 有當年的年度會議信息和最近幾年的會議資料。

      3.3 以仿真實例教學為教學重點以提高學生的實際分析問題和解決問題的能力

      課堂上詳細講解一些較簡單的系統問題的仿真實例,可以使學生逐步明確并不斷加深對建模仿真整個流程的理解:從分析系統結構或行為導出系統的數學模型,再根據所導出的數學模型使用某種編程工具實現仿真建模,形成相應的仿真算法程序,最后運行仿真算法程序,分析結果并與實際系統相應數據對比。

      編程工具的介紹也要兼顧學習效率和算法理解徹底性, 教學過程中發現如只介紹通用編程語言(如C/C++)實現仿真算法程序,學生表示是可以徹底理解所討論問題的算法及代碼;但過后一段時間,再面對類似但稍微復雜些的問題,學生就顯得有些不知如何下手改寫原來的程序以解決當前的問題。而如使用Matlab .m源碼文件實現仿真代碼,學生基本能正確改寫程序。如使用更高抽象層上的Simulink模型實現仿真,學生可以輕松解決類似新問題。現在采用初次碰到典型案例問題時,采用C語言實現仿真算法,再次碰到類似問題時使用Matlab.m源碼,更多的或更復雜的仿真案例,則采用Simulink構建仿真模型。

      所選擇的仿真實例兼顧確定與隨機系統,連續與離散系統。所列舉過的離散隨機系統有:單服務員排隊系統(M/M/1)和多服務員排隊系統(M/M/N)的仿真;多工作站排隊系統的仿真;采用不同排隊策略的銀行排隊系統仿真。 列舉過的連續確定系統有: 機構運動仿真;傳染病感染傳播仿真;森林救火策略仿真;戰斗減員仿真;游擊戰策略仿真;香煙有害物質進入人體體內的累積量仿真以及生物種群規模漲落(Volterra模型)仿真等。

      下面以機構運動仿真和戰斗減員仿真為例,對建模仿真的整個過程進行簡要描述:

      仿真實例一.曲柄滑塊機構的運動學仿真:

      對圖示單缸四沖程發動機中常見的曲柄滑塊機構進行運動學仿真。已知連桿長度:r2=0.1m,r3=0.4m,連桿的轉速:ω2=2,ω3=3,設曲柄r2以勻速旋轉,ω2=50r/s。初始條件:θ2=θ3=0。仿真以ω2為輸入,計算ω3和1,仿真時間0.5s。

      利用Simulink建模如下:

      模塊程序運行過程中自動顯示如圖4所示動畫。

      所求仿真時間0.5s內1和ω3的變化圖像如圖5。

      圖5 0.5s內的滑塊運動速度1 (上圖)和連桿轉速ω3(下圖)

      仿真實例二.戰斗減員問題仿真:

      該戰爭模型只考慮雙方兵力的多少和戰斗力的強弱。 假設:(1) 用x(t)和y(t)表示甲乙交戰雙方時刻t的兵力,不妨視為雙方的士兵人數;(2)每一方的戰斗減員率取決于雙方的兵力和戰斗力,用f和g表示; (3)現只對甲方進行分析。甲方士兵公開活動,處于乙方的每一個士兵的監視和殺傷范圍之內,一旦甲方某個士兵被殺傷,乙方的火力立即集中在其余士兵身上,所以甲方的戰斗減員率只與乙方兵力有關,可以簡單地設f與y成正比,即f=ay。a表示乙方平均每個士兵對甲方士兵的殺傷率(單位時間的殺傷數),稱乙方的戰斗有效系數。a可以進一步分解為a=rypy,其中ry是乙方的射擊率(每個士兵單位時間的射擊次數),py是每次射擊的命中率。由這些假設可得本問題的連續時間模型(方程):

      又設系統輸入為甲乙方的射擊率rx,ry,每次射擊的命中率px,py,雙方初始兵力x0,y0。系統輸出為哪一方獲勝以及獲勝時的剩余兵力。要求有輸入、輸出界面及仿真過程。如何對微分方程進行求解,并判斷哪一方獲勝是本問題仿真的關鍵。

      使用GUIDE(圖形用戶接口開發環境)接口實現以上簡單的一階微分方程。

      調入該模型程序,按F5運行,出現如圖6所示界面。

      在界面中輸入參數,點擊“執行仿真計算”按鈕,就會在結果欄中顯示哪一方獲勝,及其剩余人數。

      設甲乙雙方射擊率都為0.03,初始兵力都為1000,每次射擊的命中率分別為0.023和0.026。執行仿真計算后可知是“乙方獲勝”,剩余兵力為339。如圖7所示。

      4 總結

      努力加強系統仿真原理教學,以較簡單的經典系統建模實例的仿真模型的建立為依托,讓學生在仿真實例的課堂教學中逐步明確并不斷加深對建模仿真整個流程的理解。仿真技術廣泛應用于工程領域和非工程領域,相關文獻十分豐富,涵蓋面十分廣闊的,而課堂教學的課時十分有限。如果我們把系統模擬與仿真這門學科比作是一片森林,文獻可看作是其中的樹木,仿真的實際應用則可看作生活于森林中的動物,當然動物也依賴于這片森林的鄰域森林(其他學科)。課堂教學只是帶學生來到這片森林邊沿,仿真原理、理論教學是引導學生仔細觀察了眼前的樹木,而課堂仿真實例教學則是與學生一起欣賞了樹枝上美麗的小鳥。 對這片森林更深入的了解需要學生自己出發去跋涉的、去游歷、去探索、去欣賞。當然,帶學生到這片森林應該先哪個邊沿,才能讓學生對這片森林有準確的了解并迅速喜歡上這片森林,需要帶領者對這片森林整體的和更準確的了解,也需要到過這片森林的同學們的意見反饋。

      參考文獻:

      [1] Law A M.Simulation Modeling and Analysis[M].北京:清華出版社,2000.

      [2] 許國志.系統科學與工程研究[M].上海:上??茖W技術出版社,2001.

      [3] 肖田元.系統仿真導論[M].北京:清華大學出版社,2001.

      數學建模算法與程序范文第3篇

      當需要從定量的角度分析和研究一個實際問題時,人們就要在深入調查研究、了解對象信息、作出簡化假設、分析內在規律等工作的基礎上,用數學的符號和語言作表述來建立數學模型。

      建模比賽的一般分工是數學模型的建立、程序編寫與擬合、論文的敘述。其中論文是評定參賽隊伍成績的好壞、高低、獲獎級別的唯一依據,并且也是每組參賽期間成果的結晶,這是相當重要的一部分。那么今天我們就來分享一下有關建模論文的寫作的一些注意事項。

      首先

      論文的評閱原則是

      假設的合理性 ;建模的創造性;

      結果的合理性 ;表述的清晰性。

      在寫作的時候可以按照這些要點來給自己一個大概的估計。

      我們在寫論文的時候,一般是按如下的結構:

      1.摘要

      2.問題的敘述,問題的分析,背景的分析等

      3.模型的假設,符號說明

      4.模型的建立(問題分析,公式推導,基本模型,最終或簡化模型等)

      5.模型的求解

      6.模型檢驗:結果表示、分析與檢驗,誤差分析,……

      7.模型評價:特點,優缺點,改進方法,推廣……

      8.參考文獻

      9.附錄:計算框圖、詳細圖表,……

      摘要是整篇論文最精華的部分,也是評閱人最關注的部分。在寫摘要時,我們首先要對這個模型進行數學歸類,并且通過之前和隊友一起進行建模過程中對整體思路有著比較清楚的了解,然后闡述模型的優點、算法特點等,最后對主要結果進行說明,即回答題目所問的全部問題。

      對于模型的建立,基本原則是實用、有效,因為我們建立模型是為了解決實際問題的,而不是追求單純理論數學上的“高大上”。能用初等方法解決就不用高級方法;能用簡單方法解決就不用復雜方法;能用被更多人看懂、理解的方法就不用只能少數人看懂、理解的方法。

      數學建模鼓勵創新,一般出現在模型本身、簡化優化的好方法好策略、模型求解、模型檢驗甚至是模型推廣中。切忌為了標新立異而離題。在闡述建模過程時盡可能使用專業的術語,分析要中肯、確切,表述簡明,關鍵步驟要列出。

      數學建模算法與程序范文第4篇

      關鍵詞:MATLAB;BP神經網絡;多元非線性系統;訓練算法;學習精度

      中圖分類號:TP312文獻標識碼:A文章編號文章編號:16727800(2013)0010006602

      基金項目:佛山科學技術學院重點項目(2010)

      作者簡介:劉曉莉(1961-),女,佛山科學技術學院副教授,研究方向為應用數學。

      0引言

      在科學研究和生產實踐中,對具有表現系統特征或運行狀態的離散數據進行建模,用于系統預測、評價等,是科學決策和決策系統建立的重要基礎。由于大多數研究對象普遍具有多變量且依從高度非線性關系等特征,因此多元非線性系統建模極其重要。

      人工神經網絡是由大量簡單的處理單元(神經元)廣泛地互相連接形成的復雜非線性系統。它不需要任何先驗公式,可直接從訓練樣本(離散數據)中自動歸納規則,提取離散數據之間復雜的依從關系(可以是高度非線性關系),儲存于網絡權重之中,從而建立研究問題的神經網絡模型。其中由Rumelhart提出的多層前饋神經網絡,由于采用誤差反傳的學習算法,被稱為BP網絡,其應用非常廣泛。在理論上已經證明具有三層結構(一個隱含層)的BP網絡能夠逼近任何有理函數[1]。

      1MATLAB中BP網絡訓練算法

      MATLAB中的神經網絡工具箱由許多子程序組成,這些子程序已完成了神經網絡算法中所涉及的許多運算和操作,使用者根據需要調用相關函數即可。常見的BP網絡訓練算法有traingda;traingdx(變學習率算法)、trainrp(彈性BP算法)、trainbfg 或traincgf(變梯度算法)、trainoss(類Newton算法)等。對于一個實際問題,選用那種訓練方法最快捷,樣本的擬合精度高低與否等很難判斷,它取決于許多因素,包括問題的復雜程度、學習樣本的多少、隱含層的節點數目、誤差目標等,所以,網絡的結構和參數的設計是關鍵。

      2案例與建模

      表1所列的樣本數據是3個自變量、1個因變量(預測或控制變量)的非線性系統。現用三層BP神經網絡模型逼近存在于樣本數據間的函數關系,其模型為y=ANN(x1,x2,x3), ANN是一個非線性函數。此模型為隱含表達式,即不能用通常的數學公式表示,故稱為“知識庫”。

      程序中,p、t是用于學習樣本輸入和目標(實際)輸出矩陣;函數newff的第一個參數為樣本輸入的最小值與最大值構成的矩陣;輸入層與隱含層、隱含層與輸出層的節點數分別為s1、s2,其傳遞函數分別為tansig(S型)和purelin(線性);訓練算法trainlm 的主要參數是: show、lr、epochs、goal、min_grad、time等,如果訓練次數超過epochs,誤差低于goal,梯度值低于min_grad或訓練時間低于time,訓練就結束;newff的返回值net為一個可訓練的BP網絡,函數train用于訓練網絡,它將p和t不斷作用于該網絡以調整網絡權值,從而減小網絡輸出與目標輸出間的差距;train函數的返回值為訓練后的結果。函數sim模擬網絡,它接受樣本輸入、返回網絡輸出。

      事實上,BP神經網絡初始權值對訓練結果的影響較大,即使是微小的改變。由于MATLAB的網絡初始化是隨機的,因此程序在每次運行后得到的訓練網絡是不同的,即“知識庫”是不同的,包括實際迭代次數、網絡輸入和目標輸出的均方差MSE。為此,特取B組數據樣本,用來檢驗訓練后的網絡可靠性,即在程序中增加以下語句:

      3分析

      通過試驗發現,訓練后的網絡一般對學習樣本有很高的逼近精度,但即便是MSE遠遠小于最小誤差goal值,對那些沒有用于網絡訓練過程的樣本(非學習樣本)而言,卻可能出現誤差較大的反映。所以選擇訓練算法、確定主要參數及改變節點數s1的取值等是極其重要的,需要進行調整。當F檢驗值越大,MSE值越小,訓練后的網絡對學習樣本的擬和精度越高;網絡輸出和實際輸出的方差Sc值越小,則對非學習樣本的擬和精度越高。多次試驗中的結果見表3。其中,序號為5的試驗中,學習樣本的MSE沒有達到設定的最小誤差goal=1e-4,訓練后的網絡對學習樣本和非學習樣本擬和精度較低;序號為2的訓練網絡對樣本擬和精度最高。試驗表明,這種方法在提高網絡的學習精度等方面是極其有效的。

      4結語

      多元非線性系統的BP神經網絡模型能最大限度地概括原自變量系統中的數據信息,又能對因變量具有較好的解釋能力。針對此案例的多次試驗表明,各種算法中,trainlm算法的性能較好;對于大小適中的網絡,從訓練的迭代次數來看,trainlm是最快的一種算法;對于大網絡,一般選用trainrp算法或是某個變梯度算法比較好;對于小網絡,則可選擇trainbfg。

      人工神經網絡能同時描述多個控制或預測量的非線性系統。例如,若預測或控制因變量為2個,即目標輸出為兩列矩陣,則在上述程序中將網絡的輸出節點取為2即可,多于兩個依次類推。人工神經網絡適用于關系復雜的多元非線性系統建模,具有誤差小、精度高的優點。

      參考文獻:

      [1]王學輝,張明輝.MATLAB6.1最新應用詳解[M].北京:中國水利水電出版社,2001.

      [2]陳楊,王茹,林輝.MATLAB6.0版本中神經網絡工具箱訓練算法的使用與比較[J].電腦與信息技術,2002(3).

      數學建模算法與程序范文第5篇

      1摘要

      “摘要”是對整篇論文的縮寫,建立在通讀全文、理解全文的基礎之上。評審專家評閱論文時,總是先看摘要,摘要給專家留下第一印象,是評獎的敲門磚?!罢卑? 問題背景,要達到什么目標,解決問題的思路、方法和步驟,模型的主要內容、算法和結論,模型的特色。好的“摘要”能很快吸引評審專家的注意力,它建立在多次修改、反復推敲的基礎之上,具有統攬全文、層次分明、重點突出、文筆流暢的特點。

      2問題提出

      “問題提出”也可寫作“問題重述”。是將競賽試題所給定的問題背景和解題要求用論文書寫者自己的語言重新表述。在美國的數學建模競賽中,這一部分稱為 Background或者 Introduction。

      3模型假設

      任何問題的求解都有它的背景和適用范圍,建模試題來自于現實問題,同樣受到各種外在因素的約束?!澳P图僭O”就是界定一個范圍,或給出幾個約束條件,一使得問題的解決過程不至于太復雜,二使得其他人在使用該模型時知曉它的適用范圍。“模型假設”不是憑空臆造的,是在建立模型的過程中挖掘、提煉出來的。

      4符號說明

      數學符號是數學語言的基本元素,具有抽象性、準確性、簡潔性的特點。數學模型由數學符號組成,模型的求解通過符號的運算來完成??梢姡诮祵W模型時根據需要隨時引入必要的數學符號是多么重要的事情。根據競賽要求,在建立模型的過程中所引入的數學符號要在本模塊給出說明,最好的說明方式是列一個表格。

      5問題分析

      眾所周知,解決數學問題最難、最重要的一步就是明確解題思路,確定解題方法。而“分析”,則是邁出這一步的關鍵。數學建模也這樣。建模試題往往由幾個子問題組成,這時的“問題分析”既要有全局分析,也要有局部分析?!皢栴}分析”包括: 分析解決該問題需要用到哪些專業背景知識; 分析解決問題的切入點、重點和難點; 分析解決問題的思路、方法、工具和步驟。這樣的分析對于“如何建立模型? 采用哪些數學理論或公式? 怎樣求解? 會遇到哪些困難?”具有指導作用。

      6模型建立

      “模型建立”就是將原問題抽象成數學的表示式,主要步驟:

      第一步,根據問題的實際背景和專業背景,選擇適當的數學理論或工具。例如,如果是變化率問題,則考慮借助于導數或微分方程的手段; 如果涉及面積、體積、曲線弧長、功、流量等幾何量或物理量,則考慮運用積分元素法,將問題轉化為定積分、或重積分、或曲線曲面積分; 如果是隨機數據的處理,則考慮統計分析的方法。

      第二步,確定常量、變量,用符號來表示這些量。

      第三步,建立數學模型,即建立常量、變量之間的關系。這種關系可以是方程、函數或表格。

      7模型求解

      少數模型可能是簡單的數學式子,求解起來比較容易。有些模型雖然也可用數學式子表示,但其中含有難以析出的參數,求解很困難,有的模型面對的就是一堆數據,對于這兩種情形,就需要借助于軟件 Matlab,Mathematic,Maple,SAS,SPSS中的某一個編程求解。

      8模型檢驗

      數學建模競賽的題目來自于科技、工程、經濟、社會等領域的實際問題。由于問題的復雜性和方法的局限性,所建立的數學模型與實際情況之間會有差距,模型可靠性的檢驗成為必然。為了檢驗提交的數學模型與實際情況吻合的程度,競賽題中往往會提供一些來自于背景問題的實驗數據?!澳P蜋z驗”就是將給定的數據代入模型,計算相對誤差和絕對誤差,如果誤差較大,就要返回去調整模型以提高可靠性。

      9模型評價

      国产精品亚洲专区无码WEB| 亚洲成_人网站图片| 亚洲永久在线观看| 亚洲精品国产福利在线观看| 亚洲AV无码乱码在线观看富二代 | 亚洲av网址在线观看| 亚洲中文无韩国r级电影| 亚洲国产精品国产自在在线| 亚洲AV无码乱码在线观看性色扶| 国产亚洲日韩在线a不卡| 亚洲Av无码乱码在线播放| 小说专区亚洲春色校园| 亚洲AⅤ无码一区二区三区在线 | 日本亚洲欧洲免费天堂午夜看片女人员 | 国产精品久久久久久亚洲影视| 亚洲熟妇无码八V在线播放| 亚洲中文字幕无码久久2020| 国产亚洲精品影视在线| 亚洲欧洲无卡二区视頻| 亚洲Av永久无码精品黑人| 亚洲色欲色欱wwW在线| 亚洲欧美日韩国产成人| 亚洲AV女人18毛片水真多| 亚洲A∨精品一区二区三区| 亚洲视频人成在线播放| 中文字幕亚洲专区| 亚洲VA中文字幕无码毛片| 久久久久亚洲av无码专区蜜芽| 亚洲精品无码鲁网中文电影| 亚洲AV永久无码精品水牛影视| 五月天网站亚洲小说| 亚洲精品影院久久久久久| 亚洲男人的天堂久久精品| 亚洲日韩国产AV无码无码精品| 亚洲另类无码专区首页| jizzjizz亚洲| 一本色道久久综合亚洲精品| 亚洲午夜福利在线观看| 亚洲精品福利视频| 亚洲同性男gay网站在线观看| 在线观看亚洲AV每日更新无码|