时间:2015-12-20 22:44:55 所属分类:计算机应用 浏览量:
物理是一门以实验为基础的学科,通过实验和观测,探求物理现象后面的原因,归结后形成新的物理理论,再对理论推论检验其正确性和应用范围[1]P3-18.除了实验,物理中要解决大量的计算问题,特别是在物理教学中,解题可以提高运用理论知识解决实际问题的能力,
物理是一门以实验为基础的学科,通过实验和观测,探求物理现象后面的原因,归结后形成新的物理理论,再对理论推论检验其正确性和应用范围[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 <stdio.h> # include <math.h> # include <stdlib.h> # 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 <stdio.h> # include <math.h> # 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 <math.h > # include <stdio.h > # 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.转载请注明来自:http://www.zazhifabiao.com/lunwen/dzxx/jsjyy/29103.html
上一篇:远程教学相关的计算机维护管理措施
下一篇:主流云计算技术平台搭建及案例