999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

計算物理教學(xué)中基于FORTRAN的結(jié)果可視化方法

2017-06-22 14:49:22王圣軍
物理通報 2017年6期
關(guān)鍵詞:可視化物理語言

王圣軍 金 濤

(陜西師范大學(xué)物理學(xué)與信息技術(shù)學(xué)院 陜西 西安 710062)

計算物理教學(xué)中基于FORTRAN的結(jié)果可視化方法

王圣軍 金 濤

(陜西師范大學(xué)物理學(xué)與信息技術(shù)學(xué)院 陜西 西安 710062)

介紹在計算物理教學(xué)中配合Fortran語言進(jìn)行可視化輸出的一種高效的方法.以利薩如圖形的模擬和可視化輸出作為例子介紹了這種可視化方法.這種方法結(jié)合了Fortran的系統(tǒng)函數(shù)功能和gnuplot的腳本功能,可以自動地把數(shù)據(jù)文件以圖形的方式顯示出來或者保存為圖片文件.整個可視化過程需要的繪圖代碼少,操作簡潔,并且所用軟件都是在科學(xué)研究中常用的免費軟件.通過這種方法能夠低成本高效地實現(xiàn)計算結(jié)果的可視化.

計算物理學(xué) 可視化 Fortran Gnuplot

隨著計算機在物理學(xué)中被廣泛地應(yīng)用,計算物理已經(jīng)成為一門重要的課程.在計算物理中將數(shù)據(jù)轉(zhuǎn)換為圖像進(jìn)行可視化輸出,可以使結(jié)果直觀、易于理解,是使用計算機處理數(shù)據(jù)的一大優(yōu)勢.所以計算結(jié)果的可視化輸出是計算物理教學(xué)中的一個重要環(huán)節(jié)[1].對于計算物理中常用的編程語言來說,圖形化輸出是一件麻煩的事情.比如Fortran語言和C語言標(biāo)準(zhǔn)本身沒有圖形輸出功能.

為了可視化輸出結(jié)果,有些教材采用了BASIC或者Java等有圖形功能的計算機語言,在程序中編寫圖形輸出的代碼.例如文獻(xiàn)[2]中采用的計算機語言是BASIC.在分子振動的半經(jīng)典量子化的例子中,作者提供的程序包含了可視化輸出.程序代碼總長度是302行,而其中與圖形輸出相關(guān)的代碼子程序有172行.其中有大量的代碼被用來設(shè)定圖形輸出的環(huán)境和格式.這種可視化方式花費的代價比較大.在教學(xué)中解釋這些代碼需要花費比較多的時間.

在傳統(tǒng)的編程語言之外,MatLab是一個非常強大的工具,在計算和數(shù)據(jù)可視化方面的功能都非常豐富并且使用方便輸出美觀[3].但是傳統(tǒng)的編程語言在科學(xué)計算中仍被廣泛使用.所以本文關(guān)注配合傳統(tǒng)編程語言使用的繪圖工具和可視化輸出方法.

本文介紹了以Fortran語言作為教學(xué)語言的情況下計算結(jié)果可視化輸出的方法.我們選用的Fortran語言編譯器是Gfortran.這是一個性能良好的免費軟件,它既支持Fortran77也支持最新的Fortran語言標(biāo)準(zhǔn).

我們選用的繪圖軟件是Gnuplot.這是一種比較常用的免費科學(xué)繪圖軟件,可以繪制函數(shù)和數(shù)據(jù)的2維以及3維圖.它常被用于科學(xué)出版物的繪圖,能在各種主流操作系統(tǒng)上運行,包括Windows,Linux等.Gnuplot可以把圖形直接輸出到屏幕上,也可以保存為多種格式的圖像文件,包括EPS,PDF,JPEG等.它可以通過命令行以交互的方式使用,也可以通過腳本以批處理模式使用.

我們通過一個例子來說明使用這些軟件進(jìn)行可視化輸出的方法.這個例子是用Fortran語言寫程序輸出利薩如曲線.我們以腳本方式使用Gnuplot進(jìn)行繪圖.首先建立一個Fortran源程序prog.f90.具體內(nèi)容如下:

program main

implicit none

real :: x,y,omx,omy,phix,t,h

open(10,file=′x-y.txt′)

t=0;h=0.01

omx=3.0;omy=4.0;phix=3.1415926/2

do while(t<100)

x=sin(omx*t+phix)

y=sin(omy*t)

write(10,*)x,y

t=t+h

enddo

close(10)

call system("gnuplot pl.txt")

endprogram

