汪群超 個人網址:http://web.ntpu.edu.tw/~ccw 數學與電腦 的初相識 汪群超 個人網址:http://web.ntpu.edu.tw/~ccw 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。 學於師已窮其法,不可不變也、 友古人已悉其意,不得不變也、 師造化已盡其理、不能不變也。 鄭曼青
上完這段課程,你將學會 如何應用電腦程式學習數學觀念與理論。 使用數學軟體 MATLAB的套裝程式。 基本的 MATLAB 程式設計。 繪製數學函式圖。 落實統計學與機率的基本觀念。 強化線性代數、微積分與統計應用的觀念。 說明與練習 數學的應用要靠電腦來完成。 學習數學的過程有電腦的輔助將事半功倍,更重要的是:樂趣無窮。 藉由電腦輔助軟體能夠進一步認清數學的原貌。 當了解數學可以如何被應用時,學數學不再枯燥無味。 保持耐心、深具信心的跟隨老師走完這學期的課程,你將收穫滿行囊!
評分方式 作業(約10次)、小考(若干次) 30% 期中報告(10頁) 30% 期末報告(20頁)或期末考 40% 作業(約10次)、小考(若干次) 30% 期中報告(10頁) 30% 期末報告(20頁)或期末考 40% 以上比例將視實際情況另訂之。 說明與練習 出席率非常重要,課堂上將有相當的時間做練習,屆時將做考核,了解同學學習的進度,作為期末的考評的依據。 不定時小考,督促學習。否則徒勞無功,浪費彼此時間
上課的規矩 說明與練習 尊重上課的秩序,手機請務必關機。 上課也不是打B的時間,請專心上課。
電腦如何解決數學問題? 求方程式 x3-10x2+29x-20=0 的根? 求函式 f(x)=x4-8x3+16x2-2x+8 的最小值 求 的值 解聯立方程式 說明與練習 了解電腦如何解決數學問題是本課程的目的。 Closed-form solution 與 non closed form solution 電腦解決數學問題的特色:以極高的速度重複處理相同的程序。Non closed form solution 藉由這個特點得到解決。 在本課程中,也要嘗試解決較複雜的數學問題,特別是與統計系所學的相關數學問題。譬如, 多項式問題、微積分的運算、函數的極值、機率與分配的問題、統計量與統計圖表、檢定估計、中央極限定理、線性迴歸的估計與預測、最小平方法的運用。唯大部分的問題都將淺嚐即止,僅為同學開一扇解決複雜問題的門。
電腦如何繪製圖形? 說明與練習 下面這個函式長什麼樣子呢? 可以這麼說:電腦所繪製的每一張圖都來自一個數學函式。 反過來說,每一個數學函式都可以被繪製成電腦圖? 本課程將教導同學如何利用電腦繪製數學函式,及整個過程的原理! 當數學函式以圖形的方式呈現時,往往可以透露許多從數學函式看不出來的訊息。對於數學的應用而言,繪圖無疑是一個相當重要的工具。
MATLAB :解決數學問題的利器 提供圖形化的操作介面。 極佳的繪圖能力。 利用矩陣的計算方式提昇處理速度。 提供豐富的基礎數學函式庫。 Programming能力近似 C語言。 俱備GUI程式的能力,近似VisualBasic 說明與練習 MATLAB是本課程使用的電腦數學軟體。有它的協助,數學將變的輕鬆有趣些! MATLAB: MATrix LABoratory 提供自然、簡潔的方法來描述數值的演算。 MATLAB內部使用的演算法主要依據成熟度很高的軟體:LINPAC及EISPACK。 MATLAB 巡禮。使用前先瀏覽所有的功能及環境,看看玩玩一些Demos。
MATLAB的精神:矩陣式運算 矩陣的形成與索引(index) 矩陣的數學運算: 常用的矩陣指令 了解指令的使用:善用help 加、減、乘、除、轉置 常用的矩陣指令 了解指令的使用:善用help 說明與練習 矩陣是MATLAB的基本元素,所有的數值都當作矩陣來運算,當然操作的模式也是矩陣式的。 數字(scalar)視為 1x1 的矩陣,而向量(vector)視為 nx1 或 1xn 的矩陣。 程式設計的第一個觀念:區分「變數」與「常數」。 先練習如何建立矩陣並瞭解變數的意義。大概了解MATLAB提供的各種不同的建立方式,並準確的捕捉他的精神。例如依下列符號練習在MATLAB的環境下建立矩陣 A=[1 2;3 4] B=[1 2 3] C=[5 6 7 8]’ D=1:10 E=C(1:2) F=A(1,2) G=A(:,1) H=A(2,:) 請注意觀察矩陣的數學運算結果。 Let A=[1 2;3 4], B=[5 6;7 8], c=3,做以下的練習 A + B, A – B, A+c, A*B, A/B, A^c, c*A, A/c,A.*B, A./B, A.^c, A’, B’, (A*B)’, B’*A’ 常用的矩陣指令:zeros, ones, eye, diag, reshape, inv, det, rank, rref, linspace
MATLAB的基本動作 基本操作指令 運算元 基本繪圖指令 常用的數學指令 統計相關的指令 + - * / ; ‘ ^ : = == ~= < > <= >= 基本繪圖指令 常用的數學指令 統計相關的指令 說明與練習 善用Help功能。同學要學會自己摸索一樣工具,老師教30%,自己要去補齊剩下的70%。 常用的操作指令:cd,clc, who, whos, pwd, help, clear, size, length,、、、 常用數學指令:sqrt, abs, sum, max, min, eps, pi, sn, cos, log, mean, median, std, sort, 、、、 統計相關指令:參考『MATLAB HELP』。
MATLAB的繪圖技巧 資料的準備 繪圖指令知多少 圖形的裝飾 圖形的匯出:存檔 二維與三維圖形 哪些統計相關的繪圖指令? 說明與練習 盡情的玩弄plot指令,看看他的能耐。 圖形的裝飾指令:title, xlabel, ylabel, text, gtext, grid, axis, hold, legend, subplot,mesh,contour, 、、、 統計圖:長條圖bar,bar3、扇形圖pie,pie3、針頭圖stem,stem3、階梯圖stairs、實心圖fill,fill3, 、、、 參考Demos裡面有關圖形的變化。
MATLAB的字元與字串處理 字元(character)與字串(string) 字串函數 說明與練習 常用字串函數:length, num2str, str2num, fprintf, sprintf, disp, 、、、
MATLAB程式設計:檔案 指令 vs. 程式檔案 M檔案的新建、修改、儲存與執行 有關檔案路徑path 註解行 說明與練習 一個程式檔就是一些指令及(或)內建函式的集合。 MATLAB執行一個程式檔,其實只是按順序執行裡面的每一行指令或函式。 MATLAB提供一個特定的程式寫作環境,在這個環境下寫MATLAB程式比用其他編輯軟體方便許多。 請注意檔案存放的位置與其被MATLAB執行時的相關性。檔案管理在此非常重要。
MATLAB程式設計:變數(variable) 什麼是變數? 區域(local)變數與全域(global)變數。 說明與練習 變數(variable)幾乎可說是每一種程式語言的基礎。 A=4 將常數4指定給變數A A=6 變數A此時的值為6,所以所謂變數 = 可以隨時變動內涵的一個代表符號,這個內涵可以是數值、矩陣或字串。 區域(local)變數與全域(global)變數的差別請從示範的程式去分辨。並瞭解其實質的意義。
MATLAB程式設計:條件式if If 條件式一 運算式(operations) elseif 條件式二 elseif 條件式三 else end 說明與練習 if .. else.. end 的條件式幾乎可在多數的程式中遇見。非常的常用。 請從範例中瞭解『條件式』與『運算式』。
MATLAB程式設計:迴圈的運用 for 變數=向量 end while 條件式 運算式(operations) 說明與練習 無論是for或while迴圈,都會降低Matlab的執行速度,迴圈層次越多,速度越慢。所以在程式的寫作上應盡量避免使用迴圈,多使用矩陣的運算來解決迴圈問題。 請測試以下的程式碼: clear tic; for I=1:10000 b( i ) = sqrt( i ); end t=toc; disp([‘Time taken for loop method is ‘, num2str(t)]); **************************************************************或是 b=sqrt(1:10000); disp([‘Time taken for matrix method is ‘, num2str(t)]);
MATLAB程式設計:函數(副程式) Built-in functions(內建函數,函數庫) User-defined functions(使用者自建函數) 說明與練習 區分主程式與副程式。並從範例中瞭解應用的方向。 區分built-in function 與 user-defined function。 MATLAB函數的格式(specification) 呼叫的形式: specific_output_params = function_name(specific_input_params) 函數的格式: function output_params = function_name(input_params) …
MATLAB資料的輸入與輸出 從程式中讀取外部資料檔。 將程式產生的資料匯出成檔案。 ASCII與Binary檔。 互動式資料輸入。 輸出運算結果到螢幕。 說明與練習 互動式資料輸入,如input, ginput, 、、、 輸出到螢幕:disp, fprintf, sprintf, 、、、 資料檔案輸出入指令: load, save, 、、、
MATLAB的高級動作 影像顯示與讀寫 動畫製作 GUI畫面的製作 說明與練習 參考書: MATLAB程式設計與應用,張智星,清蔚科技出版