教育部專案計畫補助跨領域教材
唯一使用Visual Fortran之計算物理教材
全書十章共25個f90程式及25個應用程式
所有應用程式均可立即於Windows下執行
隨書附贈程式光碟
支援網站http://spy.pccu.edu.tw/comphy
本書的特點有三:
一、使用Visual Fortran程式語言
在計算物理課程使用Fortran者甚多,但使用Visual Fortran則極少,它可以兼顧使用者對於高效能運算與即時繪圖之需求。
二、Visual Fortran之二維、三維繪圖、動畫、影像及音效之處理
繪圖、動畫、影像及音效是學生極感興趣的主題,本教材可協助學生自行創作圖形、動畫及音效,提升學習興趣及效果。
三、PVM與MPI平行運算系統之詳盡介紹
PVM與MPI平行運算系統大部分使用Unix或Linux系統,本教材介紹Windows版本,讓使用者很容易即可利用電腦實驗室汰換的電腦,自行架設及使用平行運算系統。
作者簡介:
黃信健
美國洛杉磯加州大學物理系博士,任教於中國文化大學物理系。
章節試閱
第一章 Compaq Visual Fortran簡介
在動筆寫計算物理課本之前,第一個首要問題,便是到底要選用哪一種程式語言?而坊間計算物理課本所使用的程式語言從Java、C、Fortran、Maple、Mathematica乃至於true Basic,可謂五花八門、應有盡有。這些程式語言自然亦各具特色;譬如Maple和Mathematica長於符號運算,又能即時繪圖;Basic簡單易學,也能即時繪圖;Java具有免費軟體的優勢,更隨著網路發達,成為最廣為人所用的程式語言,至於C及Fortran可謂老牌專業程式語言,Fortran尤其具有可做高效能平行運算、擁有眾多支援的科學程式庫、及大多數大型科學模擬程式均使用Fortran之特點,而這也是本書採用Fortran的主要考量。
一般的Fortran採用命令列方式輸入,在DOS下操作;通常利用Fortran強大的運算能力得到數據,再透過其他繪圖軟體讀取數據繪圖,程序不可謂不繁瑣,也容易出錯。
在此方面,Visual Fortran 具有強大的計算及繪圖功能,適合用於物理系統的模擬與視覺化;此外,編譯器也提供相當清楚明確的錯誤訊息,及內建除錯器(debugger),提供程式設計者不錯的開發環境。它由最早的 Microsoft Powerstation演變為Digital Visual Fortran,繼而演變為Compaq Visual Fortran,目前則為Intel Visual Fortran,但核心並無太大改變。
對傳統Fortran 的使用者來說,Visual Fortran具有視窗介面,且編譯完成後所得到的執行檔為一應用程式,可在其他視窗下執行,因此具有雙重便利性。
1.1 Fortran77、Fortran90與Compaq Visual Fortran
Compaq Visual Fortra編譯器支援Fortran77、Fortran90與Fortran95,由於文獻及網路上最常見的是Fortran77和Fortran90,本書也以此二者為主,並將逐步培養學習者搜尋及利用網路資源,以建立及改進本身應用程式之能力。
Fortran77與Fortran90的主要差異有以下幾點 [9]:
欄位:Fortran77為固定格式(fixed format),第一欄為註解欄,第2至5欄為位址欄,第六欄為接續欄,因此指令(fortran statement)須寫在第7至72欄;Fortran90為自由格式(free format),指令(fortran statement)可寫在第1至132欄。(圖1.1及圖1.2)
換行:Fortran77每行只能寫一指令,指令太長需換行時,要在第六欄接續欄輸入任一文數字元;Fortran90則是每行能寫數個指令,用分號”;”隔開,換行時在行末輸入符號”&”。
註解:註解對程式的開發及推廣至為重要,Fortran77是在第一欄註解欄輸入字母”C”(comment);Fortran90則是可在任一欄輸入驚嘆號”!”,其後的敘述即成為註解。
第一章 Compaq Visual Fortran簡介
在動筆寫計算物理課本之前,第一個首要問題,便是到底要選用哪一種程式語言?而坊間計算物理課本所使用的程式語言從Java、C、Fortran、Maple、Mathematica乃至於true Basic,可謂五花八門、應有盡有。這些程式語言自然亦各具特色;譬如Maple和Mathematica長於符號運算,又能即時繪圖;Basic簡單易學,也能即時繪圖;Java具有免費軟體的優勢,更隨著網路發達,成為最廣為人所用的程式語言,至於C及Fortran可謂老牌專業程式語言,Fortran尤其具有可做高效能平行運算、擁有眾多支援的科學程式庫、及大多數...
作者序
本書是中國文化大學執行教育部99-100年大學跨學門科學人才培育銜接計畫的成果,在因緣際會之下,我擔任本校總計畫主持人、有幸與物理系程思誠教授、吳慧敏教授、電機系李克怡主任、化材系陳景祥院長、吳誌明教授及紡織工程學系王權泉教授合作,共同推動五個分項計畫,包括99A1物理–計算、材料、天文與光電專題研究人才培育計劃、99-B 1-1奈米碳管應用於生物感測器、99-B 1-2重組蛋白質表現、純化與應用、100-B1-1奈米碳管應用於提升奈米複合材料機械性質及100-B1-2奈米碳管應用於抗電磁波纖維膜之製作。兩年期間,不僅各計畫推動順利、成果豐碩,也大幅提升我們跨系及跨院的合作,其中尤以99A1物理–計算、材料、天文與光電專題研究人才培育計劃更促成了本書的誕生。
99A1是文化大學物理系近年來推動專題導向之師徒制小組學習的成果體現,我們透過書報討論及專題研究課程引導學生逐步由專題演講、文獻研讀、小組研討、繼而分組實驗演習、進度追蹤分享、期中期末報告、最後舉行壁報論文比賽發表成果。這套作法實施幾年來,收效甚宏,也頗獲肯定,因而在2010年獲得教育部計劃補助,並完成六份教材,包括我的專題討論計算物理A組教材、鄒忠毅教授的專題討論計算物理B組教材、王建亞教授的專題討論應用光學組-全像光學元件、3D圖與變圖、江丕智教授的專題討論天文物理組-橢圓運動中的二體問題、吳慧敏教授的專題討論奈米材料組教材及蔣幼齡教授的專題討論物理數學組教材。本書即脫胎自專題討論計算物理A組教材。
以內容而言,本書包含我過去十四年以來,教授數值分析、計算物理、非線性物理及平行運算與影像處理等課程的教材與講義,其中數值分析主要採用Ward Cheney and David Kincaid的Numerical Mathematics and Computing, 4th- 6th Edition,計算物理主要採用Rubin H. Landau & Manuel J. Paez的Computational Physics, problem solving with computers,非線性物理主要採用Richard H. Enns and George C. McGuire的Nonlinear Physics with Maple for Scientists and Engineers, 2nd Ed.、平行運算與影像處理主要採用Al Geist及Adam Beguelin等的PVM: Parallel Virtual Machine–A Users' Guide and Tutorial for Networked Parallel Computing及Ioannis Pitas的Digital Image Processing Algorithms and Applications。此外,在專題討論(一)、(二)、 (三)中,計算物理組成員葉曉祥、周惠萱、張茗婷及葉晉瑜的專題,包括靜電位的數值解與解析解、力學與電路系統中的線性與非線性振盪、PVM 平行運算系統之架設與測試,Sequential and parallel solutions with PVM and MPI of the Electrostatic Laplace Equation、Lorentz system的模擬、實驗與多媒體呈現及Polynomial Basins of Attraction等,也構成本書的骨幹。
本書的特點有三:
一、使用Visual Fortran程式語言
在計算物理課程使用Fortran者甚多,但使用Visual Fortran則極少,它可以兼顧使用者對於高效能運算與即時繪圖之需求。
二、Visual Fortran之二維、三維繪圖、動畫、影像及音效之處理
繪圖、動畫、影像及音效是學生極感興趣的主題,本教材可協助學生自行創作圖形、動畫及音效,提升學習興趣及效果。
三、PVM與MPI平行運算系統之詳盡介紹
PVM與MPI平行運算系統大部分使用Unix或Linux系統,本教材介紹Windows版本,讓使用者很容易即可利用電腦實驗室汰換的電腦,自行架設及使用平行運算系統。
本書分為三部分共計十章,希望以由淺入深、由基本到應用、由基礎到跨領域的方式,逐步介紹計算物理;第一部”程式語言與編譯器”,包括第一章 ”Compaq Visual Fortran簡介”、第二章 ”使用Compaq Visual Fortran 繪圖”,及第三章 ”進階繪圖: 影像處理(Image Processing) 與旅行銷售員問題(Travelling Salesman Problem) ”;第二部 ”計算物理:電磁學、力學、非線性與最佳化問題”,包括第四章 ”靜電位的數值解與解析解”,第五章 ”力學與電路系統中的線性與非線性振盪”,第六章 ”Lorenz system的模擬、電路實驗與多媒體呈現”,及第七章 ”多體系之間的競爭問題”;第三部 ”PVM與MPI平行運算系統”,包括第八章 ”PVM平行運算系統之架設與測試”,第九章”MPI平行運算系統I:TSP and Laplace Equation”,及第十章 ”MPI平行運算系統II:波與熱之1D與2D動畫”。
除紙本之外,本書另附程式光碟,包含各章所用f90程式及編譯完成之執行檔。f90程式均依其目的及其出現章節命名:
integration01:梯形法、辛普森法及高斯法等之數值積分;
bug01:Logistic Map產生程式;
convert01:二進位、八進位及十六進位之轉換;
rk4sys01:用四階Runge Kutta法解聯立微分方程式;
boa02:吸引域產生程式,包含以IMSL解多項式的根;
mandel02:Mandelbrot Map產生程式;
scarpet02:Sierpinski carpet產生程式;
3Dplot24:3D動態繪圖程式,用於第二及第四章;
image03:包含十四種功能之影像處理程式;
tsp03:以模擬退火法解旅行銷售員問題及繪圖;
oscillator57:根據rk4sys01修改,可解振盪及競爭問題,用於第五及第七章;
lorenz06:根據rk4sys01修改,可解lorenz系統及作3D繪圖;
beep06:混沌音效產生程式;
bell06:混沌音效wav波形檔產生程式;
psdot08:PVM內積計算範例程式;
circle08:PVM circle map產生程式;
laplacePVM08:以PVM解Laplace equation;
hello09:MPI測試範例程式;
pi09:MPI 圓周率計算範例程式;
laplaceMPI09:以MPI 解Laplace equation;
wave10:解波動方程式,以動畫呈現;
heat101:解熱傳導方程式,以動畫呈現;
heat102:解熱傳導方程式,以3DPlot呈現;
heatMPI10:以MPI解熱傳導方程式;
waveMPI10:以MPI解波動方程式。
這些程式經Visual Fortran編譯之後,將產生應用程式,可在其他Windows系統下獨立執行,因此我們也在光碟內附上這些應用程式,以供未安裝Visual Fortran編譯器的讀者使用。
除光碟之外,我們也在網站http://spy.pccu.edu.tw/comphy上提供課程簡介、講義、作業及範例程式供使用者下載。
最後,謹向本書編輯委員會成員淡江大學化學系王伯昌院長、台灣大學物理學系傅昭銘教授、文化大學物理學系吳慧敏教授、王建亞教授、蔣幼齡教授及鄒忠毅教授的指正與協助深致謝意,並感謝教育部顧問室及中央大學跨學門科學人才培育銜接計畫辦公室的指導與協助。
本書是中國文化大學執行教育部99-100年大學跨學門科學人才培育銜接計畫的成果,在因緣際會之下,我擔任本校總計畫主持人、有幸與物理系程思誠教授、吳慧敏教授、電機系李克怡主任、化材系陳景祥院長、吳誌明教授及紡織工程學系王權泉教授合作,共同推動五個分項計畫,包括99A1物理–計算、材料、天文與光電專題研究人才培育計劃、99-B 1-1奈米碳管應用於生物感測器、99-B 1-2重組蛋白質表現、純化與應用、100-B1-1奈米碳管應用於提升奈米複合材料機械性質及100-B1-2奈米碳管應用於抗電磁波纖維膜之製作。兩年期間,不僅各計畫推動順利、成...
目錄
前言
第一部 程式語言與編譯器
第一章 Compaq Visual Fortran簡介
1.1 Fortran77、Fortran90與Compaq Visual Fortran
1.2 Compaq Visual Fortran的視窗介面
1.3 檔案的開啟與讀寫(open, read and write)
1.4 使用常用副程式及程式庫(subroutine and library)
第二章 使用Compaq Visual Fortran 繪圖
2.1 Visual Fortran的科學繪圖模組scigraph
2.2 使用Compaq Visual Fortran直接繪圖
2.3 以Visual Fortran繪出3D互動立體圖
第三章 進階繪圖: 影像處理(Image Processing)
與旅行銷售員問題(Travelling Salesman Problem)
3.1 簡介
3.2 Visual Fortran影像處理系統
3.3 image03.f90
3.4 旅行銷售員問題
3.5 tsp03.f90
第二部 計算物理:電磁學、力學、非線性與最佳化問題
第四章 靜電位的解析解與數值解
4.1 簡介
4.2 Laplace's Equation的解析解與數值解
4.3 三個範例之解析解與數值解
4.4 3Dplot24.f90
第五章 力學與電路系統中的線性與非線性振盪
5.1 簡介
5.2 解運動方程式
5.3 X-t, V-t圖與X-V相空間
5.4 佛科擺與卡皮查擺
5.5 Oscillator57.f90
第六章 Lorenz system的模擬、電路實驗與多媒體呈現
6.1 簡介
6.2 Lorenz system的2D與3D圖
6.3 混沌音樂(Chaos Music)
6.4 Chua Circuit
6.5 Lorenz06.f90
6.6 beep06.f90
6.7 bell06.f90
第七章 多體系之間的競爭問題
7.1 簡介
7.2 Volterra-Lotka 競爭方程組
7.3 中歐狐狸狂犬病的流行病模型
7.4 Rapoport的軍火競賽模型
7.5 化學振盪反應
第三部 PVM與MPI平行運算系統
第八章 PVM平行運算系統之架設與測試
8.1 簡介
8.2 軟硬體需求
8.3 系統架設
8.4 平行運算原理與架構
8.5 測試實例
8.6 psdot08.f
8.7 circle08.f
8.8 laplacePVM08.f
第九章 MPI平行運算系統I:系統架設與測試
9.1 簡介
9.2 MPI系統之架設與測試
9.3 hello09.f90
9.4 pi09.f
9.5 LaplaceMPI09.f
第十章 MPI平行運算系統II:波動與熱傳
10.1 簡介
10.2 波方程式
10.3 wave10.f90
10.4 熱傳導方程式
10.5 heat101.f90
10.6 heat102.f90
10.7 以MPI解波方程式
10.8 waveMPI10.f90
10.9 以MPI解熱傳導方程式
10.10 heatMPI10.f90
參考文獻
前言
第一部 程式語言與編譯器
第一章 Compaq Visual Fortran簡介
1.1 Fortran77、Fortran90與Compaq Visual Fortran
1.2 Compaq Visual Fortran的視窗介面
1.3 檔案的開啟與讀寫(open, read and write)
1.4 使用常用副程式及程式庫(subroutine and library)
第二章 使用Compaq Visual Fortran 繪圖
2.1 Visual Fortran的科學繪圖模組scigraph
2.2 使用Compaq Visual Fortran直接繪圖
2.3 以Visual Fortran繪出3D互動立體圖
第三章 進階繪圖: 影像處理(Image Processing)
與旅行銷售員問題(Travelling Salesman Probl...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。