物理是一門以實驗為基礎的學科,通過實驗和觀測,探求物理現象后面的原因,歸結后形成新的物理理論,再對理論推論檢驗其正確性和應用范圍[1]P3-18.除了實驗,物理中要解決大量的計算問題,特別是在物理教學中,解題可以提高運用理論知識解決實際問題的能力,達到鞏固知識、擴大知識面等目的。
在對物理問題求解時,人們將物理量之間的關系用代數式表現,并通過求得代數式的解析解得到物理量之間的定量關系。在學校教學中,得到物理問題的解析解是必然,比如討論物體的運動問題,描述電場、磁場關系問題以及微觀粒子的運動問題,有相應的牛頓運動定律、麥克斯韋方程以及薛定諤方程數學公式,涉及到的問題一般都可以得到對應的解析解。長期以來,在物理教學中,形成對具體問題的討論以解析解為終結,認為物理問題是線性的。然而,物理研究范圍很廣,大到整個宇宙以及宇宙外部空間,小到超微觀粒子和空間。
世界在本質上屬于非線性,物理涉及的問題,大多數也是屬于非線性,線性問題僅僅占很小的一部分。對于非線性問題,在解決時常用的方法,是將非線性問題線性化,或者局部線性化求解,得到解析解,不能線性化的,采取避開,擱置一邊,盡管從物理的角度看,這類問題并不復雜[2]P18-26.為了解決這類非線性問題,隨著計算機技術發展,利用計算機的大存儲量和快速計算優勢,將物理中復雜多因素相互作用過程,用計算機來模擬、計算。使復雜的物理計算問題簡單化。
1、計算物理。
利用計算機的優勢來解決物理問題,早先最多運用的是復雜物理過程的模擬,如原子彈爆炸,高速飛行過程,教學中的機械波形成過程等待,形象清楚,容易分析。隨著科學技術的發展,計算機在對大量非線性問題進行數據處理過程中,提供了強有力的工具,出現了部分新的數值解,進一步推動了非線性科學的發展。
對物理問題求出解析解具有重要意義,首先,這是建立科學理論的基礎;其次,通過得到的解析解和實驗觀測的結果進行比對,可以解釋已知的實驗現象并在理論上預測未來的發展。但把求解析解作為物理研究問題的唯一方式又不完備,很多問題是不可能用代數方法求解,只能求數值解。因此,用計算機求解數值解勢在必行。
計算機作為工具,在應用過程中,依賴的理論原理和代數方程來自于物理理論,物理實驗提供需要的數據,再用物理理論及實驗進行分析檢驗得到的結果[3]P19-73.在實驗方面,應用計算機,可以幫助解決大量實驗數據的分析,控制實驗設備,數據獲取自動化,對實驗過程進行詳細的模擬等。在解決物理理論方面的問題時,計算機可以進行復雜的數值運算,提供計算數據用于進行理論物理的研究。在整個物理研究中,對已經存在定量理論的物理問題,利用計算物理尋找到使用數值方法解決的方法。
在物理學中,由于大量問題是非線性的,對這些問題無法嚴格求解。如量子力學中的單粒子,只能求解出少數幾種單粒子的簡單勢場中的運動。隨著計算機技術的飛速發展和計算方法的不斷完善,物理理論推論與實驗越來越廣泛的與計算物理聯系,計算機在對物理問題進行求解時,常用的方法有數值積分、微分方程數值解法、蒙特卡洛方法、有限元法以及神經元網絡法等。
用計算物理求解問題時,一般可分為以下幾個步驟:(1)根據物理學原理對具體問題列出具體的方程;(2)對所列出的方程確定數值計算方法;(3)由確定的計算方法編寫計算機程序并上計算機求出結果;(4)運用物理學原理對計算結果進行篩選。
其中,列出的具體方程,可以是代數式、超越方程等,除此以外,還要給出該問題滿足的初始條件或者邊界條件;確定數值計算方法時,主要考慮的是計算機的精度和速度;如果將計算方法作為解決問題的思路,那么對計算機編寫程序,就是解決問題實現思路的具體步驟。所以,每一步驟都是必要的。當然,計算結果也會存在偏差,如,對同一物理問題,存在著因為選用的計算方法不同而出現不同的結果,對計算結果的判斷,需要計算者具備一定的科學素養。
2、具體問題的求解。
應用計算機對物理問題進行科學的計算時,要應用高級語言,C 語言在高校非計算機專業的學生中,學習人數較多,在應用中顯得方便。以幾個具體物理問題為例。
2.1 力學問題。
一顆與太陽相距 r1的天體,在太陽的引力作用下,由靜止開始向太陽運動,此天體運動到與太陽相距為 r2時所需時間為[4]P176.
求出時間的具體值。
對時間用解析方法求積分比較困難,可用以下程序[5]P321:
# include
# include
# include
# define Rs 7.0e08
# define G 6.67e 11
# define Ms 2.0e30
main( )
{int i , n = 1000000;double ri , R1,R2 , r1 , r2 , t = 0.0 ;
R1 = 100 * Rs ;
R2 = 20 * Rs ;
ri = (R1 R2) / n ;
for(i = 0 ; i < n ; i + +){r1 = R2 + ri * i ;
r2 = R2 + ri * (i + 1) ;
if ( r1 = = R1) continue ;
if ( r2 = = R1) continue ;
if (r1 +r2) / 2 = = R1 ) continue ;
t + = (r2 r1) * (1/sqrt (2 * G * Ms / r1-2 * G * Ms /R1) + 1 / sqrt (2 * G * Ms/r2 2 * G * Ms/ R1) + 4 * (1/ sqrt ( 2* G * MS/ (r1/2 + r2/2) 2 * G * Ms/R1)))/ 6.0 ;
}
printf (“t = %e s \\ n”, t ) ;
}
結果:t = 1.706847e + 006 s.
2.2 電磁學問題。
[5]P321流過半導體二極管的電流 I 與二極管兩端電壓 V 的關系可以表示成:
式中 I0為常數,e=1.6×10^(-19)C;k=1.38×10-23J/K,將二極管與 R=1Ω 的電阻和電動勢 V的電源相串聯,當 I0=0.5A,T=293K 時,流過二極管的電流 I 和二極管兩端的電壓 V 是多少。
本題先用代數式求出二極管兩端電壓方程為:
將求出的電壓代入電流方程。
本題用代數式很難求出解析解。用 C 語言,程序如下:
# include
# include
# define e 1.6e 19
# define k 1.38e 23
main( )
{ double I0 = 0.5 , T = 293.0 , R = 1.0 ,E0 = 2.0 ;
double Vi1 , Vi2 , I, f1 , f2 ;
Vi2 = 1.0 ;
do
{ Vi1 = Vi2 ;
f1 = Vi1 E0 + R * I0 * exp (e *Vi1/ (k * T) 1 ) ;
f2 = 1 + R * I0 * exp (e * Vi1/ (k *T) 1 ) * e / (k * T) ;
Vi2 = Vi1 f1 / f2 ;
}while (fabs(Vi2 Vi1) > 0.001 ) ;
I = I0 * exp(e * Vi2 / (k * T) 1 ) ;
Printf (“\\ n RESULT : V = %e \\ n”, Vi2) ;
Printf(“\\ n I = % e \\ n”, I ) ;
}
結果:
V = 5.954266e 002
I = 1.940596
2.3 光學問題[6]P116-206.
計算溫度為 1000K 和 2000K 的黑體輻射源表面 1cm2的面積上在可見光波段(400nm-760nm)的輻射功率。
對該問題,由于單位時間內,從黑體輻射源單位表面積上輻射出來的在可見光波段的輻射功率為:
將普朗克黑體輻射公式代入可得:
式中:h=6.626×10^(-34)J . S ,k=1.38×10^(-23)J/K ,c=3.0×10^8m/s.
解該題的程序如下:
# include
# include
# define H 6.626e-34
# define K 1.38e-23
# define C 3.00e+8
# define A 400e-9
# define B 700e-9
void main( )
{ double pi , x , dx , jf , h1=0 , h2 = 0 ,e[301];
double t = 1000 ;
long i , n = 300 ;
pi = 4 * atan(1 ) ;
dx = (B- A )/ n ;
for(i = 0 ; i < = n ; i + + )
{
x = A + i * dx ;
e[i] = 2 * pi * H * C * C/(pow(x , 5 )* (H * C/K * t * x)) 1 )) ;
}
for(i = 1 ; i < = n-3 ; i = i +2 )
{
h1 = h1 + e[i] ;
h2 = h2 + e[i + 1] ;
}
jf = dx * (e[0] +e[n] +4 * (h1 +e[n 1 ])+ 2 * h2)/ 3 ;
printf (“\\ n n = %d”, n ) ;
printf (“ T = %f”, t ) ;
printf (“ E(T) = %f”, jf ) ;
getch ( ) ;
}
運行結果:
n = 300 T = 1000.000000 E (T) =0.101819
n = 300 T = 2000.000000 E (T) =6969.139583
(E(T)單位為:W / m2)
通過具體問題的求解發現,C 語言在物理題解中,可以將繁雜的計算簡單化,體現出在物理計算中應用計算機的優勢。
3、結束語。
在物理學領域,由于大多數問題的非線性,使得在處理問題時,變得很難解出解析解,將計算機的優勢應用于物理中,使計算簡單化,也因為計算機在物理學領域中的應用,在對物理學進行研究過程中,可以采用一些更嚴格、更全面的復雜模型,如模擬實驗上很難實現、技術要求很高或者實驗代價昂貴的系統等,由此可發現很多未預料的新現象,推動物理理論的發展,同時也將進一步推動非線性科學的發展。
在學校教學過程中,在物理題解中應用計算機,可以提高學生解決物理問題的能力,為獨立解決科研中的實際問題打下必要的基礎。
同時,簡化計算過程,可充分調動和發揮學生在物理學習中的能動性和主動性,使學生能積極參與到物理學領域的探索中。
參考文獻:
[1] 青峰。 簡明物理學史[M]. 南京:南京大學出版社,2007.
[2] 劉金遠,段萍,鄂鵬。 計算物理學[M]. 北京:科學出版社,2012.
[3] 張琴珠。 計算機輔助教育[M]. 北京:高等教育出版社,2003.
[4] 李增智,孟湛祥,吳亞非,胡艷艷。 大學物理習題的計算機解法[M]. 北京:國防工業出版社,2002.
[5] 賈瑞皋,薛慶忠。 電磁學[M]. 北京:高等教育出版社,2011.
[6] 梁紹榮,劉昌年,盛正華。 普通物理學 第四分冊光學(第二版)[M]. 北京:高等教育出版社,1997.