- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值计算应用篇
數值計算應用篇 陳鴻智 有關於本教材 數值計算是件很好玩的事,可以用很精簡的程式完成 並且可以將它用圖形的方式展示出來。 Matlab可以讓我們作到。 教材內容 數值計算介紹 試圖告訴你數值計算是件很棒的事 為啥需要數值計算? 工程需求— 資料探索分析 “透過觀察讓科學大幅進展”—牛頓 “數學就是要求嚴密、美感和結構” -- 高斯 歷史故事Matlab(MATrix LABoratory) 由 Cleve Moler 研發將EISPACK LINPACK包裝成一種容易操控的介面 1957: Moler到Caltech. 研究數值分析 1961:到史丹佛大學講演. 與 G. Forsythe 合作研究Laplacian eigenvalues. 1977: 第1版 Matlab; 2,000條Fortran語法程式碼 80 個函數 (現已超過 8000個函數 ) 1979: 在史丹佛與 Jack Little 相遇,開始將源碼轉換成C 1984: Mathworks 成立 Matlab與Mathworks現況 Matlab, Simulink, Stateflow Matlab 2009b 各種領域的運用 航太,國防, 電腦,通信, 測繪… Mathworks 公司 3,500 以上的大學使用,500,000以上的用戶,100以上國家使用 2008年收益: 3億美元以上. 2008員工: 2,000人以上 價錢: ~2,000$ (商務版價), ~100$ (學生版價) 誰需要? 研發單位 老師 實驗室軟體設備之一 Matlab 著重在演算法而不是程式語言探討 學生 批次處理檔案 不必再需要另外學其他的語言! 給你一個測試概念的好環境 把概念很快轉換成程式碼, 然後轉成 C或Java 等 易懂的視覺圖 應具備的課程知識 微積分 常微分方程 矩陣 計算機程式編寫經驗 黃金分割比(求根) Fabonaci數(遞歸) Fractal(稀疏矩陣、圖像處理) Magic Square(矩陣元素運算) 密碼系統 3n+1 浮點算術 黃金分割比 黃金矩形:一個長方形其內截去了一個正方形之後,仍能保持等比例縮小的長方形。 用途: 選美評判身材勻稱 物體美(畫、金字塔、建築物勻稱和協,舞臺報幕位置安排) 植物葉子螺旋上升距離分布,受光照度最佳 公式:1/ψ=ψ-1/1 MATLAB goldrect 黃金分割比 黃金矩形:ψ2-ψ-1=0 求根: MATLAB 黃金分割比 連分數: 求根: MATLAB Fabonaci數 源起:一對兔子,每月生出另一對兔子,新生兔子下個月也加入生產行列,年終時會有多少兔子? 公式:fn=fn-1+fn-2,f1=1, f2=2 Fractal-平面上的點不斷做變換 Fractal Fractal Magic Square 幻方矩陣:為n?n矩陣,行加總=列加總=對角加總 三種類型 奇數階:n是奇數 單偶數階:n是2的倍數,但不是4的倍數 雙偶數階:n是4的倍數 秩 奇數階:有滿秩n,是非奇異矩陣並存在逆矩陣 單偶數階:秩為n/2+2是是常奇異矩陣 雙偶數階:秩為3,是非常奇異 MATLAB A=magic(n) det(A);inv(A);eig(A);svd(A);cond(A);diag(A);diag(flipud(A)) Magic Square 的密秘 密碼系統 將文字透過演算法,改變成讓人看不懂的文件。 例如‘TV’?‘1U’,作法如下: T的ASCII碼為 84,V的ASCII碼為86 ,各減去32,作成列向量 y≡Ax,mod p(兩個整數對指定的質數有相等的餘數) , 再利用質數對變換取模 y的值各加上32,17+32=49 ASCII碼為 1 , 53+32=85 ASCII碼為 U 密碼系統 function y = crypto(x) P=97 c1 = char(169); c2 = char(174); x(x==c1) = 127; x(x==c2) = 128; x = mod(real(x-32),p); n = 2*floor(length(x)/2); X = reshape(x(1:n),2,n/2); A = [71 2; 2 26]; Y = mod(A*X,p); y = reshape(Y,1,n); if length(x) n y(n+1) =
文档评论(0)