欢迎来到天天文库
浏览记录
ID:34408353
大小:303.97 KB
页数:10页
时间:2019-03-05
《激光谐振腔模式研究的数值矩阵方法_》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5模式计算的软件实现5.1程序编制的必要性及方法用数值方法进行各种模拟,运算量非常大。计算机的运用使得各种数值方法的大量应用成为可能。各种数学软件的出现更是极大的方便了对大量运算的需求。借助计算机,通过软件进行各类计算已经成为科学研究中最基本的手段。数值矩阵方法要想应用于实际工作中,就必需充分利用现有的计算工具,使其使用起来简单,快速,可靠。只有这样才能最大限度地将理论应用于实际科研,而不是仅仅是一种理论。为此,在验证了数值矩阵方法的有效性和可靠性之后,我们决定编制相应的计算程序。计算程序主要功能基于实现以下构想:(1)各种腔型的选取和谐振腔的各个参数的输入;(2
2、)腔内模式的求解、输出光束的近场分布和远场分布的计算;(3)计算结果的三维图形化显示。综合各方面的考虑,计算程序编制通过两种方式进行。一是完全使用MATLAB实现所需功能,另一种是采用MATLAB和高级语言(VisualC++)的混合编程技术。两者并无绝对优劣之分。前者主要是考虑到当前程序功能并不复杂,图形用户界面(GUI)[35]用MATLAB实现起来并不困难。后者底层算法调用MATLAB函数库,图形用户界面(GUI)由通用编程语言VC实现。主要出于应用方便着想,因为MATLAB环境不如VC那样普遍。因为单一MATLAB的编程相对容易,后面将主要介绍混合编程的思
3、想。5.2编程语言――MATLAB和VC简介MATLAB是Mathworks公司开发的著名数值计算和系统分析、仿真工具,它在矩阵运算、数值分析、二维和三维图形处理等方面均有极强的功能。MATLAB编程语言是一种比通常的高级语言更加高级,因而更贴近用户的语言;它不仅包含大量高度集成的函数可供直接调用,以解决各种复杂的计算和处理,而且提供完全开放的环境,便于用户添加专用函数和模块以解决具体项目中提出的问题。编写MATLAB程35序所需时间往往比使用其他编程语言缩短许多倍,程序代码简洁而紧凑,因此在解决复杂的数学计算和新算法的研究中具有极大的优势。MATLAB提供的函数
4、库是大量各种形式的数学函数和算法的集合,它不但包括了最基本的初等函数,如sum、sine、log和复数运算等,还包含了大量复杂的高级函数和算法,如贝赛尔(Bessel)函数、快速傅立叶变换(FFT)和矩阵特征值求解等。这些函数分为初等数学、专用数学、矩阵操作、稀疏矩阵、线性代数、数值分析、插值拟合和功能函数等八个部分。用户在编写MATLAB程序时,可以轻松地调用这些函数和算法,从而极大地方便了程序开发。在编程效率、可读性、可移植性和可扩充性上,MATLAB远远优于其它高级编程语言。由于最初开发和设计MATLAB的动机是为了简化复杂的矩阵运算,MATLAB在矩阵操作
5、和线性代数求解方面,显示出简洁高效的特点。MLAB的最大特点是它的数据类型只有有一种,即矩阵。用MATLAB将所有的数据都处理成矩阵。标量、字符是只有一个元素的矩阵,向量是只有一行或一列的矩阵,字行串是由若干个字符组成的矩阵。MATLAB的这种处则方法,使得用户不必[36]定义变量和数据类型,而且矩阵的大小可任意改变。MATLAB程序设计语言非常简洁,效率很高。在C语言里需要几十行语句才能完成的工作,如果使用MATLAB语言编写程序,往往只需寥寥几条语句就可达到相同的效果。与其他计算机高级编程语言类似,MATLAB提供了完备的循环、转移和跳出等控制语句,使得程序设
6、计非常灵活。MATLAB语言编程主要方式是通过编写脚本文件和函数文件实现的。通常称为M文件,后缀名均为m。脚本是一系列指令的集合,当在命令框中键入脚本文件的文件名后,MATLAB将依次执行脚本文件中的指令。而函数调用则是需要传递变量的值,而后被调用函数中的指令对被赋了值的变量进行运算。和通常的C语言的*.c文件不同,M文件可以作为指令集合,直接在MATLAB的解释环境下运行。同时,M文件也可以被编译和相互调用。MATLAB自身提供的很多函数和功能也是靠M文件来实现的。VisualC++(简称VC)是下Windows操作平台下的主要编程语言之一,它能方便地36[37
7、]生成应用软件中所需要的各种用户界面,并能直接与系统及底层硬件交换数据。用VC开发的软件系统具有容易维护升级、界面友好、代码效率高、执行速度快等一系列优点。因此VC已成为目前应用软件开发中广泛使用的主要工具。5.3MATLAB与高级语言的混合编程5.3.1混合编程的优点MATLAB不够普遍,单纯使用MATLAB编写的程序必需在装有MATLAB的计算机上才能运行,因此常常会带来不变,因此考虑采用MATLAB与VC混合编程,解决这一问题。此外,混合编程也有其它一些好处。(1)在MATLAB的自身运行环境下,它实际上是一种解释性语言,用户编写的M文件,被逐行读入,并“翻
8、译”成相关
此文档下载收益归作者所有