mie散射粒子消光系数 matlab代码,一种球形粒子GMie散射效率极值的算法

一种球形粒子G Mie散射效率极值的算法

【专利摘要】球形粒子的G?Mie散射问题属于物理光学领域,涉及光与原子的相互作用。G?Mie理论在有着广泛的用途,如分析激光衍射粒度,光镊,激光制冷,大气理论和温室效应分析等。目前涉及G?Mie理论散射效率极值的报道还没有出现,而散射效率极值的分析对我们研究散射过程有着重要意义。本发明利用MATLAB计算了散射效率的极值,这种算法能计算出G?Mie散射效率的极值,方便与我们对G?Mie散射效率极值做出分析并且可以得到G?Mie理论散射效率的同时得出了G?Mie散射理论中a,b,c,d四个系数和散射效率与尺寸参量的图像。

【专利说明】一种球形粒子GMie散射效率极值的算法

【技术领域】

[0001]球形粒子的G Mie散射问题属于物理光学领域,涉及光与原子的相互作用。

【背景技术】

[0002]1908年,G Mie发表了任何尺寸均匀球形粒子散射问题的严格解,对于粒子散射,G Mie理论是目前应用广泛的的算法,当处理波长量级的粒子散射问题时,这种算法精确度最高。但是G Mie散射理论不是作为一个完全独立的理论出现的,而是球形粒子在麦克斯韦方程组下的一个解析解。但是由于求解本身的非常的复杂,G Mie第一个完美求出这个解,后来人们用G Mie理论来命名他的求解算法。

[0003]G Mie理论在有着广泛的用途,如分析激光衍射粒度,光镊,激光制冷,大气理论和温室效应分析等。

[0004]G Mie散射理论特别复杂,国内外很多专家学者都对其算法进行了研究。在国外,Van de hulst证实,对于复折射率较大的金属粒子等特殊粒子,利用这种后向递推公式无法得到准确的结果。Dave于1968年第一次利用前向递推算法计算出了消光系数Kext,散射系数Ksea和吸收系数Kabs,在尺度系数比较小(〈100)的时候取得了比较准确的结果。由于前向递推算法是不稳定的,计算的时候会产生数值溢出,所以Dave的算法不能应用到大尺度系数情况下。Wiscombe于1980年发表了从紫外波长到微波波长范围内的计算方案,方案详细地讨论了计算时间,循环次数等,得到了准确的结果。但是他的算法没有考虑复折射率较大的粒子,也没有列出在大尺度系数时的计算结果。Bohren利用Wiscombe的近似公式提供了一个计算程序,该程序计算快速而且准确,但是不适用于以下场合:(I)复折射率比较大的金属粒子和绝缘体粒子;(2)尺度系数大于1000的粒子。而在国内,许多人士在前人研究成果的基础上也做了大量的改进,但在粒子尺度范围界定以及运算时间上仍未做到最佳。余其铮等利用连分式进行了计算,为了解决连分式计算速度慢的问题,对连分式计算次数进行了拟合,提高了计算速度,但是文中只给出了尺度系数在I到100时的拟合公式。对于在100以外的拟合公式没有详细地讨论。

[0005]目前涉及GMie理论散射效率极值的报道还没有出现,而散射效率极值的分析对我们研究散射过程有着重要意义,相比于以前的计算方法,本算法计算速度快,可以计算折射率较大的粒子,而且在算极值的同时还能得到a,b,c,d四个系数和散射效率与尺寸参量的图像。

【发明内容】

[0006]本算法的主要内容包括计算三小部分,第一部分为计算G Mie理论中a,b,c,d四个系数,第二部分为计算G Mie理论中散射效率并画出其曲线,第三部分对散射效率求极值。

[0007]第一部分:G Mie理论中a, b, c, d四个系数的计算。首先利用Wiscombe给出的经验公式n = x+c*x1/3+b得出计算循环次数η,其中c在4-4.05之间,b在1_2之间,接着对Ψ。,F1, 10,ξ:进行赋值,然后利用MATLAB中自带bessel函数,采用向后递推法计算出Ψη和ξ η,最后计算出an, bn, cn, dn。

[0008]第二部分:首先对输入的粒子尺寸参量进行判断,如果输入的尺寸参量等于0,则输出结果为0,如果输入的尺寸参量大于0,则计算循环次数n,接着调用第一部分写好的计算GMie理论中a,b,c, d四个系数的函数,根据建立的数学模型计算散射系数和消光系数的计算,最后返回计算结果。并画出其与尺寸参量的曲线。

