第一篇:關于Matlab的學習體會報告
關于Matlab的學習體會報告
經過一學期的C語言學習,我們開始轉化學習Matlab軟件的學習。在計算機國家二級C語言考試過后。學習Matlab軟件應用是一次更高要求的學習計劃,也是一種結合我們自動化專業背景的規劃。在此我感受到了老師的良苦用心,在學習的過程中,我硬性的克服著國二考試后的松懈,以更高要求學習著Matlab軟件。
首先,了解到了Matlab軟件的歷史。MATLAB(MATrix LABoratory,即矩陣實驗室)是美國 MathWork 公司推出的一套高效率的數值計算和可視化軟件。MATLAB 是當今科學界最具影響力、也是最具活力的軟件,它起源于矩陣運算,并已經發展成一種高度集成的計算機語言。
然后,了解到了Matlab軟件的功能。它提供了強大的科學運算、靈活的程序設計流程、高質量的圖形可視化與界面設計、便捷的與其他程序和語言接口的功能。在國際學術界,Matlab已經被確認為準確、可靠的科學計算標準軟件。在國際一流的學術刊物上,尤其是信息科學刊物上,都可以看到Matlab的應用。
最后,開始說我自己學習Matlab軟件的過程,體會和現在學到的Matlab的知識應用。我將分以下幾點來闡述我的觀點:
1.Matlab的語言簡練、易讀性,但是不缺乏嚴謹與內涵。相對于C語言。它的語言簡練明了,有時候只要一個字符就能表示出整句語句,不用一步步去讀。這種語言簡單而實用。每個函數建立一個同名的M文件,如上述函數的文件名為fun.m。這種文件簡單、短小、高效,并且便于調試。比如說,函數的賦值。在C語言中,它需要一個個去賦值,x=?;y=?;當變量很多的時候,我們不能一次性的去賦值。并且我們需要注意賦值的類型。而在Matlab軟件中,我們只需要知道它的初值,自變量的數值,以及它的范圍,就可以用矩陣把整個函數賦值。這減去了我們的工作復雜性,也降低了我們時間花費。2.Matlab的數據庫的可覆蓋性,可調用性。我記得C語言中,假如你得調用一個數值,必須是局部函數中賦值,否則就定義為全局變量。還有在C語言中數據的變量儲存是一個問題,自動的有auto,靜態變量有static和register。我們有時候很難記憶,所以數據儲存容易出現問題。而Matlab軟件的數據是由于MATLAB 語言庫函數與用戶文件的形式相同所以用戶文件可以像數據 庫函數一樣隨意調用。所以用戶可根據自己的需要任意擴充函數庫。3.Matlab軟件編程的簡便性,清晰性。用Matlab軟件設計程序,它更加方便快捷。MATLAB 的基本數據單元是既不需要指定維數、也不需要說明數據類型的矩陣,而且數學表達式和運算規則與通常的習慣相同。因此,在MATLAB環境下,數組的操作與數的操作一樣簡單。對比C語言,Matlab確實簡單不少。我們在編寫程序時簡便了許多。例如,求1 1 2 3 5 8 13?這個算法。C語言得用許多的語句去循環算這個算法。而Matlab軟件可以首先數據初始化,然后用while去循環,做出循環體,就可以你要多少數據,它會給你多少數據。還有在Matlab軟件設計程序時,少了很多的定義,減少了復雜度,節省了計算機的暫時內存使用率。就和C語言一樣,在語句結束時用“{ }”,Matlab軟件中一句話結束時,也需要用end。
4.Matlab軟件的功能豐富性。Matlab具有一個強大的工具箱,里面的東西,只要你想要的,你可以毫不猶豫的提取出來,不用想C語言編程中,你要的東西你得用函數調用的形式去借用。這些工具箱提供了用戶在特別應用領域所需的許多函數,這使得用戶不必花大量的時間編寫程序就可以直接調用這些函數,達到事半功倍的效果。
5.最后說我覺得Matlab應用軟件最強大,最實用的功能——繪圖。不管你二維圖形,三維圖形,還是現在流行的四維圖形。只要你想要,能編寫出來函數式。在短短幾秒鐘之內,它會呈現在你眼前。另外就是圖形的直觀性,你在繪編圖形時,加上一點修飾,它會自動標注你想要圖形的陰影部分。MATLAB 具有二維和三維繪圖功能,使用方法十分簡便。而且用戶可以根據需要,坐標圖上加標題。坐標軸標記。文本注釋及柵格等,也可以指定圖線形式(如實線、虛線等)和顏色,也可以在同一張圖上畫不同函數的曲線,對于曲面圖還可以畫出等高線。
說完了Matlab軟件的功能,我知道它的功能遠遠超過我知道的。Matlab軟件是一種全能的軟件。它的程序語言是其他的語言不能比擬的。但是在學習的過程中,我真正知道的Matlab軟件的應用簡單,應用的高科技性,我們得會很多知識才能應用好Matlab軟件。現在,我開始說我學習它的困難:
1.我們可以只學Matlab的基本應用。為了方便自己的工作或學習,那么你 2 沒有必要把matlab教程全部學會,只需要學你需要的那部分即可,比如,繪圖,矩陣運算,等等,根據你個人的需要而定,但是基本命令、數據類型、基本的程序結構(條件語句,循環語句,嵌套)、文件的IO是必須看的,因為任何一個程序都需要這幾個基本的塊。
2.必須在C語言的基礎上去學Matlab軟件的編程。這樣可以減少走彎路,節省時間,便于理解其程序。對于程序的運行效率非常有幫助。有的時候,你編出來的程序,能夠運行,但是耗時太長,也就是說你的程序沒有錯,但是不適合實際。或者說,對于規模小的問題能夠解決,但是規模大一點的問題就需要很長很長的時間,這就需要對程序的結構和算法問題進行改進。所以要理解C語言編程基礎上去學Matlab編程。
3.基礎知識于實際操作結合。你把基本的知識看過之后,就需要找一個實際的程序來動手編一下,不要等所有的知識都學好之后再去編程,你要在編程的過程中學習,程序需要什么知識再去補充。
4.有一定數學基礎。Matlab軟件是與高等數學,計算機科學相結合的軟件。所以,當你學習Matlab時,你也得會一定的數學。不會的話,你也要有一本關于Matlab軟件自帶的函數表。,你需要找一本matlab的函數工具詞典,就像漢語詞典一樣,你要盡量多的熟悉matlab自帶的函數,及其作用,因為matlab的自帶函數特別多,基本上能夠滿足一般的數據和矩陣的計算,所以基本上不用你自己編函數(如vb中,大部分的函數都需要自己編)。這一點對你的程序非常有幫助,可以使你的程序簡單,運行效率高,可以節省很多時間。
5.最重要的是你得會英語。Matlab軟件里的東西全是英文,所以你得有一本英語翻譯書。把那些最基本得單詞,工具欄,功能鍵了解清楚。這總比你一個一個去試強得多。現在學它最頭痛的就是英語不好,你不能知道那個單詞是一個什么關系數列。在獲取幫助的時候,Matlab全是用英語去解釋,你根本看不懂它用來干嘛,你接下來應該做什么。只會看著英文發呆的。所以我建議有一本翻譯書。
學了半個學期的Matlab軟件應用,它確實好用。它能解決我們好多數學,物理,化學問題。它同樣能驗證好多科學家的理論,定律。在我們的數學建 3 模中更是一種實用的工具。我們應該進一步去學習,能應用Matlab軟件的大部分功能,讓我們在以后學習專業課的時候能有一定幫助。
第二篇:Matlab實習報告
實驗一
仿真條件:電機空載下,輸入為階躍信號,仿真時間為0.4S。
階躍信號,仿真時間為0.4S。
圖二 磁鏈圖
實驗結果:開始時有摩擦轉矩,在短時間內能夠快速形成圓形轉矩。
圖1 速度響應曲線 實際結果:時間與電機負載轉矩為0時的電機響應速度曲線,速度響應誤差為0。
仿真條件:電機空載下,輸入為
仿真條件:d軸電流設置為0,輸入為階躍信號,電機空載運行響應時間為0.4秒。
圖三 速度電流響應曲線
實際結果:在0.02秒時間達到目標轉速,iq達到穩定。
實驗三
實驗目的:驗證比列系數對穩態跟蹤誤差的影響。
仿真條件:修改KVFF為0,KAFF為0,負載為0,KPP為169,KPD為200.8,kpi為0
圖四 速度 EP的響應曲線
試驗目的:驗證比例系數對穩態跟蹤誤差的關系ESS=V/K穩態跟蹤誤差越來越小。
仿真條件:修改KVFF為0,KAFF為0,負載為0,KPP為500,KPD為200.8,kpi為0。
圖五 速度 EP的響應曲線
試驗目的:驗證比例系數對穩態跟蹤誤差的關系。
仿真條件:修改KVFF為0,KAFF為0,負載為0,KPP為5000,KPD為200.8,kpi為0。
圖六 速度 EP的響應曲線
實驗結果:Ep=V/K,隨著K的增加,V不變,EP漸漸減小,前饋=1,完全補償誤差,穩定位置跟蹤誤差=0.試驗目的:修改前饋系數觀察穩態跟蹤誤差關系。
仿真條件:使KVFF為0.5電機負載為0使電機的摩擦系數為0。
圖七 速度 EP的響應曲線
試驗結論:修改前饋系數觀察穩態跟蹤誤差關系。仿真條件:使KVFF為1電機負載為0使電機的摩擦系數為0。
圖八 速度 EP的響應曲線
實驗結果:由穩態跟蹤誤差=速度/比列系數(ess=v/k)得,比列系數越大,速度不變,穩態跟蹤誤差越大。
實驗二
條件:電流給定信號(iq=500HZF方波),Id=0。電機的摩擦系數為無窮大,看Iq的響應波形。
實驗結果:電機的摩擦系數為1000時,TL會反向轉動。
條件:電流環達到速度環輸出,還原參數速度還比列信號改成正弦波,繼續增加頻率。
正弦波頻率為100HZ
正弦波頻率為200HZ
正弦波頻率為500HZ
正弦波頻率為700HZ
實驗四
實驗條件:建立一個直流電機單速度閉環調節器。
第三篇:Matlab實踐報告
MATLAB實踐報告
2016/2017學年 第一學期
專 業: 電氣工程及其自動化
班 級: 學 號: 姓 名:
2017年 2 月
目錄
第1章 引言.....................................................................................................................................1 第2章MATLAB功能介紹............................................................................................................2 2.1 MATLAB功能特性...........................................................................................................2 2.1.1主要功能..................................................................................................................2 2.1.2 MATLAB產品系列重要功能................................................................................2 2.2MATLAB優勢特點............................................................................................................2 2.2.1編程環境..................................................................................................................3 2.2.2簡單易用..................................................................................................................3 2.2.3強處理能力..............................................................................................................3 2.2.4應用軟件開發..........................................................................................................3 2.3MATLAB應用方面............................................................................................................3 第3章MATLAB課程設計任務....................................................................................................5 3.1任務一 MATLAB環境語法、基本運算及繪圖..............................................................5 3.1.1目的..........................................................................................................................5 3.1.2原理..........................................................................................................................5 3.1.3內容..........................................................................................................................5 3.2任務二 MATLAB數值運算.............................................................................................9 3.2.1目的..........................................................................................................................9 3.2.2原理..........................................................................................................................9 3.2.3內容..........................................................................................................................9 3.3任務三 MATLAB的符號計算.......................................................................................15 3.3.1目的........................................................................................................................15 3.3.2內容........................................................................................................................15 3.4任務四 MATLAB基本編程方法...................................................................................18 3.4.1目的........................................................................................................................18 3.4.2內容........................................................................................................................18 第4章 總結...................................................................................................................................23
第1章 引言
MATLAB是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。
MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司發布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等諸多強大功能集成在一個易于使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統非交互式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平。
MATLAB和Mathematica、Maple并稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優點,使MATLAB成為一個強大的數學軟件。在新的版本中也加入了對C,FORTRAN,C++,JAVA的支持。
第2章MATLAB功能介紹
2.1 MATLAB功能特性
2.1.1主要功能
1.數值分析
2.數值和符號計算 3.數字圖像處理 4.數字信號處理 5.工程與科學繪圖 6.控制系統與仿真 7.通訊系統設計與仿真 8.財務與金融工程
2.1.2 MATLAB產品系列重要功能
·MATLAB?: MATLAB 語言的單元測試框架
·Trading Toolbox?: 一款用于訪問價格并將訂單發送到交易系統的新產品
·Financial Instruments Toolbox?: 赫爾-懷特、線性高斯和 LIBOR 市場模型的校準和 Monte Carlo 仿真
·Image Processing Toolbox?: 使用有效輪廓進行圖像分割、對 10 個函數實現 C 代碼生成,對 11 個函數使用 GPU 加速
·Image Acquisition Toolbox?: 提供了用于采集圖像、深度圖和框架數據的 Kinect? for Windows?傳感器支持
·Statistics Toolbox?: 用于二進制分類的支持向量機(SVM)、用于缺失數據的 PCA 算法和 Anderson-Darling 擬合優度檢驗
MATLAB工作界面
·Data Acquisition Toolbox?: 為 Digilent Analog Discovery Design Kit 提供了支持包
·Vehicle Network Toolbox?: 為訪問 CAN 總線上的 ECU 提供 XCP 2.2MATLAB優勢特點
1.高效的數值計算及符號計算功能,能使用戶從繁雜的數學運算分析中解脫出來;
2.具有完備的圖形處理功能,實現計算結果和編程的可視化;
3.友好的用戶界面及接近數學表達式的自然化語言,使學者易于學習和掌握;
4.功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等),為用戶提供了大量方便實用的處理工具。
2.2.1編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟件本身的不斷升級,MATLAB的用戶界面也越來越精致,更加接近Windows的標準界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
2.2.2簡單易用
MATLAB是一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C++語言基礎上的,因此語法特征與C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利于非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。
2.2.3強處理能力
MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的算法都是科研和工程計算中的最新研究成果,而且經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如矩陣,特征向量、快速傅立葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態仿真等。
2.2.4應用軟件開發
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5進行連接。
2.3MATLAB應用方面
MATLAB 產品族可以用來進行以下各種工作:
●數值分析
●數值和符號計算 ●工程與科學繪圖
●控制系統的設計與仿真 ●數字圖像處理技術 ●數字信號處理技術 ●通訊系統設計與仿真 ●財務與金融工程
●管理與調度優化計算(運籌學)
MATLAB 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用MATLAB函數集)擴展了MATLAB 環境,以解決這些應用領域內特定類型的問題。
第3章MATLAB課程設計任務
3.1任務一 MATLAB環境語法、基本運算及繪圖
3.1.1目的
1、掌握 MATLAB軟件使用的基本方法;
2、熟悉 MATLAB 的數據表示、基本運算方法;
3、熟悉 MATLAB 繪圖命令及基本繪圖控制。
3.1.2原理
MATLAB環境是一種為數值計算、數據分析和圖形顯示服務的交互式的環境。MATLAB有3種窗口,即:命令窗口(The Command Window)、m-文件編輯窗口(The Edit Window)和圖形窗口(The Figure Window),而Simulink另外又有Simulink模型編輯窗口。
1.命令窗口(The Command Window)
當MATLAB啟動后,出現的最大的窗口就是命令窗口。用戶可以在提示符“>>”后面輸入交互的命令,這些命令就立即被執行。
在MATLAB中,一連串命令可以放置在一個文件中,不必把它們直接在命令窗口內輸入。在命令窗口中輸入該文件名,這一連串命令就被執行了。因為這樣的文件都是以“.m”為后綴,所以稱為m-文件。
2.m-文件編輯窗口(The Edit Window)我們可以用m-文件編輯窗口來產生新的m-文件,或者編輯已經存在的m-文件。在MATLAB主界面上選擇菜單“File/New/M-file”就打開了一個新的m-文件編輯窗口;選擇菜單“File/Open”就可以打開一個已經存在的m-文件,并且可以在這個窗口中編輯這個m-文件。
3.1.3內容
1、幫助命令,使用 help 命令,查找 exp(求冪)函數的使用方法,如圖3-1。
圖3-1 exp(求冪)函數的使用方法圖
2、矩陣運算
(1)矩陣的乘法,已知 A=[1 2 3;2 3 4;1 3 5];B=[1 2 3;4 5 6;2 1 6],求 A*B,A^2,A.*B,A^2*B。結果如下:
(2)矩陣除法,已知 A=[1 2 3;3 5 6;4 8 6];B=[1 0 0;0 2 0;0 0 3];AB,A/B,A./B,A.B。結果如下:
(3)矩陣的轉置及共軛轉置,已知 A=[5+i,2-i,1;6*i,4,9-i];求 A.', A'。結果如下:
(4)使用冒號選出指定元素,已知: A=[1 2 3;4 5 6;7 8 9];求 A 中第 3 列前 2 個元素;A 中所有列第 2,3 行的元素。結果如下:
3、多項式
(1)求多項式 p(x)= x3 + 2x+ 4的根。結果如下:
(2)已知 A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4],求矩陣 A 的特征多項式;求特征多項式中未知數為 20 時的值; 把矩陣 A 作為未知數代入到多項式中。結果如下圖所示:
圖3-2 結果圖
圖3-3結果圖
4、基本繪圖命令
在同一坐標系中繪制余弦曲線 y=cos(t-0.2)和正弦曲線 y=sin(t-0.3),t∈[0,2π];余弦曲線 y=cos(t-0.2)的線形為點劃線、顏色為綠色、數據點標記為加號;正弦曲線 y=sin(t-0.3)的線形為虛線、顏色為紅色、數據點標記為星號;顯示坐標的范圍、刻度線、網絡線;標注坐標軸名稱、標題。
程序:
圖3-4程序圖
圖3-5結果圖
3.2任務二 MATLAB數值運算
3.2.1目的
1.熟悉Matlab中各類數據,尤其是矩陣的定義、賦值和運用; 2.了解Matlab的矩陣分析函數以及求線性方程組的數值解; 3.熟悉多項式運算函數、數值插值。
3.2.2原理
1.創建矩陣的方法
a.直接輸入法規則:矩陣元素必須用[
]括住;矩陣元素必須用逗號或空格分隔;在[
]內矩陣的行與行之間必須用分號分隔。逗號和分號的作用:逗號和分號可作為指令間的分隔符,matlab允許多條語句在同一行出現。分號如果出現在指令后,屏幕上將不顯示結果。
b.用matlab函數創建矩陣:空陣 [
] —
matlab允許輸入空陣,當一項操作無結果時,返回空陣;rand —— 隨機矩陣;eye —— 單位矩陣;zeros ——全部元素都為0的矩陣;ones ——全部元素都為1的矩陣
c.矩陣的修改:可用?鍵找到所要修改的矩陣,用?鍵移動到要修改的矩陣元素上即可修改;指令修改:可以用A(?,?)= ? 來修改。
2.矩陣運算
a.矩陣加、減(+,-)運算規則:(1)相加、減的兩矩陣必須有相同的行和列兩矩陣對應元素相加減。(2)允許參與運算的兩矩陣之一是標量。標量與矩陣的所有元素分別進行加減操作。
b.矩陣乘(??,./,.)運算規則:A矩陣的列數必須等于B矩陣的行數;標量可與任何矩陣相乘。
c.矩陣乘方—— a^n,a^p,p^a a ^ p —— a 自乘p次冪,對于p的其它值,計算將涉及特征值和特征向量,如果p是矩陣,a是標量,a^p使用特征值和特征向量自乘到p次冪;如a,p都是矩陣,a^p則無意義。
d.多項式運算
matlab語言把多項式表達成一個行向量,該向量中的元素是按多項式降冪排列的。
f(x)=anxn+an-1xn-1+……+a0 可用行向量 p=[an an-1 …… a1 a0]表示;poly —— 產生特征多項式系數向量
e.代數方程組求解
matlab中有兩種除運算左除和右除。
3.2.3內容
1.輸入下列向量(矩陣),>> g = [1 2 3 4];h = [4 3 2 1]。
2.分別執行以下數組點運算,>> s1 = g + h, s2 = g.*h, s3 = g.^h,s4 = g.^2, s5 = 2.^h。
3.輸入下列特殊矩陣,>>A=[ ],>>A=eye(10),A=rand(10,15),>> A=randn(5,10),>> A=zeros(5,10)。
圖3-6 結果圖
圖3-7 結果圖
圖3-8 結果圖
>>A=ones(5,10),>>
圖3-9 結果圖
圖3-10 結果圖
4.輸入下列矩陣及矩陣函數
>> A=[2 0 –1;1 3 2];B=[1 7 –1;4 2 3;2 0 1];>> M = A*B
% 矩陣A與B按矩陣運算相乘 >> det_B = det(B)
% 矩陣A的行列式
>> rank_A = rank(A)
% 矩陣A的秩 >> inv_B = inv(B)
% 矩陣B的逆矩陣
>> [V,D] = eig(B)
% 矩陣B的特征值矩陣V與特征向量構成的矩陣D
>> X = A/B
% A/B = A*B-1,即XB=A,求X >> Y = BA’
%
BA’ = B-1*A’,即BY=A’,求Y
5.多項式運算
>> p=[1 2 0-5 6] >> rr=roots(p)>> pp=poly(rr)>> s=[0 0 1 2 3] >> c=conv(p,s)>> d=polyder(p)>> x=-1:0.1:2;>> y=polyval(p,x)
43% 表示多項式p(x)?x?2x?5x?6 % 求多項式p的根
% 由根的列向量求多項式系數
2s(x)?x?2x?3 % 表示多項式
% 多項式乘積
% 多項式微分
% 計算多項式的值
圖3-11 結果圖
10(s?3)6.有理多項式: G(s)?(s?1)(s2?s?3)
>> n=conv([10],[1 3])
% 定義分子多項式
>> d=conv([1 1],[1 1 3])
% 定義分母多項式
>> [r,p,k]=residue(n,d)
% 進行部分分式展開
>> p1=[1-p(1)],p2=[1-p(2)]
% 定義兩個極點多項式p1(s)=s-p(1),p2(s)=s-p(2)>> den=conv(p1,p2)
% 求分母多項式den=p1(s)*p2(s)
>> r1=r(1),r2=r(2)>> num=conv(r1,p2)+conv(r2,p1)% 求分子多項式
>> [num,den]=residue(r,p,k)% 根據r,p,k的值求有理多項式
7.函數插值運算
線形樣條插值
>>x=0:10 >> y=sin(x)>> x0=[ 3.4 4.7 6.5 8.2]
>> y0=interp1(x,y,x0)
% 線形插值 >> x1=0:0.1:10 >> y1=sin(x1)>> plot(x1,y1,'r:',x,y,'b*',x0,y0,'g.')%
插值比較
圖3-12 結果圖
3.3任務三 MATLAB的符號計算
3.3.1目的
1、掌握 MATLAB符號表達式的創建及代數運算;
2、掌握 MATLAB符號微積分;
3、掌握MATLAB 符號方程的求解。
3.3.2內容
?a11a12?
1、求矩陣A?a21a22???a31a32
a13?a23??的行列式、逆陣和特征值。a33?? 15
圖3-13 結果圖
432 2.因式分解x?5x?5x?5x?6
432(x?1)?5x?5(x?2)?5x?1的同類項。3.合并
4(x?1)4.求的展開式。
5.求下列式子極限 :
lim?x?2ln(sinx)
(??2x)
6.求下列函數的導數
y?excosx?x3及當x=3時的導數值。
7.已知矩陣
?exA???sinx x2?2x??lnx?,求A的導數
8.求下列積分:
(1)
?sinx1?sinx2dx(2)
??0sinx3?sinx5dx
9.求微分方程
x2?2xy?y2?(y2?xy)dy?0dxy|x?1?1
3.4任務四 MATLAB基本編程方法
3.4.1目的
1、掌握 MATLAB 軟件使用的基本方法;
2、熟悉 MATLAB 程序設計的基本方法。
3.4.2內容
1、編寫程序完成如下功能:提示用戶輸入1或者2,當用戶輸入1時,對產生的隨機序列進行降序排序;當用戶輸入2時,對產生的隨機序列進行升序排列。
程序如下: clear;
syms n ikey=0;while(ikey==0)s1=input('請輸入[1/2]?','s');x=randperm(10)if(s1=='2')
ikey=1;
y=sort(x,'ascend');
disp(['升序排列的向量為:',num2str(y)]);else if(s1=='1')
ikey=1;
y=sort(x,'descend');
disp(['降序排列的向量為:',num2str(y)]);
end break end end
圖3-14 結果圖
2、編寫程序實現如下功能:如果想對一個變量 x 自動賦值,當從鍵盤輸入 y 或 Y 時(表示是),x 自動賦為 1;當從鍵盤輸入 n 或 N 時(表示否),x 自動賦為 0;輸入其他字符時終止程序。
程序如下: ikey=0;while(ikey==0)s1=input('若給X賦值請輸入[y/n]?','s');if(s1=='y'|s1=='Y'), ikey=1;x=1
else if(s1=='n'|s1=='N')ikey=1;x=0,end break end End
3-15 結果圖
3.編寫函數實現如下功能:輸入一個百分制的成績,要求輸出成績的等級,其中90-100分輸出為優秀,80-89分輸出為良好,70-79輸出為中等,60-69輸出為及格,60分以下不及格,如果輸入的數據不是百分制,顯示出錯信息并提示:請輸出百分制成績。
程序如下:
clear;m=input('請輸入一個數值:');m=ceil(m/10);switch m case {10,9}
disp('優秀');case 8
disp('良好');case 7
disp('中等');case 6
disp('及格');case {5,4,3,2,1,0}
disp('不及格');otherwise
disp('輸入有誤!')End 運行結果:
請輸入百分之原始成績:92 五級制成績為: 優秀
請輸入百分之原始成績:88 五級制成績為: 良好
請輸入百分之原始成績:64 五級制成績為: 及格
請輸入百分之原始成績:56 五級制成績為: 不及格
4.編寫函數計算s=n!syms n s=1 N=input('data n:');for i=1:N s=s*i;end s s = 1 data n:6 s = 720
5.編寫程序,計算1+3+5+…(2n+1)的值,使用input語句輸入n的值。程序如下:
n=input('input: n=');s = sum(1:2:(2*n+1))input: n=7 運行結果: s = 64
第4章 小結
通過這次對MATLAB的親身操作和實踐,學習掌握了許多原本不知道的或者不太熟悉的命令。比如說相關m文件的建立,畫圖用到的標注,配色,坐標控制,同一張圖里畫幾幅不同的圖像,相關參數的設置以及相關函數的調用格式等等。
就拿建立一個數學方程而言,通過設置不同的參數達到所需要的要求和結果,而且還可以在不同的窗口建立不同的函數而達到相同的效果,比如說可以再命令窗口和m文件中通過不同的命令設置的到相同的所需的效果圖。而自己對于矩陣及閉環傳遞函數的建立原本所掌握的知識幾乎為零,而通過這次實驗使我徹底的掌握了相關的命令操作和處理的方法,在這里我們不僅可以通過建立函數和參數來達到目標效果,而且還可以通過可視化的編程達到更快更方便,更簡潔的效果。就拿可視化編程而言原本根本就只是聽說而已罷了,從來就沒有親身去嘗試過,然而現在自己卻可以和容易的通過搭建不同功能木塊來實現相關的函數及功能。這些在原本根本就不敢相信,然而通過MATLAB的學習和實驗親身操作這些原本看似不可能的操作在此就變的輕而易舉的事了。
要想取得更大的成績就得不斷的去努力學習和汲取相關的知識和技巧。萬不可自以為傲,裹足不前,MATLAB真的是個非常強大和有用的工具我們真正的能把它學懂學透的話還是需要下非常大的功夫和努力的。然而,不是說興趣才是最大的老師嘛,我也相信,只要你自己有興趣,即使它再怎么強大和難搞,我們能做的還是非常多的,關鍵的就只是在于你自己的態度了。我這里想說的事,MATLAB對于我來說是非常有吸引力的,我不敢說自己多么喜歡它,但是興趣確實蠻高的,所以我相信在以后的學習和工作當中MATLAB將成為我非常有用的幫忙工具和好伙伴,也許這要說有點太草率了,但是我覺得對它的評價怎么也不會讓每一個接觸過它的人吝嗇是自己贊美之詞。它不僅僅可以用來建模分析函數,還可以用來進行圖形的建模和仿真,還可以用來分析系統和函數的參數穩定性等等。
第四篇:matlab實習報告(最新)
1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。(使用函數fminbnd、roots)
>>[x,y]=fminbnd('4*x.^6-x+x.^3-95',0,100)x =
0.4432 y =
-95.3258 >> [x,y]=fminbnd('-4*x.^6+x-x.^3+95',0,100)x =
99.9999 y =-4.0000e+012 >> a=[4 0 0 1 0-1-95];roots(a)ans =
1.6860
0.8525 + 1.4852i
0.85251.4514i 求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用函數dsolve)dsolve('D2x=-Dx+x+1','Dx(0)=1','x(0)=0')ans =(5^(1/2)*exp(t*(5^(1/2)/23))/(10*exp(t*(5^(1/2)/2 + 1/2)))1/3 + 1/51/11 +...)其中 n 為函式的輸入,級數和 f(n)則是函式的輸出。此外,你必須進行下列事項:
function f=pifun(n)l=1;s=0;for i=1:n s=s+l/(2*i-1);l=-l;end s=4*s;disp('f(n)的值是');disp(num2str(s))(1)使用 tic 和 toc 指令來測量 pifun(100000)的計算時間。如果你不知道如何使用這兩個指令,請使用 help tic 及 help toc 來查出它們的用法。我的計算機是 Pentium-450,所得的計算時間約為 2 秒。請說明你的計算機規格以及其計算時間。
>> tic,pifun(100000),toc f(n)的值是 3.1416 Elapsed time is 0.028928 seconds.Cpu Pentium dual—core e5300(2)使用 flops 指令來測量 pifun(100000)所用到 floating point operations 的計算次數。如果你不知道如何使用這個指令,請使用 help flops 來查出它的用法。
14、寫一個 MATLAB 的遞歸函式 fibo.m 來計算 Fibonacci 數列,其定義如下:
fibo(n+2)= fibo(n+1)+fibo(n)此數列的啟始條件如下: fibo(1)= 0, fibo(2)= 1.function f=fibo(n)if n==1 f=0;elseif n==2 f=1;else f=fibo(n-1)+fibo(n-2);end 求下列函數的極小點:
1)f?X??x2?4x2?9x2?2x?18x;
12312>> f='x(1)^2+4*x(2)^2+9*x(3)^2-2*x(1)+18*x(2)';[x,fm]=fminsearch(f,[0,0,0])x =
1.0000-2.2500 0.0000
fm =
-21.2500
2)
f?X??2x1; 32?x2?2x1x2?x1?2x22>> f='x(1)^2+3/2*x(2)^2-2*x(1)*x(2)+x(1)-2*x(2)';[x,fm]=fminsearch(f,[0,0])
x =
0.*** 1.***
fm =
-0.***
3)f?X???x?1?4?22.12>> f='(x(1)-1)^4+x(2)^2';>> [x,fm]=fminsearch(f,[0;1])x =
0.***-0.***
fm =
4.24***82e-017
第1),2)題的初始點可任意選取,第3)題的初始點取為X0??0,1?T.?5x1?x2?x3?1?x?3x?x?2?3416. 解線性方程組 ?1并求系數矩陣的行列式。
??x1?x2?5x4?3??2x3?4x4??1 a=[5 1-1 0 1;1 0 3-1 2;-1-1 0 5 3;0 0 2 4-1];>> rref(a)
ans =
1.0000
0
0
0
1.4000
0
1.0000
0
0
-5.9000
0
0
1.0000
0
0.1000
0
0
0
1.0000
-0.3000
所以 x1=1.4;x2=-5.9;x3=0.1;x4=-0.3
a=[5 1-1 0;1 0 3-1;-1-1 0 5;0 0 2 4];>> det(a)
ans =
2?f17. 設 f(x,y)= 4 sin(x y),求
?x?y
3x?2,y?3
syms f s y;syms f x y;f=4*sin(x.^3*y);z=diff(diff(f,x),y);x=2;y=3;subs(z)
>> zs17
ans =
1.0636e+003 18.求方程 3x4+4x3-20x+5 = 0 的所有解。
c=[3 4 0-20 5];roots(c)
>> zs18
ans =
-1.5003 + 1.5470i-1.50031.0860i 1.9536 + 1.0860i 1.0727
r =
8.6397e+003 即在第108年停產可獲最大利潤,最大利潤為8639.7百萬元。一幢樓房的后面是一個很大的花園。在花園中緊靠著樓房建有一個溫室,溫室高10英尺,延伸進花園7尺。清潔工要打掃溫室上方的樓房的窗戶。他只有借助于梯子,一頭放在花園中,一頭靠在樓房的墻上,攀援上去進行工作。他只有一架20米長的梯子,你認為他能否成功?能滿足要求的梯子的最小長度是多少?
步驟:
1.先進行問題分析,明確問題;
2.建立模型,并運用Matlab函數求解; 3.對結果進行分析說明; 4.line)設計程序畫出圖形,對問題進行直觀的分析和了解(主要用畫線函數plot。若梯子能恰好放置,則梯子的長度f與傾角x關系如下:
ab7?f(x)??
(其中a=m, b=3.048m,0 L=inline('3.048/sin(x)+2.333/cos(x)','x');x=fminbnd(L,0.01,pi/2-0.01)l=subs(L) ezplot('3.048/sin(x)+2.333/cos(x)',[0,pi/2]) 由以上可知梯子的最小長度為7.59m。所以他能成功。 22.某大學青年教師從31歲開始建立自己的養老基金,他把已有的積蓄10000元也一次性地存入,已知月利率為0.001(以復利計),每月存入700元,試問當他60歲退休時,他的退休基金有多少?又若,他退休后每月要從銀行提取1000元,試問多少年后他的基金將用完? function f=title22()s=10000;t=0;for i=1:360 s=s*(1+0.001)+700;end fprintf('60?êí?DYê±í?DY?ù?eóD%f?a.n',s);while s>0 s=(s-1000)*(1+0.001);t=t+1;end t=ceil(t/12); fprintf('í?DYoó????òa′óò?DDìáè?1000?a£?%d?êoó?ù?e??ó?íê.n',t);>> zs22 60歲退休時退休基金有317480.843330元.退休后每月要從銀行提取1000元,32年后基金將用完.23.:請設計一個程序,程序完成下列功能:(1)讓用戶輸入一個矩陣A;(2)在A中找出小于0的矩陣元素的位置;(3)在A中統計出等于0的元素的個數;(4)顯示A的行數和列數; (5)找出矩陣A各元素中的最大值(顯示值,不顯示元素位置)。 function f=title20()a=input('??ê?è????óA: ');[m,n]=size(a);t=0;p=0;for i=1:m for j=1:n if a(i,j)<0 p=p+1; fprintf('μú%d??D?óú0μ?????ê?(%d,%d)n',p,i,j); end if a(i,j)==0 t=t+1; end end end B=a(:);max=B(1);for i=2:m*n if B(i)>max max=B(i); end end if p==0 disp('A?D??óDD?óú0μ??a??.');end fprintf('A?Dμèóú0μ??a??μ???êy?a%dn',t);fprintf('Aμ?DDêyoíáDêy·?±e?a%d£?%dn',m,n);fprintf('A?÷?a???Dμ?×?′ó?μ?a%dn',max); 24:請設計一個程序,程序完成下列功能:(1)讓用戶依次輸入兩個字符串s1和s2;(2)比較兩個字符串的長度并顯示比較結果; (3)判斷s1與s2有沒有長度在3個字符以上的相同子串,顯示判斷結果。function f=title24() s1=input('??ê?è?×?·?′?s1: ');s2=input('??ê?è?×?·?′?s2: ');m=length(s1);n=length(s2);t=m;kk=0;if m>n t=n; disp('s1μ?3¤?è′óóús2μ?3¤?è.');elseif m disp('s1μ?3¤?èD?óús2μ?3¤?è.');else disp('s1μ?3¤?èμèóús2μ?3¤?è.');end for i=4:t for j=1:m-i+1 for k=1:n-i+1 if strcmp(s1(j:j+i-1),s2(k:k+i-1))==1 l=0; for r=1:kk if strcmp(s1(j:j+i-1),b{r})==1 l=1; break;end end if l==0 kk=kk+1; b{kk}=s1(j:j+i-1); end end end end end for i=1:kk fprintf('μú%d???àí?×?·?′?£o',i);disp(b{i}); end 25:編寫程序模擬楊氏雙縫干涉 兩相干光源到接收屏上P點距離r1=(D2+(y-a/2)2)1/2, r2=(D2+(y+a/2)2)1/2,相位差 Φ=2π(r2-r1)/λ,光強I=4I0cos2(Φ/2)編寫程序 clear lam=500e-9;a=2e-3;D=1;ym=5*lam*D/a;xs=ym;n=101;ys=linspace(-ym,ym,n);for i=1:n r1=sqrt((ys(i)-a/2).^2+D^2);r2=sqrt((ys(i)+a/2).^2+D^2);phi=2*pi*(r2-r1)./lam;B(i,:)=sum(4*cos(phi/2).^2);end N=255;Br=(B/4.0)*N;subplot(1,2,1);image(xs,ys,Br);colormap(gray(N));subplot(1,2,2);plot(B,ys); 26:編寫程序模擬光柵衍射 公式:I=I0(sinα/α)2(sin(λβ)/sinβ)2 α=(πa/λ)sinΦ β=(πd/λ)sinΦ clear lam=500e-9;N=2;a=2e-4;D=5;d=5*a;ym=2*lam*D/a;xs=ym;n=1001;ys=linspace(-ym,ym,n);for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lam;beta=pi*d*sinphi/lam; B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;B1=B/max(B);end NC=255;Br=(B/max(B))*NC;subplot(1,2,1)image(xs,ys,Br);colormap(gray(NC));subplot(1,2,2)plot(B1,ys); 27:繪制三元函數w?x2?y2?z2的可視化圖形 x=-5:0.05:5;y=-5:0.05:5;z=-5:0.05:5;[x,y,z]=meshgrid(x,y,z);v=x.^2+y.^2+z.^2;isosurface(x,y,z,v,10);axis equal 28:繪制 z?f(x,y)?(1?x)?12ln(x?y)的圖象 [x,y,z,v] = flow; q=1./sqrt(1-x).*log(x-y)-z; p = patch(isosurface(x, y, z, v, 0));isonormals(x,y,z,q,p) set(p, 'FaceColor', 'blue', 'EdgeColor', 'none');view(3) camlight;lighting 29: 試完成matlab 動畫 霓虹燈效果動畫:一顆花心: clear;clc;close all c=5;t=linspace(-c,c);[x,y]=meshgrid(t);z=17*x.^2-16*abs(x).*y+17*y.^2-225;pcolor(x,y,z);shading interp pause(2);spinmap(10) 30:試完成matlab gui程序 function varargout = ex0(varargin)gui_Singleton = 1; gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @ex0_OpeningFcn,...'gui_OutputFcn', @ex0_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end function ex0_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; global i a i=0; a=floor(100*rand); guidata(hObject, handles); function varargout = ex0_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function x1_Callback(hObject, eventdata, handles) function x1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function x2_Callback(hObject, eventdata, handles) function x2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function p1_Callback(hObject, eventdata, handles) global i a x1= eval(get(handles.x1,'String')); if x1>a x2='high'; set(handles.x2,'string',num2str(x2)); elseif x1 set(handles.x2,'string',num2str(x2)); else x2='YOU ARE WIN'; set(handles.x2,'string',num2str(x2));a=floor(100*rand);i=0; end i=i+1;if i==10 x2='YOU ARE LOSE'; set(handles.x2,'string',num2str(x2));a=floor(100*rand);i=0;end function p2_Callback(hObject, eventdata, handles) close = questdlg('?úè·?¨òa1?±??e?','è·?¨1?±?','ê?','·?','ê?');switch close case '·?' case 'ê?' delete(handles.figure1)end matlab實習報告 實習總結報告;學校名稱;實習類型學學軟件MTLAB實習起止時間年月日至年;所在院(系);班級;學生姓名;學號;年月日;實習總結報告;2013年7月8日至7月26日,我們應數專業進行;這次認識實習分為兩大部分:理論知識學習和上機實踐; 一、實習目的;這次實習的目的是使我們掌握MATLAB的基本知識; 二、實習內容; (一)操作基礎;MATLAB是一種用于科學計算的高 實習總結報告 學校名稱 實習類型 學學軟件MTLAB 實習起止時間 年 月 日至 年 月 日 指導教師 所在院(系)班 級 學生姓名 學 號 年 月 日 實習總結報告 2013年7月8日至7月26日,我們應數專業進行了為期3周的實習。這次認識實習分為兩大部分:理論知識學習和上機實踐學習。這次認識實習使我對專業知識有了一定的了解,知道以后的學習重點,感受工作環節,為自己將來走向社會打下基礎。 一、實習目的 這次實習的目的是使我們掌握MATLAB的基本知識,能運用MATLAB來編寫程序,解決一般性的問題,使得我們在完成本課程學習后,掌握MATLAB的基本知識和初步的編程能力,為以后的學習和工作提供了一個非常有用的工具。 二、實習內容 (一)操作基礎 MATLAB是一種用于科學計算的高性能語言。它將計算、可視化和程序設計集成在一個非常容易的環境中,使用我們熟悉的數學符號表示問題與答案。MATLAB系統由5個主要部分組成,包括開發環境、MATLAB數學函數庫、MATLAB語言、圖形、MATLAB應用程序接口。對于MATLAB的操作基礎,應該學會啟動和退出MATLAB、MATLAB的桌面工具和開發環境、命令窗口、歷史窗口等等。 (二)矩陣及其運算 MATLAB,即“矩陣實驗室”,它是以矩陣為基本運算單元。因此,本書從最基本的運算單元出發,介紹MATLAB的命令及其用法。 1.矩陣的表示:MATLAB的強大功能之一體現在能直接處理向量 或矩陣。當然首要任務是輸入待處理的向量或矩陣。不管是任何矩陣(向量),我們可以直接按行方式輸入每個元素:同一行中的元素用逗號(,)或者用空格符來分隔,且空格個數不限;不同的行用分號(;)分隔。所有元素處于一方括號([ ])內;當矩陣是多維(三維以上),且方括號內的元素是維數較低的矩陣時,會有多重的方括號。其中有:符號矩陣、大矩陣的生成、多維數組的創建、特殊矩陣的生成(主要有零矩陣(zero)、單位陣(eye)、全一陣(ones)、均勻分布隨機矩陣(rand)、正態分布隨機矩陣(randn)等)。 (三)程序設計與文件操作 1.程序設計: Matlab既是一種語言,又是一種編程環境。Matlab提供了很多方便用戶的工具,用于管理變量、輸入輸出數據以及生成和管理M文件。 用戶可在Matlab的命令窗口鍵入一個命令,也可以由它定義的語言在編輯器中編寫應用程序,Matlab軟件對此進行解釋后,在Matlab環境下對它進行處理,最后返回結果.MATLAB語言的顯著特點:具有強大的矩陣運算能力:Matrix Laboratory(矩陣實驗室),使得矩陣運算非常簡單。也是一種演算式語,MATLAB的基本數據單元是既不需要指定維數,也不需要說明數據類型的矩陣(向量和標量為矩陣的特例),而且數學表達式和運算規則與通常的習慣相同。因此,MATLAB語言編程簡單,使用方便。 2.文件操作: (1)指令驅動模式:即在MATLABM命令行窗口下用戶輸入單行指令時,MATLAB立即處理這條指令,并顯示結果,這就是MATLAB命令行方式。缺點:命令行方式程序可讀性差,而且不能存儲,當處理復雜問題和大量數據時很不方便。(2)M文件模式:將MATLAB語句構成的程序存儲成以m為擴展名的文件,然后再執行該程序文件,這種工作模式稱為程序文件 模式。 (3)M語言文件可以分為主程序文件和函數文件, 一個M語言文件就是由若干MATLAB的命令組合在一起構成的。M語言文件是標的純文本格式的文件,其文件擴展名為.m。MATLAB提供了meditor編輯器編輯M文件。 (四)數據分析與多項式計算 MATLAB數據分析與多項式計算主要包括:數據統計處理、數據插值、曲線擬合、離散傅立葉變換、多項式計算等等。 在數據處理中我們要了解最大值和最小值,如果在程序中求一個矩陣的極值問題,max或min(x,[],1)代表的是每一列中最大值或最小值組合寫成一個行矩陣,max或min(x,[],2)表示的是每一行中的最大值和最小值寫成一個列矩陣。在計算多項式時,了解root函數以及熟練地應用,將多項式每一項前系數都寫入root中,便可以通過root函數求出根。 (五)解線性方程與函數極值 線性方程:解線性方程包括:線性方程組求解、非線性方程數值求解、常微分方程初值問題的數值解法、函數極值等。 線性方程求解:(a)直接法: 利用左除運算符的直接解法對于線性方程組Ax=b,可以利用左除運算符“”求解:x=Ab。(b)利用矩陣的分解求解線性方程組: 矩陣分解是指根據一定的原理用某種算法將一個矩陣分解成若干個矩陣的乘積。常見的矩陣分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇異分解等。 (c)非線性方程組的求解: 對于非線性方程組F(X)=0,用fsolve函數求其數值解。fsolve函數的調用格式為: X=fsolve('fun',X0,option)其中X為返回的解,fun是用于定義需求解的非線性方程組的函數文件名,X0是求根過程的初值,option為最優化工具箱的選項設定。最優化工具箱提供了20多個選項,用戶可以使用optimset命令將它們顯示出來。如果想改變其中某個選項,則可以調用optimset()函數來完成。例如,Display選項決定函數調用時中間結果的顯示方式,其中‘off’為不顯示,‘iter’表示每步都顯示,‘final’只顯示最終結果。optimset(‘Display’,‘off’)將設定Display選項為‘off’。 (六)符號計算 在數值計算中,計算機處理的對象和得到的結果都是數值,而在符號計算中,計算機處理的數據和得到的結果都是符號。符號計算中首先要對符號變量進行定義。Sym只能為單個符號變量定義,而Syms可以為多個進行定義。定義之后,可以進行符號計算,主要用于研究符號微積分運算。求解符號微分,可以直接采用diff()函數進行求解;符號的積分,可以使用int()函數進行計算,最后調用M文件得到正確結果。 (七)數值積分與微分 MATLAB數值積分與微分主要包括:數值積分與數值微分。求解定積分的數值方法多種多樣,如簡單的梯形法、辛普生(Simpson)?法、牛頓-柯特斯(Newton-Cotes)法等都是經常采用的方法。基本思想都是將整個積分區間[a,b]分成n個子區間[xi,xi+1],i=1,2,?,n,其中x1=a,xn+1=b。這樣求定積分問題就分解為求和問題。 二重定積分的數值求解:使用MATLAB提供的dblquad函數就可以直接求出二重定積分的數值解。該函數的調用格式為: I=dblquad(f,a,b,c,d,tol,trace)該函數求f(x,y)在[a,b]×[c,d]區域上的二重定積分。參數tol,trace的用法與函數quad完全相同。 (八)微分方程符號解法和數值解法 solve函數的使用Solve(‘p*sin(x)=r’)ans=asin(r/p),dsolve函數的一般調用形式是:dsolve(‘s’,’s1’; (九)繪圖操作;二維圖形可以采用ezplot進行繪圖,一般形式是;ezplot(f,[a,b])表示的是回執函數y;三維圖形或者多維圖形一般采用ezplot3進行繪; (十)圖形用戶界面設計圖形用戶和界面設計中我們要; (十一)統計方法及其應用;概率分布及其有關函數中,常用的是pdf,cdf,; (十二)圖形句柄; 的一般調用形式是:dsolve(‘s’,’s1’,’s2’...)(s為方程,s1,s2,s3,為初始條件,x為自變量)。Ode45表示的是常微分方程的數值求解。通過此函數可以很方便快速的求出有關微分方程求解的問題。 (九)繪圖操作 二維圖形可以采用ezplot進行繪圖,一般形式是: ezplot(f,[a,b])表示的是回執函數y=f(x)在區間(a,b)上的圖像。 三維圖形或者多維圖形一般采用ezplot3進行繪圖,一般形式是: ezplot3(x,y,z)表示的是空間曲線x=x(t),y=y(t),z=z(t),0 (十)圖形用戶界面設計 圖形用戶和界面設計中我們要遵循四個原則:簡單性,一致性,習常性以及其他考慮因素。如果建立主菜單條,菜單項句柄=uimenu(圖形黃口句柄,屬性名1,屬性值1,...);子菜單句柄=uimenu(父菜單句柄,屬性名1,屬性值1,...)圖形窗口的創建一般是 窗口句柄=figure(屬性名1,屬性值1,屬性名2,屬性值2,...),對于圖形用戶界面設計工具-Guide Control Panel要有簡單的了解。 (十一)統計方法及其應用 概率分布及其有關函數中,常用的是pdf,cdf,stat(概率密度,分布函數,均值與方差),以及樣本均值mean和中值median,在描述性統計就是搜集.整理.加工和分析統計數據使之系統化。在描述樣本中心值的偏離程度中,有var(方差),cov(協方差)等研究參數,同時還可以對參數進行估計,方差分析有anova1(單因素試驗方差)和anova2(雙因素試驗),通過統計數據,最終進行統計圖的繪制。 (十二)圖形句柄 圖形句柄主要包括:圖形對象及其句柄、圖形對象屬性、圖 形對象的創建。我們學習了很多MATLAB高層繪圖函數,這些函數都是將不同的曲線或曲面繪制在圖形窗口中,而圖形窗口也就是由不同圖形對象(如坐標軸、曲線、曲面或文字等)組成的圖形界面。MATLAB給每個圖形對象分配一個標志符,稱為句柄。以后可以通過該句柄對該圖形對象的屬性進行設置,也可以獲取有關屬性,從而能夠更加自主地繪制各種圖形。 直接對圖形句柄進行操作的繪圖方法稱為低層繪圖操作。相對于高層繪圖,低層繪圖的操作控制和表現圖形的能力更強,事實上,MATLAB的高層繪圖函數都是利用低層繪圖函數建立起來的。有時單靠高層繪圖不能滿足要求,如,繪制特殊圖形、建立圖形用戶界面等,這時就需要圖形句柄操作。 三、實習心得 這次實習我收獲頗多,領會了很多東西,這次實習對于我們數學專業的學生意義重大。可以說,這次實習完全做到了學以致用,正如陶行知先生所言:“知行合一”。這對于我們以后的學習和將來走上工作崗位,有一定的借鑒意義。在這個過程中心得如下: 1、“實踐是檢驗真理的唯一標準”,在學習Matlab的過程中,這一點非常的重要,在學習的過程中我們不僅要學會老師講授的知識,而且要多操作,多實踐,在操作和實踐的過程中將知識融會貫通,做到“信手拈來”的境界。 2、要有團隊精神,這一似乎是我們這個時代許多重大發現,科技進步一個非常重要的因素。而在學習Matlab的過程中也體現了這一點,在與同學和老師的交流過程中,無形之中就學到了很多的知識。 3、數學與計算機是一對同胞兄弟。在學習Matlab的過程中深有 體會,兩者相輔相成,Matlab的諸多功能對我們學習數學的過程中是非常有幫助的,Matlab簡單易學,代碼短小,有強大的圖形繪制和處理功能,這些功能對于我們學習數學起到了事半功倍的作用。 4、“學無止境”,我們應該樹立一種終身學習的信念,在這個信息時代,知識在不斷的更新,更新的源泉來自創新,而創新就要有獨立思考的能力,Matlab的功能已經非常強大了,但仍需完善,作為數學人我們與責任和義務去完善它,在未來的前進過程中不斷的做出創新,我想,這也是我們高等教育所提倡的,所以說,我們數學人任重而道遠,需明白“學無止境”的道理。第五篇:matlab實習報告