然后,建立一個Gnuplot的腳本文件pl.txt.把這個文件和Fortran源程序文件prog.f90放在同一個文件夾里面.這個腳本文件是一個純文本文件.文件的內(nèi)容只有兩行.具體內(nèi)容如下:

plot ′x-y.txt′ with lines

pause-1

在Windows的命令窗口中,使用Gfortran編譯源程序的命令為:

gfortran prog.f90

編譯以后得到的可執(zhí)行程序是a.exe.這個程序首先完成計算過程,把數(shù)據(jù)保存到文件”x-y.txt”中.然后當(dāng)程序運行到call system("gnuplot pl.txt")的時候,它調(diào)用Gnuplot軟件.此時彈出如圖1所示的圖形輸出窗口.

圖1 Gnuplot的圖形輸出窗口

在程序prog.f90中,關(guān)于繪圖的代碼只有一行:

call system("gnuplot pl.txt")

在這里,我們使用了系統(tǒng)函數(shù)system(),括號中的字符串被傳遞給操作系統(tǒng)的命令窗口.這一句的功能是在命令窗口中調(diào)用Gnuplot并且讓它使用腳本pl.txt繪圖.

這里的Gnuplot腳本文件只有兩行.第一行使用了繪制2維圖的命令plot.在命令中寫入了數(shù)據(jù)文件的名字x-y.txt.Gnuplot軟件會去硬盤上讀取這個文件,用其中的數(shù)據(jù)進(jìn)行繪圖.plot命令的選項with lines指定了使用線來繪圖.第二行pause-1指示Gnuplot在繪圖之后不要退出,而是等待輸入.這時在命令窗口中按Enter鍵就可以關(guān)閉圖形輸出窗口并退出Gnuplot.

系統(tǒng)函數(shù)system()在早期的Fortran語言標(biāo)準(zhǔn)中不是內(nèi)部函數(shù),但是多數(shù)編譯器都支持這個函數(shù).在使用Gfortran進(jìn)行編譯的時候可以直接使用這個函數(shù).在使用Visual Fortran進(jìn)行編譯的時候要使用一個模塊use DFPORT.在使用ifort編譯的情況下,要使用的模塊是use IFPORT.在最新的Fortran語言標(biāo)準(zhǔn)中已經(jīng)包含了此功能,使用它的方法是調(diào)用標(biāo)準(zhǔn)的內(nèi)部子程序:

call execute_command_line (“gnuplot pl.txt”)

在支持新標(biāo)準(zhǔn)的編譯器中使用這種方法時不需要在源程序中包含特殊的模塊.

這里介紹的做法實際等效于先保存數(shù)據(jù)文件,然后使用獨立的繪圖軟件導(dǎo)入數(shù)據(jù),進(jìn)行繪圖.但是Gnuplot的腳本功能使我們不需要操作繪圖軟件.Fortran語言的系統(tǒng)函數(shù)功能,結(jié)合Gnuplot的腳本功能,使得畫圖成為一個自動化的過程.這種方式在課堂演示中非常快捷方便.另外,在科學(xué)計算的編程和模擬中,快速地對結(jié)果進(jìn)行圖形化輸出是檢驗程序是否存在錯誤或者尋找適當(dāng)參數(shù)的快捷方法.所以這個方式在科學(xué)計算中也具有實際的應(yīng)用價值.

在Gnuplot的腳本中可以通過簡單的命令進(jìn)行更多的設(shè)置.這里介紹幾個常用的設(shè)置.首先,可以設(shè)定坐標(biāo)軸上的標(biāo)簽.例如使用命令:

set xlabel ′x′

set ylable ′y′

把x軸和y軸的標(biāo)簽設(shè)定為x和y.其次,還可以使用對數(shù)坐標(biāo).設(shè)定坐標(biāo)軸采用對數(shù)坐標(biāo)的命令是:

set logscale x

set logscale y

也可以設(shè)定讓Gnuplot不把結(jié)果輸出到屏幕上,而是把結(jié)果保存成一個圖片文件.Gnuplot支持多種圖片格式.例如,可以把利薩如曲線輸出一個png格式的圖片.在腳本中首先設(shè)定輸出終端類型:

set terminal png

然后設(shè)定輸出文件名稱:

set output ′fig.png′

輸出為圖片文件時,腳本中不寫pause-1.一個完整腳本的例子如下:

set terminal png

set output ′fig.png′

set xlabel ′x′

set ylabel ′y′

plot ′x-y.txt′ with lines

使用這個腳本,得到的圖片如圖2所示.

圖2 Gnuplot輸出的圖片