[0009]第三部分:首先将η赋值,将其赋值为从I到nmax的矩阵,接着计算出x的值,然后调用第二部分的出的计算散射效率的程序,接着利用MATLAB中自带findpeaksO函数,,将第二部分的出的散射效率和尺寸参量的曲线图中的极值取出,最后将其作为返回结果返回。

[0010]本发明的有益效果:

[0011]I)能计算出G Mie散射效率的极值,方便与我们对G Mie散射效率极值做出分析,应用领域广泛。

[0012]2)在得到G Mie理论散射效率的同时得出了 G Mie散射理论中a,b,c,d四个系数和散射效率与尺寸参量的图像。

【专利附图】

【附图说明】

[0013]附图1为第一部分的程序流程图。

[0014]附图2为第二部分的程序流程图。

[0015]附图3为第三部分的程序流程图。

【权利要求】

1.一种球形粒子G Mie散射效率极值的算法,包括利用向后递推的方式计算散射效率中a、b、C、d四个系数(1),根据⑴计算出的a、b、C、d四个系数,建立散射系数和消光系数的数学模型,计算散射效率,画出散射效率与尺寸参量关系的图像(2),最后利用findpeaksO函数,将(2)中计算的第二部分的出的散射效率和尺寸参量的曲线图中的极值取出,最后将其作为返回结果返回。

2.根据权利要求1所述的一种球形粒子GMie散射效率极值的算法其特征在于,采用向后递推的方式计算散射效率中a、b、C、d四个系数。

3.根据权利1、2所述的一种球形粒子GMie散射效率极值的算法其特征在于,通过计算散射效率和消光系数,得到散射效率和尺寸参量的关系,并画出它们的图像。

4.根据权利1、3所述的一种球形粒子GMie散射效率极值的算法其特征在于,采用MATLAB中f indpeaks O函数将(2)中计算出的散射效率的极值点。

【文档编号】G06F17/50GK103970962SQ201410221957

【公开日】2014年8月6日 申请日期:2014年5月23日 优先权日:2014年5月23日

【发明者】张晓霞, 闫忠龙, 刘永 申请人:电子科技大学

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle util_mail,Oracle UTL_MAIL邮件包程序使用实践