Gnuplot盡管是一個免費軟件,但是目前已經(jīng)被廣泛地應(yīng)用到了科學(xué)研究的繪圖任務(wù)中.一些重要的免費版科學(xué)數(shù)據(jù)分析軟件是以Gnuplot為繪圖組件的.在計算物理中學(xué)習(xí)Gnuplot的簡單使用方法,對于未來的學(xué)習(xí)和研究都有潛在的幫助.此外,Gnuplot的使用方式和Matlab等商業(yè)版軟件比較接近,對于學(xué)習(xí)Matlab也有幫助.

結(jié)論:本文介紹了一種高效地把數(shù)值計算結(jié)果可視化輸出的方法.該方法結(jié)合了Fortran語言的系統(tǒng)函數(shù)功能和Gnuplot軟件的腳本繪圖功能,能夠自動化地把數(shù)據(jù)文件輸出到屏幕或者圖形文件,不需要操作繪圖軟件的中間過程,有利于實現(xiàn)高效的課堂演示.這種方式需要的代碼少,使用方便,容易掌握.這里介紹的所有軟件都是免費軟件,便于學(xué)生在個人計算機上使用,從而有利于學(xué)生靈活地開展計算物理課程的上機實踐.

1 彭芳麟, 梁穎. 科學(xué)計算可視化與計算物理學(xué). 大學(xué)物理, 2013, 32(7): 2~12

2 S. E. Koonin著. 計算物理學(xué). 秦克誠,譯. 北京: 高等教育出版社, 19923 彭芳麟. 計算物理基礎(chǔ). 北京: 高等教育出版社, 2010

2016-11-24)

猜你喜歡
可視化物理語言
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
處處留心皆物理
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
讓語言描寫搖曳多姿
三腳插頭上的物理知識
累積動態(tài)分析下的同聲傳譯語言壓縮
主站蜘蛛池模板: 久久综合久久鬼| 国产h视频免费观看| 久久黄色免费电影| 日韩在线影院| 无码丝袜人妻| 色妞www精品视频一级下载| 国产女人在线观看| 婷婷午夜天| 精品少妇人妻无码久久| 波多野结衣在线一区二区| 四虎影视库国产精品一区| 亚洲男人的天堂在线观看| 亚洲天堂啪啪| 亚洲欧美成aⅴ人在线观看| 欧美一级一级做性视频| 亚洲天堂成人在线观看| 久久精品女人天堂aaa| 亚洲精品无码在线播放网站| 国产黄色免费看| 男人天堂亚洲天堂| 久久精品一品道久久精品| 亚洲最黄视频| 免费一级成人毛片| 欧美翘臀一区二区三区| 久久6免费视频| 色丁丁毛片在线观看| 亚洲天堂免费在线视频| 亚洲福利视频网址| 国产成人精品视频一区二区电影| 国产情精品嫩草影院88av| 久久无码av三级| 成人国产免费| 国产小视频免费| 人妻中文久热无码丝袜| 婷婷开心中文字幕| 秘书高跟黑色丝袜国产91在线 | 毛片在线播放a| 亚洲第一极品精品无码| 午夜性爽视频男人的天堂| 国产在线拍偷自揄观看视频网站| 久久男人资源站| 色综合中文综合网| 97色婷婷成人综合在线观看| 高清乱码精品福利在线视频| 狠狠色噜噜狠狠狠狠色综合久| 永久天堂网Av| 无码AV高清毛片中国一级毛片| 亚洲无卡视频| 婷婷六月综合网| 亚洲国产欧美中日韩成人综合视频| 亚洲午夜国产精品无卡| 成人免费午夜视频| 永久免费av网站可以直接看的| 五月天久久综合| 国产美女免费| 国产精品成人一区二区| 中文字幕人妻av一区二区| 亚洲欧洲日产国产无码AV| 国产精品香蕉在线观看不卡| 8090成人午夜精品| 欲色天天综合网| 日本少妇又色又爽又高潮| 国产精品99一区不卡| 日韩少妇激情一区二区| 免费aa毛片| 亚洲无码91视频| 91久久国产热精品免费| 日韩欧美一区在线观看| 黄色网在线| 欧美成人a∨视频免费观看 | 97se亚洲综合在线天天| 色九九视频| 亚洲精品无码专区在线观看 | 国产丝袜一区二区三区视频免下载| 在线a网站| 91色综合综合热五月激情| 欧美日本不卡| 九色综合视频网| 国产成人8x视频一区二区| 九九精品在线观看| 国产在线第二页| 亚洲最大福利视频网|