在《使用包实现存储过程邮件发送》(http://space.itpub.net/17203031/viewspace-700327)中,笔者已经初步介绍了使用UTL_MAIL包实现系统邮件发送功能。UTL_MAIL包较传统的PL/SQL邮件发送已经有很大改进和简化。但是对于一般系统而言,邮件功能设置(如发送、…

oracle+内存错误,oracle使用内存的错误,ORA-27102: out of memory

网上参阅资料,整理到这里,以备查阅。主要由于内存的分配问题,导致oracle数据库启动失败。数据库关闭之后重新启动,出现下面的错误:SQL> startup;ORA-27102: out of memoryLinux-x86_64 Error: 28: No space left on…

oracle连接数达不到上限,Oracle超出最大连接数问题及解决(转)

用过Oracle的应该都熟悉如何查看和设置Oracle数据库的最大连接数。这里就再啰嗦一遍。查看当前的连接数,可以用select count(*) from v$process;设置的最大连接数(默认值为150)select value from v$parameter where name ‘processes’;修改最大连接数alter system …

oracle批量把小写转换成大写,oracle数据库批量将表名小写转大写

ORACLE10g数据库,Sqlserver通过DTS导出数据到ORACLE后。查询表数据时输入:select * from "表名" ;查询数据执行正常。如果输入:select * from 表名;提示ORA-000942表或视图不存在后来发现原因是:导入oracle数…

oracle数据库安装提示M,Python第13课:oracle数据库的安装

Python第13课:oracle数据库的安装时间 2019-01-22下午4:30主讲 罗恒丰地点 四楼电教室版本:11.2大小:2.06G安装文件在专班ftp里python安装文件的文件夹。一.找到 stage/cvu/cvu_prereq.xml ,编辑系统名,以适…

linux 文件怎么不让删,请问如何设置权限,可以禁止用户删除文件

原帖由 WHITLACK 于 2009-9-28 08:48 发表 针对某个文件,如何设置权限,可以禁止删除?文件权限的r-w-x好像不能禁止删除的啊,谢谢指教!1:使用粘滞位可以做到,下面是介绍.强制位与冒险位、粘滞位针对u,g&…

linux查看etl进程,常见ETL工具

【国外】datastage点评:最专业的ETL工具,价格不菲,使用难度一般-------------&#xf…

linux运行中望cad,国产CAD软件中望的Linux版适配UOS, 我在国产系统里试了试

可能大家都知道,以往我们在国产操作里运行的软件,很多都是国外开源的软件。在以前很长一段时间里,国产操作中,国内企业很少去适配的。据说,国产深度之所以有很多国产软件,其中一个原因就是他们一家一家去拜…

linux内核死锁检测机制 | oenhan,Linux内核CPU负载均衡机制 | OenHan

还是神奇的进程调度问题引发的,参看Linux进程组调度机制分析,组调度机制是看清楚了,发现在重启过程中,很多内核调用栈阻塞在了double_rq_lock函数上,而double_rq_lock则是load_balance触发的,怀疑当时的核间…

linux适应环境,Linux从入门到适应(一):VSCode C++环境配置

作为在Windows环境下习惯使用Visual Studio IDE的人,对于Linux环境下的Vim编辑使用十分难受,虽然网上很多人说vim非常牛逼和强大,但是我更加习惯于使用VS code的界面,所以我选择VS code作为编辑器使用。VS code本身是一个编辑器&a…

linux指令能回滚么,如何在Ubuntu上撤消或回滚“ apt-get upgrade”命令?

我今天必须在Debian系统上执行此操作。首先,我确定了有问题的升级发生的时间范围,并检索了给出升级包的新旧版本号的日志条目:$ awk $1"2016-03-20" && $3"upgrade" /var/log/dpkg.log2016-03-20 16:58:22 upgra…

linux文件名过长无法删除,不能删除文件,出现“源文件名长度大于系统支持的长度...

有时候删除windows中的目录的时候,会出现"源文件名长度大于系统支持的长度", 而导致不能删除, 作为一个程序猿, 怎么可以被这个折服呢, 上代码:import java.io.File;/*** author 吴庆龙* 2015年10月13日 下午1:22:33*/public class DeleteFiles {public static void …

cpu system linux,LINUX system BOOT

64位处理器指的是CPU GPRs(General-Purpose Registers 通用寄存器)的数据宽度为64位计算机在接通电源的瞬间,CPU处于16位实模式,20位的寻址空间,即1MB,此时内存里没有任何数据对CPU来讲,系统中所有的存储器(含BIOS的RO…

linux下IPROTO_TCP,TCP/IP协议栈在Linux内核中的运行时序分析

可选题目三:TCP/IP协议栈在Linux内核中的运行时序分析在深入理解Linux内核任务调度(中断处理、softirg、tasklet、wq、内核线程等)机制的基础上,分析梳理send和recv过程中TCP/IP协议栈相关的运行任务实体及相互协作的时序分析。编译、部署、运行、测评、…

vs2019Linux守护,Visual Studio 2019将支援Ninja显着提升Linux专案建置效率

微软更新Visual Studio 2019,新增多个可提升Linux开发体验的功能,包括在Linux上支援建置系统Ninja,以及更完整地支援gdbserver,而且现在开发者也可以使用连接管理器(Connection Manager),编辑和配置预设的远端连接。使…

三个数比较大小函数调用c语言,C语言函数的调用——比较两个数的大小

**目录**一、先写好框架二、然后定义我们需要的变量三、这里就要写函数的部分四、函数部分写完了,但是还一个地方,要值得注意一、常规方法比较大小二、指针操作比较大小--------------------今天我们要写的是用**调用函数**的方法来 比较两个数字的大小我…

c语言爱心代码空心,c语言心形图案代码,是什么?

#include int main(){int i,j;printf(" ****** ******\n"" ********** **********\n"" ************* *************\n");//前三排的规律性不强 所以直接显示就好了for(i0;i<3;i)//显示中间三排{for(j0;j<29;j)printf(&quo…

c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2

3.2 数据的输入与输出在程序的运行过程中&#xff0c;往往需要由用户输入一些数据&#xff0c;而程序运算所得到的计算结果等又需要输出给用户&#xff0c;由此实现人与计算机之间的交互&#xff0c;所以在程序设计中&#xff0c;输入输出语句是一类必不可少的重要语句&#xf…

快速排序c语言实现,快速排序的C语言代码实现

快速排序实质上是对“冒泡排序”的一种改进&#xff0c;整个排序过程可概括为&#xff1a;通过N趟的排序将原本的排序数据分为若干块进行分块排序&#xff0c;而在每趟排序过程中&#xff0c;以指定的关键字将待排数据分别分为比关键字大的部分和比关键字小的部分&#xff0c;反…

android 九宫格封装,Android 九宫格布局

演示image需求满足0-9个图的适配图数量演示1image2image3image4image5image6image7image8image9image使用手动设置android:layout_width"match_parent"android:layout_height"wrap_content"app:ngl_gridSpace"10dp"app:ngl_oneChildHeight"…