介绍光阱力的数值计算方法

介绍光阱力的数值计算方法
介绍光阱力的数值计算方法

“校长基金”结题论文

用T矩阵方法

计算光阱中介质小球的散射场及受力

指导老师:叶安培

电子学系刘文俊

2003年10月12日

用T矩阵方法

计算光阱中介质小球的散射场及受力

信息学院电子学系2000级刘文俊

目录

摘要 (3)

第一章引言 (3)

第二章计算光镊中粒子受力的方案比较与选择 (5)

1:力的产生原理 (5)

2:光阱力的构成 (5)

3:粒子受力计算方案 (6)

第三章T矩阵算法的实现 (12)

1:高会聚型高斯光束的分解 (12)

2:用扩展边界条件法计算T矩阵 (16)

第四章计算光阱中的粒子散射及受力情况 (25)

1:散射场的计算 (25)

2:力的计算 (30)

第五章总结 (31)

致谢 (32)

参考文献 (32)

摘要

本文讨论了计算各种粒子在光阱中受力的计算方法。选择T矩阵的方案,论述了其原理,并利用其计算了回转椭圆体、圆柱体、切比雪夫粒子和一般性的切比雪夫粒子的散射场。在入射光为高会聚型高斯光束的情况下,计算了球状的粒子的受力,考虑了光腰位置和粒子半径对小球受力的影响。

第一章引言

近年来单分子探测技术(single molecule detection (SMD))的发展开辟了生命科学的新领域。在对生物分子的宏观观测中,单个生物分子的动态特性和分子核心组织的运作机制被平均化,因而得不到单个生物分子的动态特性信息。随着近代物理特别是光学技术和生物技术的发展,生物单分子探测已成为可能,单分子探测技术则可以快速实时的记录单个生物分子的动态行为,将生命科学研究提高到更高的层次。

单分子探测包括单分子成像和单分子操纵。常用的单分子操纵工具有微针(glass-microneedle),光镊(optical tweezers)和原子力显微镜(AFM)。采用这些技术可以精确的操纵单分子和探测单分子的动态行为。

由于光镊可以非接触、无损伤地操纵活体物质,并且其产生的皮牛顿(10-12N)量级的力适合于生物细胞、亚细胞以及生物大分子的力学性质的研究。所以光镊系统越来越广泛地应用于生物学领域,并显示出强大的生命力。

用高数值孔径的物镜把激光光束会聚成达到衍射极限的光斑,从而形成很大梯度的不均匀场。在焦点附近梯度力大于散射力从而介质小球受的力指向光强最大处:这就是单光束实心光镊。其示意图如图1-1所示。

图1-1 典型光镊系统的示意图

在该领域的先驱是AT&T(Bell) 实验室的A.Ashkin。1970年,通过一束会聚的激光,Ashkin成功的束缚住微小粒子例如几微米大小的聚苯乙烯小球。1978年Ashkin提出了单光镊梯度力势阱的方案。1986年Ashkin 等人把单束激光引入高数值孔径的物镜形成了一个三维梯度场,并证明了这种光镊可以无损伤地操纵活体物质。

在光镊系统中引入多光束则可以实现多个光阱,从而实现对多个微粒或生物分子的操控。采用一般化相衬法(generalised phase contrast)或者计算机生成全息图(computer-generated holograms(CGH))可以高效率地产生多光束,从而实现对多达数百个微粒或者生物分子的操控。

光镊还可以与许多其它的工具相结合。一个典型的例子是光镊与结合激光剪刀(laser scalpel)。激光剪刀比光镊更早问世。人们利用一束激光经过显微镜聚焦成微米量级的光点作用与细胞,就可以如生理学家那样通过损伤或者改变某一结构来研究细胞了。这种特异的光束能在不损伤细胞外部的情况下,穿入一个细胞或者一个细胞器官在内部实现手术,而决不像传统手术刀那样在到达手术部位的路径上把细胞统统切开,人们把这种紫外激光微束称为激光解剖刀。

光镊与光谱技术的结合可用于识别单分子的化学成分。从单粒子的化学成分的识别的角度研究单粒子无疑是极具吸引力的,例如研究单粒子的组成元素,结构和构造从而揭示在很小的空间尺度上的分子的行为。光镊可以与电化学仪器(electrochemistry)、荧光光谱仪(fuorescence pectroscopy)、拉曼光谱仪(raman spectroscopy)一起使用。

能灵活的研究生物分子的动态特性的本领使得光镊的应用几乎涵盖所有的生物学领域。以下列出其在生物学和医学方面的主要应用领域:1.分子马达类蛋白(Molecular motors)。涵盖肌浆球蛋白、动力原蛋白、

F1旋转马达

2.DNA的复制过程

3.酶化反应过程

4.蛋白质动力学

5.蛋白质折叠

6.细胞内信号传递

7.细胞鞭毛的机制

8.有丝分裂中的染色体操纵

9.染色体切割

10.受控细胞融合

为了使光阱获得较好的捕获力,我们有必要从理论上研究影响光阱中粒子受力的因素。

第二章计算光镊中粒子受力的方

案比较与选择

1:力的产生原理

利用光镊来捕获和操纵微小介质小球的技术是基于光的辐射压力的。这种力来源于光的动量变化量。早在17世纪,德国天文学家开普勒就猜想彗星的尾巴背向太阳是因为受到太阳的辐射力。1873年麦克斯韦发表的电磁场理论表明:光本身可以产生光学力或者叫辐射压力。但直到上个世纪70年代该结论才被实验所证明。从猜想到验证历经3个世纪左右的一个重要原因是:光学辐射压力是极其微小的。利用非相干光源观察不到光辐射压力的存在。毫瓦的光(非常强的光)只能产生皮牛顿量级的力[3]。上个世纪60年代高强度的相干光源----激光的发明,使得研究光的辐射压力成为可能。

2:光阱力的构成

介质小球在光镊中主要受到两种力:梯度力(Gradient Force) 和散射力(Scattering Force):

◆梯度力

梯度力来自介质小球中的电偶极矩在不均匀电磁场中受到的力。它正比与光强的梯度,指向光场强度的最大处。它的作用效果使得粒子朝向光功率密度最大的点运动。如图2-1所示。

◆散射力

散射力来自光在散射过程中与光子交换动量而获得,被散射的光子动量改变来自于介质对光子的作用力。它的方向沿着光的传播方向,作用效果使得粒子沿着光束的传播方向运动。如图2-1所示

图2-1 梯度力和散射力的示意图

3:粒子受力计算方案

将粒子按尺度分类,有不同的计算方法。

1)第一类粒子Mie Particle

A)定义:

当粒子半径R远远大于入射光波在真空中的波长λ(实际应用中,λ5

>

R)时,可以认为此粒子属于Mie Particle。

B)所采用的计算方法

计算此种粒子的受力,可以采用几何光学的近似算法(Geometrical approximate method )。

C)原理

此方法是通过单条光线作用力的叠加得到光阱的作用力(A.Ashkin 提出)。

图 2-2 计算具有功率P的单根入射光线在介质球上产生的力的几

何模型,其上标明了反射光线PR 及无穷多的折射光线PT 2R n

在几何光学范围内,光可以被分解为具有强度、方向和极化状态大致相同的一根根光线,它们在同一种介质内沿直线传播或者说每根光线都可以被看作具有波长为零的平面波的性质。它们在介质交界处的反射、折射和极化的规律遵循菲涅耳公式,在这个范围内衍射效应可以被忽略。首先考虑功率为P 的单根光线,其单位时间的入射功率为c P n /1,以θ角入射在介质球上的力,见图2-2。作用于球上的力来源于功率为PR 的反射光线及从球内出来的无穷多的折射光线PT2, PT2R …PT2Rn …的总和。其中R,T 是菲涅耳在入射角为θ时的表面反射和折射系数。Roosen 及其合作者[4,5]计算出了过圆心O 的合力最后可分解为Fz 和Fy 分量:

[]?

?????+++--+==r R R R r T R c P n Fs Fz 2cos 212cos )22cos(2cos 1*221θθθ(2-1) []?

?????+++--==r R R R r T R c P n Fg Fy 2cos 212sin )22sin(2sin *221θθθ (2-2)

其中θ和r分别是入射角和反射角。由于以上公式是对所有的散射光线求和,所以公式是精确的;因为R和T是与极化有关的,所以力也和极化有关。

对单根光线,在公式(1)中,我们定义沿着入射光线方向的Fz分量叫作这根光线的散射力分量Fs; 同样在公式(2)中我们定义垂直于入射光线方向的Fy 分量为这根光线的梯度力分量Fg 。几何光学范围内光束的散射力和梯度力就是光束中每根光线的散射力和梯度力分量的矢量和。

评价:此方法计算简便。粒子尺度合适时,可以很方便讨论所关心因素对光阱的影响。但是几何近似较为粗糙,用此方法计算,可以得到光阱作用力与粒子半径无关的错误结论。同时,它也不能计算粒子形状对光阱的影响。另外,它还忽略了光阱焦点处的衍射斑的大小。

2) 第二类粒子Rayleigh Particles

A )定义:

当粒子半径R 远远小于入射光波在真空中的波长λ(实际应用中,

λ20

1

所采用的计算方法:用瑞利散射的理论进行近似计算(Rayleigh Scattering Theory )[9]

B )步骤:

◆ 将粒子视为电偶极子(electric dipole )。

感应多极矩的第一阶的表达式为: ),,()2(4),,(211232t r z E a t r z P εεεεπε+-= (2-3)

其中,a 为粒子的半径,1ε为周围环境的介电常数,2ε为小球的介电常数。),,(t r z E 为入射光的表达式。

◆ 应用电偶极子对电磁波的散射理论计算散射力。

T scat r z S m m a k c n r z F ),(2138),(222642???? ??+-=π (2-4)

◆ 应用感应电偶极子受洛仑兹力计算梯度力。

22022232218),(R grad z Pw m m c a n r z F ???? ??+--=()

?????-+?-226/202)(22r w w e z z i i w r i

+)sin(2222//2φρi r w r w r R w w e e Z k r i --()}22622022/)(2r w w w e z z r r r r --+-ρ (2-5)

评价:此方法在计算过程中采取了种种近似,如:认为粒子不影响光波的传播,光波的表达式中不考虑散射光;认为瞬间的入射光在粒子的各个边界上是常量等等。这些近似都是建立在粒子足够小的前提下的。因此,此方法仅适用于小粒子(几十纳米尺度),目前的应用还不太广泛。但随着生命科学的发展,对单分子的捕捉的研究蓬勃发展,对此类问题的研究将会是很有意义的。

3) 第三类粒子 (λ~R 的粒子)

以上我们讨论了粒子尺寸远大于或者远小于入射光波波长的情况。而在实验中,由于尺度与波长相近的粒子易被很牢固地捕捉,所以我们经常用这样的粒子作为探测对象,去研究我们感兴趣的微观现象。但很不幸,在此尺度内,我们缺少与之相配的理论,这就给我们带来了数值计算上的困难。近年来理论发展的方向是,将光阱中光的散射过程视为电磁散射问题,则通过求解麦克斯韦方程就可以求解光的散射场。

在电磁场计算领域,求解麦克斯韦方程有多种数值方法:有限元法(Finite Element Method ) ,有限微分时域算法(FDTD),离散偶极子近似算法(Discrete Dipole Approximation),T 矩阵算法(T-matrix method )等等。

A )有限元法(FEM) [1][2]

由于麦克斯韦方程可以表达为一系列的微分方程,因此可以应用有限元法。

计算步骤:

◆ 将产生光阱的激光束等效为随时间变化的电磁场源。

◆ 将空间分割为离散的格子,再取一定的时间步长计算各个格子

的场变化。(注意每个格子的尺度不能超过λ/20 ,时间步长也

不能过大。)如图2-3所示。

图 2-3 Sample hexahedral grid of a dielectric sphere embedded in a spherical volume

◆ 对介质小球积分

x d B E P f i e l d 30??=ε (2-6)

◆ 计算出的力是时间的函数;但实际中,电介质小球的响应达不

到光的频率,所以要对时间求平均值。

B )有限微分时域算法(FDTD)[3]

在电磁场计算领域,有限微分时域算法也是用来求解麦克斯韦方程的一种常用算法。它将空间分割为离散的栅格,取连续的时间步长计算电磁场的分布。

对上述两种方法的评价:这两种方法通过数值求解麦克斯韦方程来解决散射问题,它的理论上很简单,可以计算任意形状和由任意成分构成的粒子。计算精度也很高(不扣除光束模型的理论近似,与实验误差不超过14%[6])。

缺点:

◆ 但是,由于要对空间分割到很小(每个格子的尺度不能超过

λ/20),时间步长也不能过大,所以我们只能计算体积相对较小

的粒子,若体积增大,则计算量会增长得很快。若需要较精确

的结果,就需要精细划分空间,计算量也会增长得很快。

◆ 由于只能对有限体积的空间进行这种划分,所以边界条件的选

取很重要。如果远场的作用不能忽略,则要通过适当的变换将

其影响计入近场中。

C )离散偶极子近似算法(DDA)

算法思路: 将介电小球划分为小体积元,每个体积元代表一个极化产生电偶极子,其极化率由其所在空间位置决定。

计算步骤:

◆ 计算出所要计算力的位置上的散射场情况

◆ 计算出每个偶极子的力和力矩,叠加所有的偶极子,得到合力。 评价:应用此方法时,要先对整个电磁场的分布有大致的猜想,然后经迭代计算出一个收敛的值。此方法有成熟的软件及程序代码可用[4][5]。

D )T 矩阵算法(T-matrix method )

在光阱的计算中,我们经常会遇到这样的情况:对同一个粒子,我们

需要计算它位于不同的位置,方位发生变化的情况。在这种情况下,上述方法存在一个共同的缺陷,它们需要重新进行全部的计算过程。但T 矩阵算法就不存在这个问题,无论粒子的位置和方位如何改变,无论入射光的特性如何改变,它只需要计算一次T 矩阵[7],就可以多次使用以计算任意方向的入射和散射光束的振幅和向量矩阵。从而大大减少了计算量。

T 矩阵算法的原理[10]:

◆ 在所要计算的位置及方向上,将入射光束分解为球面矢量波

(Vector Spherical Wave Function (VSWF))。

[]

∑∑∞=-=+=1)()()(n n n m mn mn mn mn inc kr RgN b kr RgM a r E (2--7)

其中,

)()()exp()1()(θφm n n n m m n C kr j im d kr RgM -= (2--8)

????????????-++?-=-)()()()()()1()

e x p ()1()(1θθφmn n n mn n n m mn B kr j kr n kr j P kr j kr n n im d kr RgN (2--9)

)(s i n ?)(?)(00θθφθθθθn m n m mn d im d d d B += (2-10)

)(sin ?)(?)(00θθφθθθθn m n m mn d im d d d C -=

(2-11) )(?)(0θθn m m n d r P = (2-12)

2/1)1(412???? ??++=n n n d n π (2-13)

)(kr j n 为球贝塞尔函数,)(0θn m d 为魏格纳d 函数。

◆ 同样,散射矩阵也可以用球面矢量波来表达,在光阱中,远场

必定是向外辐射的。

[]∑∑∞

=-=+=1)()()(n n n m mn mn mn mn scat kr N q kr M p r E (2-14)

其中,)(kr M mn ,)(kr N mn 是用第一类球汉克尔函数

)()1(kr h n 取代)(kr RgM mn ,)(kr RgN m n 中的球贝塞尔函数得到的。

c) 由于麦克斯韦方程具有线性,所以入射场和散射场之间存在线性关系:

n m n m mn n m n m n m mn mn b T a T P '

'''''''''∑+=)12()11( (2-15)

n m n m mn n m n m n m mn mn b T a T q '

'''''''''∑+=)22()21( (2-16)

T 矩阵即传输矩阵,理论上的推导论证可以参看参考文献[8]中的第八章第三,第四节。T 矩阵表征粒子在光阱中各个位置及方向的特性,与入射光无关,它可以用扩展边界条件法(extended boundary condition method (EBCM))求出。

对粒子表面进行积分,求出力。

评价:T 矩阵算法对于力的计算,是一种理想的方法。计算快,计算量不是很大,可利用计算机实现。因此,我们选择T 矩阵算法进行光阱中粒子受力的计算。

程序编写语言的选择:

常用来做数值计算的语言有VC ,Matlab 和Fortran 。

VC 和Matlab 的功能强大,使较为流行的语言。但目前,就计算速度而言,

Fortran 〉VC 〉Matlab

在某些计算量庞大的情况下,Fortran 的速度要比VC 和Matlab 高出一到两个数量级。对本文的应用而言,选择Fortran 作为程序编写语言是较为理想的。

第三章 T 矩阵算法的实现

1: 高会聚型高斯光束的分解

由于平面波容易理解和计算,散射问题中,一般研究以平面光波入射的情况。因此,我们采用平面波光谱的方法[11],把高斯光束分解为平面波:

假设光束沿x 方向极化,则光波的矢势可表达如下:

x e iwt r A t r A )exp()(),(= (3-1) )(r A 满足如下方程:

0)()(22=+?r A k r A (3-2) 对一个会聚型高斯光束如果,光腰中心定位在),,(000z y x 处,则矢势

)(r A 可表达如下:

)](exp[),,()(00000z z ik z z y y x x k iE r A ----=ψ (3-3) 其中,)(r ψ是一个渐变函数,满足如下方程:

02)(2=??+?z ik r ψψ (3-4)

此方程的解可以用一系列2s 的多项式来描述:

???++=)()()(220r s r r ψψψ (3-5) 其中,s 是表征光束的腰半径0w 与衍射波长l 的比值

001kw l w s == (3-6) 最低阶的函数0ψ和2ψ表达式如下:

)exp(20iQp iQ -=ψ,0342)2(ψρψQ i iQ += (3-7) 222ηξρ+=,ζ21-=

i Q ,

0w x =ξ,0w y =η,0w z s l z ==ζ (3-8) 将式(3-6),(3-7)代入式(3-3)中,对)(r A 在任意给定的平面1z z =上做傅立叶变换,得到:

[]

[]()()[]()???? ??+-+-???

???????? ??+-++-??? ??=+-=??∞∞-∞

∞-2220002

22202220202004exp )(exp 161)(exp )(exp ),,(),(~y x y x y x y x y x y x k k Q i w k y k x i k k Q i w k k w s z z ik w k iE dxdy yk xk i z y x A k k A π(3-9) 其中,l z z i Q )(2101--=

由于代入)(r A 中的)(r ψ只取了前两阶,并不是真正的)(r ψ,所以我

们必须要检验这样得到的)(r A 的误差。如图3-1(a)所示,当16.0=s 时,计算得到的)(r A 与理论上的高斯光束的轮廓相差较远,尤其是R 较大时。当11.0=s 及当08.0=s 时(见图3-1(b)和图3-1(c)),计算得到的)(r A 与理论上的高斯光束的轮廓已经较为接近了。当032.0=s 时(见图3-1(d)),两条曲线已经很接近了。一般情况下,认为当1.0

图3-1(a )在0=z 平面上用戴维斯二阶近似和理论Gauss 计算得到的矢势|)(|R A 值的对比。其中星号标志为16.0=s 时的戴维斯二阶近似。

图3-1(b )在0=z 平面上用戴维斯二阶近似和理论Gauss 计算得到的矢势|)(|R A 值的对比。其中星号标志为11.0=s 时的戴维斯二阶近似。

图3-1(c )在0=z 平面上用戴维斯二阶近似和理论Gauss 计算得到的矢势|)(|R A 值的对比。其中星号标志为08.0=s 时的戴维斯二阶近似。

图3-1(d )在0=z 平面上用戴维斯二阶近似和理论Gauss 计算得到的矢势|)(|R A 值的对比。其中星号标志为032.0=s 时的戴维斯二阶近似。

光束的电场可以用),(~y x k k A 表达如下:

y x z y x k k k z y x dk dk z ik k k A k k k V ik

z y x E y x )exp(),(~),,(41),,(102222--=??<+π

(3-10) 其中: z z x y y x x x z y x e k k k e k k k e k k k k k V 222201),,(--???? ??-= (3-11)

2: 用扩展边界条件法计算T 矩阵

1) 参照系和粒子的方位

为描述入射平面波被任意方位的粒子散射的散射情况,我们必须知道入射波,散射波和粒子相对于实验室参照系的方位,为此建立右手笛卡尔

坐标系L ,原点位于粒子内部。如图3-2示: 横向电磁波的传播方向用n

来表示,或者用(L L ?θ,)来表示,其中[]πθ,0∈L ,[]π?2,0∈L 。电场L

E 分解为两个分量,θθ?L E 和?? L E 。θ?位于由光束的传播方向和Z 方向组成

的平面中,? 位于与之垂直的平面中。且有关系:

?θ ?=n (3-12)

图3-2 用来描述横向电磁波的传播方向和偏振方向的球坐标

为了描述粒子相对于实验室参照系的方位,引入右手螺旋坐标系P ,它固定在粒子上,和坐标系L 有共同的原点。为描述坐标系L 和坐标系P 之间的转化关系,引入欧拉角γβα,,。如图3-3所示。

图3-3 实验室坐标系xyz 与粒子参照坐标系x ’y ’z ’之间的转化

2) 实验室坐标系下的振幅矩阵

在以下的理论过程中,我们省略时间因子)exp(iwt -,考虑一个矢量平面电磁波,其电场分量如下:

)exp()?()(R n ik E E R E inc inc L inc L inc L inc L inc ?θ?θ+= (3-13)

以inc n 的方向入射到一个非球状的粒子上,其中πλ2/=k 是自由空间的波数,R 是从实验室坐标系原点出发的位置坐标矢量。

在远场区域(1>>kR ),散射波为球面波,表达如下:

sca L sca inc L sca L sca sca L sca n R E n R E R E ?θ?θ ),(),()(+= (3-14)

0)(=?R E n sca sca (3-15)

由于麦克斯韦方程和边界条件的线性,所以散射场跟入射场之间存在线性的关系。

????????=????????inc L inc L inc sca L sca L sca L E E n n S R ikR E E ?θ?θγβα),,;,()exp(

(3-16) 其中,L S 是一个22?的振幅矩阵,在实验室参考系中,它将入射场

转化为散射场,它依赖于粒子尺度,方位,位置和粒子相对于在实验室参考系的方位(用γβα,,描述)。

3) 坐标系变换

假设我们用解析或者数值的方法[12]得到在粒子坐标系中的振幅矩阵,用P S 表示,它将入射场转化为散射场:

????????=????????inc P inc P inc sca P sca P sca P E E n n S R ikR E E ?θ?θ),()exp( (3-17)

假设有一个22?的矩阵P ,将电场分量从实验参考系转化为粒子坐标

系:

()()()()()????????=????????P P P P P P P P P P P P E E n P E E ?θ?θγβα?θ?θ?θ?θ,,,,;,,

(3-18)

其中,n 为单位矢量,指向光传播的方向。P 矩阵依赖于光的传播方

向和粒子相对于在实验室参考系的方位(用γβα,,描述)。

则我们可以得到,两个不同坐标系下的振幅矩阵之间的变换关系:

()

()γβα?θ?θγβαγβα?θ?θ,,;),?,,?(,,;),,;,?,,?(1inc inc P inc P sca P sca P P sca inc L inc L sca L sca L L n P S n P S ?=- (3-19)

角P θ和P ?用L θ和L ?表达如下:

)cos(sin sin cos cos cos α?βθβθθ-+=L L L P

(3-20) ]cos cos sin )sin(sin sin )cos(sin cos [cos sin 1cos L L L L L P

P θγβα?γθα?θγβθ?--+-=

(3-21) ]cos sin sin )sin(cos sin )cos(sin sin cos [sin 1sin L L L L L P

P θγβα?γθα?θγβθ?+-+--=

(3-22) 为了得到矩阵P 的表达式,假设一个23?的矩阵α

?,它将电场的?θ,分量转化为z y x ,,分量:

??????=????????????θαθE E E E E z y x ),(

(3-23) 再假设一个33?的矩阵β ,它将电场的在实验室坐标系中的z y x ,,分量转化为在粒子坐标系中的z y x ,,分量:

??????????=??????????zL yL xL zP yP xP E E E E E E ),,(γβαβ (3-24)

这样,就得到了矩阵P 的表达式:

),(),,(),(),,;(1L L P P n P ?θαγβαβ?θαγβα -=

(3-25)

其中,在右手坐标系下,每个矩阵的表达式如下[13]:

??????????--=0sin cos sin cos sin cos cos ),(θ??

θ??θ?θα (3-26)

????

??--=-0cos sin sin sin cos cos cos ),(1??θ?θ?θ?θα (3-27)

?????

?????+----+-=ββ

αβαγβγαγβαγαγβαγβγαγβαγαγβαγβαβcos sin sin sin cos sin sin cos cos sin cos sin cos sin sin cos cos cos sin sin cos cos cos sin sin sin cos cos cos ),,( (3-28)

可以很方便地检验,当在实验室坐标系和粒子坐标系重合时,得到: ??????====1001)0,0,0;(γβαn P

(3-29)

于是, ),?,,?()0,0,0;,?,,?(inc P inc P sca P sca P P inc L

inc L sca L sca L L S S ?θ?θγβα?θ?θ ====

(3-30)

对于旋转对称的粒子,可以将粒子坐标系的Z 轴选在粒子的对称轴上,这样粒子相对于实验室坐标系的方位,就与欧拉角γ无关。因此,可以令0=γ,对式(3-21),(3-22),(3-28)进行简化,得到:

]cos sin )cos(sin [cos sin 1cos L L L P P θβα?θβθ?--=

(3-31) P L L P θα?θ?sin )

sin(sin sin -=

(3-32)

??????????--==ββαβααα

ββαβ

αγβαβcos sin sin sin cos 0cos sin sin cos sin cos cos )0,,( (3-33)

4) 粒子参考坐标系中的振幅矩阵

在粒子参考坐标系下,对于旋转对称的粒子,T 矩阵是对于下角标m 和m '对角化的:

数值计算方法课程报告

课程报告 课程名称______《数值计算》 __ 学生学院_____机电工程学院___ 专业班级_____微电子(1)班____ 学号________ 学生姓名_______________ 指导教师_____ ________ XXXX年XX月XX日

姓 名: 线 学 号 : 订 装专 业:学院: 广东工业大学考试试卷( A ) 课程名称: 数值计算试卷满分100 分考试时间: 2015 年 12 月 26 日(第 17 周星期六) 题号一二三四五六七八九十总分 评卷得分 评卷签名 复核得分 复核签名 “数值计算”考试要求 “数值计算”考试以开卷形式进行。在“数值计算”课程考试日(2015 年12 月 19 日,第 12 周星期五)考试时间,在考试教室领取试题,在 2015 年12 月 26 日(第 17 周星期六)进行答辩。不参加答辩者将取消考试成绩。 “数值计算”考试结果要求独立在计算机上完成,可使用Matlab或 C 程序编程实现。考试结果将以报告书形式提交,内容包括对问题描述、计算程序以及算例、计算结果、分析组成。计算程序要求具有通用性,能够处理异常情况,可以输入问题、算法参数、算例及初始值,在计算过程中显示当前计算状态、计算完成后显示计算结果。上述内容将作为试卷成绩的主要评定依据。特别提醒,不得使用教师在讲课和实验时的范例作为考试结果。报告书具体格式参考毕业设计手册。 以考生学号命名的文件夹存放程序及报告书电子版,以班级为单位刻录在一张光盘中,与打印版报告书一起由班长和学习委员一起上交任课教师。 数值计算课程总成绩将由试卷成绩(70%)、平时成绩(30%)组成。

数值计算方法试题及答案

【 数值计算方法试题一 一、 填空题(每空1分,共17分) 1、如果用二分法求方程043=-+x x 在区间]2,1[内的根精确到三位小数,需对分( )次。 2、迭代格式)2(2 1-+=+k k k x x x α局部收敛的充分条件是α取值在( )。 3、已知?????≤≤+-+-+-≤≤=31)1()1()1(211 0)(2 33x c x b x a x x x x S 是三次样条函数, 则 a =( ), b =( ), c =( )。 4、)(,),(),(10x l x l x l n 是以整数点n x x x ,,,10 为节点的Lagrange 插值基函数,则 ∑== n k k x l 0)(( ), ∑== n k k j k x l x 0 )(( ),当2≥n 时 = ++∑=)()3(20 4x l x x k k n k k ( )。 ; 5、设1326)(2 47+++=x x x x f 和节点,,2,1,0,2/ ==k k x k 则=],,,[10n x x x f 和=?07 f 。 6、5个节点的牛顿-柯特斯求积公式的代数精度为 ,5个节点的求积公式最高代数精度为 。 7、{}∞ =0)(k k x ?是区间]1,0[上权函数x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0=x ?,则?= 1 4)(dx x x ? 。 8、给定方程组?? ?=+-=-2211 21b x ax b ax x ,a 为实数,当a 满足 ,且20<<ω时,SOR 迭代法收敛。 9、解初值问题 00 (,)()y f x y y x y '=?? =?的改进欧拉法 ??? ??++=+=++++)],(),([2),(] 0[111] 0[1n n n n n n n n n n y x f y x f h y y y x hf y y 是 阶方法。

数值计算方法比较

有限差分方法(FDM:Finite Difference Method)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。有限差分法主要集中在依赖于时间的问题(双曲型和抛物型方程)。有限差分法方面的经典文献有Richtmeyer & Morton的《Difference Methods for Initial-Value Problems》;R. LeVeque《Finite Difference Method for Differential Equations》;《Numerical Methods for C onservation Laws》。 注:差分格式: (1)从格式的精度来划分,有一阶格式、二阶格式和高阶格式。 (2)从差分的空间形式来考虑,可分为中心格式和逆风格式。 (3)考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。 目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。 构造差分的方法: 构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 有限差分法的不足:由于采用的是直交网格,因此较难适应区域形状的任意性,而且区分不出场函数在区域中的轻重缓急之差异,缺乏统一有效的处理自然边值条件和内边值条件的方法,难以构造高精度(指收敛阶)差分格式,除非允许差分方程联系更多的节点(这又进一步增加处理边值条件韵困难)。另外它还有编制不出通用程序的困难。 有限差分法的优点:该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念 直观,表达简单,精度可选而且在一个时间步内,对于一个给定点来说其相关的空间点只是 与该相邻的几点,而不是全部的空间点。是发展较早且比较成熟的数值方法 广义差分法(有限体积法)(GDM:Generalized Difference Method):1953年,Mac—Neal 利用积分插值法(也称积分均衡法)建立了三角网格上的差分格 式,这就是以后通称的不规划网格上的差分法.这种方法的几何误差小,特别是给出了处理自然边值条件(及内边值条件)的有效方法,堪称差分法的一大进步。1978年,李荣华利用有限元空间和对偶单元上特征函数的推广——局部Taylor展式的公项,将积分插值法改写成广义Galerkin法形式,从而将不规则网格差分法推广为广义差分法.其基本思路是,将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值计算方法试题及答案

数值计算方法试题一 一、填空题(每空1分,共17分) 1、如果用二分法求方程在区间内的根精确到三位小数,需对分()次。 2、迭代格式局部收敛的充分条件是取值在()。 3、已知是三次样条函数,则 =( ),=(),=()。 4、是以整数点为节点的Lagrange插值基函数,则 ( ),( ),当时( )。 5、设和节点则 和。 6、5个节点的牛顿-柯特斯求积公式的代数精度为,5个节点的求积公式最高代数精度为。 7、是区间上权函数的最高项系数为1的正交多项式族,其中,则。 8、给定方程组,为实数,当满足,且时,SOR迭代法收敛。 9、解初值问题的改进欧拉法是 阶方法。 10、设,当()时,必有分解式,其中为下三角阵,当其对角线元素满足()条件时,这种分解是唯一的。 二、二、选择题(每题2分) 1、解方程组的简单迭代格式收敛的充要条件是()。(1), (2) , (3) , (4) 2、在牛顿-柯特斯求积公式:中,当系数是负值时,公式的稳定性不能保证,所以实际应用中,当()时的牛顿-柯特斯求积公式不使用。 (1),(2),(3),(4), (1)二次;(2)三次;(3)四次;(4)五次 4、若用二阶中点公式求解初值问题,试问为保证该公式绝对稳定,步长的取值范围为()。 (1), (2), (3), (4)

三、1、 2、(15 (1)(1) 试用余项估计其误差。 (2)用的复化梯形公式(或复化 Simpson公式)计算出该积分的近似值。 四、1、(15分)方程在附近有根,把方程写成三种不同的等价形式(1)对应迭代格式;(2)对应迭代格式;(3)对应迭代格式。判断迭代格式在的收敛性,选一种收敛格式计算附近的根,精确到小数点后第三位。选一种迭代格式建立Steffensen迭代法,并进行计算与前一种结果比较,说明是否有加速效果。 2、(8分)已知方程组,其中 , (1)(1)列出Jacobi迭代法和Gauss-Seidel迭代法的分量形式。 (2)(2)求出Jacobi迭代矩阵的谱半径,写出SOR 迭代法。 五、1、(15分)取步长,求解初值问题用改进的欧拉法求的值;用经典的四阶龙格—库塔法求的值。 2、(8分)求一次数不高于4次的多项式使它满足 ,,,, 六、(下列2题任选一题,4分) 1、1、数值积分公式形如 (1)(1)试确定参数使公式代数精度尽量高;(2)设,推导余项公式,并估计误差。 2、2、用二步法 求解常微分方程的初值问题时,如何选择参数使方法阶数尽可能高,并求局部截断误差主项,此时该方法是几阶的。 数值计算方法试题二 一、判断题:(共16分,每小题2分) 1、若是阶非奇异阵,则必存在单位下三角阵和上三角阵,使唯一成立。()

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

数值分析插值算法源程序

#include #include float f(float x) //计算ex的值 { return (exp(x)); } float g(float x) //计算根号x的值 { return (pow(x,0.5)); } void linerity () //线性插值 { float px,x; float x0,x1; printf("请输入x0,x1的值\n"); scanf("%f,%f",&x0,&x1); printf("请输入x的值: "); scanf("%f",&x); px=(x-x1)/(x0-x1)*f(x0)+(x-x0)/(x1-x0)*f(x1); printf("f(%f)=%f \n",x,px); } void second () //二次插值 { float x0,x1,x2,x,px; x0=0; x1=0.5; x2=2; printf("请输入x的值:"); scanf("%f",&x); px=((x-x1)*(x-x2))/((x0-x1)*(x0-x2))*f(x0)+((x-x0)*(x-x2))/((x1-x0)*(x1-x2))*f(x1)+((x-x0)* (x-x1))/((x2-x0)*(x2-x1))*f(x2);

printf("f(%f)=%f\n",x,px); } void Hermite () //Hermite插值 { int i,k,n=2; int flag1=0; printf("Hermite插值多项式H5(x)="); for(i=0;i<=n;i++) { int flag=0; flag1++; if(flag1==1) { printf("y%d[1-2(x-x%d)*(",i,i); } else { printf("+y%d[1-2(x-x%d)*(",i,i); } for(k=0;k<=n;k++) { if(k!=i) { flag++; if(flag==1) { printf("(1/x%d-x%d)",i,k); } else { printf("+(1/x%d-x%d)",i,k);

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

《数值计算方法》上机实验报告

《数值计算方法》上机实验报告华北电力大学 实验名称数值il?算方法》上机实验课程名称数值计算方法专业班级:电力实08学生姓名:李超然学号:200801001008 成绩: 指导教师:郝育黔老师实验日期:2010年04月华北电力大学实验报告数值计算方法上机实验报吿一. 各算法的算法原理及计算机程序框图1、牛顿法求解非线性方程 *对于非线性方程,若已知根的一个近似值,将在处展开成一阶 xxfx ()0, fx ()xkk 泰勒公式 "f 0 / 2 八八,fxfxfxxxxx 0 0 0 0 0 kkkk2! 忽略高次项,有 ,fxfxfxxx 0 ()()(),,, kkk 右端是直线方程,用这个直线方程来近似非线性方程。将非线性方程的 **根代入,即fx ()0, X ,* fxfxxx 0 0 0 0, ,, kkk fx 0 fx 0 0,

解出 fX 0 *k XX,, k' fx 0 k 水将右端取为,则是比更接近于的近似值,即xxxxk, Ik, Ik fx ()k 八XX, Ikk* fx()k 这就是牛顿迭代公式。 ,2,计算机程序框图:,见, ,3,输入变量、输出变量说明: X输入变量:迭代初值,迭代精度,迭代最大次数,\0 输出变量:当前迭代次数,当前迭代值xkl ,4,具体算例及求解结果: 2/16 华北电力大学实验报吿 开始 读入 l>k /fx()0?,0 fx 0 Oxx,,01* fx ()0 XX,,,?10 kk, ,1,kN, ?xx, 10 输出迭代输出X输出奇异标志1失败标志

,3,输入变量、输出变量说明: 结束 例:导出计算的牛顿迭代公式,并il ?算。(课本P39例2-16) 115cc (0), 求解结果: 10. 750000 10.723837 10. 723805 10. 723805 2、列主元素消去法求解线性方程组,1,算法原理: 高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘 -个 方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上 对上三角 3/16 华北电力大学实验报告方程组求解。 列选主元是当高斯消元到第步时,从列的以下(包括)的各元素中选出绝 aakkkkkk 对值最大的,然后通过行交换将其交换到的位置上。交换系数矩阵中的 两行(包括常ekk 数项),只相当于两个方程的位置交换了,因此,列选主元不影响求解的结 ,2,计算机程序框图:,见下页, 输入变量:系数矩阵元素,常向量元素baiji 输出变量:解向量元素bbb,,12n

数值分析习题与答案

第一章绪论 习题一 1.设x>0,x*的相对误差为δ,求f(x)=ln x的误差限。解:求lnx的误差极限就是求f(x)=lnx的误差限,由公式(1. 2.4)有 已知x*的相对误差满足,而 ,故 即 2.下列各数都是经过四舍五入得到的近似值,试指出它们有几位有效数字,并给出其误差限与相对误差限。 解:直接根据定义和式(1.2.2)(1.2.3)则得 有5位有效数字,其误差限,相对误差限 有2位有效数字, 有5位有效数字, 3.下列公式如何才比较准确? (1) (2)

解:要使计算较准确,主要是避免两相近数相减,故应变换所给公式。 (1) (2) 4.近似数x*=0.0310,是 3 位有数数字。 5.计算取,利用:式计算误差最小。 四个选项: 第二、三章插值与函数逼近 习题二、三 1. 给定的数值表 用线性插值与二次插值计算ln0.54的近似值并估计误差限. 解:仍可使用n=1及n=2的Lagrange插值或Newton插值,并应用误差估计(5.8)。线性插值时,用0.5及0.6两点,用Newton插值 误差限,因

,故 二次插值时,用0.5,0.6,0.7三点,作二次Newton插值 误差限 ,故 2. 在-4≤x≤4上给出的等距节点函数表,若用二次插值法求的近似值,要使误差不超过,函数表的步长h 应取多少? 解:用误差估计式(5.8), 令 因 得 3. 若,求和.

解:由均差与导数关系 于是 4. 若互异,求 的值,这里p≤n+1. 解:,由均差对称性 可知当有 而当P=n+1时 于是得 5. 求证. 解:解:只要按差分定义直接展开得 6. 已知的函数表

数值计算方法学习心得

数值计算方法学习心得 ------一个代码的方法是很重要,一个算法的思想也很重要,但 在我看来,更重要的是解决问题的方法,就像爱因斯坦说的内容比 思维本身更重要。 我上去讲的那次其实做了挺充分的准备,程序的运行,pdf文档,算法公式的推导,程序伪代码,不过有一点缺陷的地方,很多细节 没有讲的很清楚吧,下来之后也是更清楚了这个问题。 然后一学期下来,总的来说,看其他同学的分享,我也学习到 许多东西,并非只是代码的方法,更多的是章胜同学的口才,攀忠 的排版,小冯的深入挖掘…都是对我而言比算法更加值得珍惜的东西,又骄傲地回想一下,曾同为一个项目组的我们也更加感到做项 目对自己发展的巨大帮助了。 同时从这些次的实验中我发现以前学到的很多知识都非常有用。 比如说,以前做项目的时候,项目导师一直要求对于要上传的 文件尽量用pdf格式,不管是ppt还是文档,这便算是对产权的一种 保护。 再比如代码分享,最基础的要求便是——其他人拿到你的代码 也能运行出来,其次是代码分享的规范性,像我们可以用轻量级Ubuntu Pastebin,以前做过一小段时间acm,集训队里对于代码的分享都是推荐用这个,像数值计算实验我觉得用这个也差不多了,其 次项目级代码还是推荐github(被微软收购了),它的又是可能更 多在于个人代码平台的搭建,当然像readme文档及必要的一些数据 集放在上面都更方便一些。

然后在实验中,发现debug能力的重要性,对于代码错误点的 正确分析,以及一些与他人交流的“正规”途径,讨论算法可能出 错的地方以及要注意的细节等,比如acm比赛都是以三人为一小组,讨论过后,讲了一遍会发现自己对算法理解更加深刻。 然后学习算法,做项目做算法一般的正常流程是看论文,尽量 看英文文献,一般就是第一手资料,然后根据论文对算法的描述, 就是如同课上的流程一样,对算法进一步理解,然后进行复现,最 后就是尝试自己改进。比如知网查询牛顿法相关论文,会找到大量 可以参考的文献。 最后的最后,想说一下,计算机专业的同学看这个数值分析, 不一定行云流水,但肯定不至于看不懂写不出来,所以我们还是要 提高自己的核心竞争力,就是利用我们的优势,对于这种算法方面 的编程,至少比他们用的更加熟练,至少面对一个问题,我们能思 考出对应问题的最佳算法是哪一个更合适解决问题。 附记: 对课程的一些小建议: 1. debug的能力不容忽视,比如给一个关于代码实现已知错误的代码给同学们,让同学们自己思考一下,然后分享各自的debug方法,一步一步的去修改代码,最后集全班的力量完成代码的debug,这往往更能提升同学们的代码能力。 2. 课堂上的效率其实是有点低的,可能会给学生带来一些负反馈,降低学习热情。 3. 总的来说还是从这门课程中学到许多东西。 数值分析学习心得体会

数值计算方法》试题集及答案

《计算方法》期中复习试题 一、填空题: 1、已知3.1)3(,2.1)2(,0.1)1(===f f f ,则用辛普生(辛卜生)公式计算求得 ?≈3 1 _________ )(dx x f ,用三点式求得≈')1(f 。 答案:2.367,0.25 2、1)3(,2)2(,1)1(==-=f f f ,则过这三点的二次插值多项式中2 x 的系数为 ,拉 格朗日插值多项式为 。 答案:-1, )2)(1(21 )3)(1(2)3)(2(21)(2--------= x x x x x x x L 3、近似值*0.231x =关于真值229.0=x 有( 2 )位有效数字; 4、设)(x f 可微,求方程)(x f x =的牛顿迭代格式是( ); 答案 )(1)(1n n n n n x f x f x x x '--- =+ 5、对1)(3 ++=x x x f ,差商=]3,2,1,0[f ( 1 ),=]4,3,2,1,0[f ( 0 ); 6、计算方法主要研究( 截断 )误差和( 舍入 )误差; 7、用二分法求非线性方程 f (x )=0在区间(a ,b )内的根时,二分n 次后的误差限为 ( 1 2+-n a b ); 8、已知f (1)=2,f (2)=3,f (4)=5.9,则二次Newton 插值多项式中x 2系数为( 0.15 ); 11、 两点式高斯型求积公式?1 d )(x x f ≈( ?++-≈1 )] 321 3()3213([21d )(f f x x f ),代数精度 为( 5 ); 12、 为了使计算 32)1(6 )1(41310-- -+-+ =x x x y 的乘除法次数尽量地少,应将该表达 式改写为 11 ,))64(3(10-= -++=x t t t t y ,为了减少舍入误差,应将表达式1999 2001-

数值分析论文

题目:论数值分析在数学建模中的应用 学院: 机械自动化学院 专业: 机械设计及理论 学号: 学生姓名: 日期: 2011年12月5日

论数值分析在数学建模中的应用 摘要 为了满足科技发展对科学研究和工程技术人员用数学理论解决实际的能力的要求,讨论了数值分析在数学建模中的应用。数值分析不仅应用模型求解的过程中,它对模型的建立也具有较强的指导性。研究数值分析中插值拟合,解线性方程组,数值积分等方法在模型建立、求解以及误差分析中的应用,使数值分析作为一种工具更好的解决实际问题。 关键词 数值分析;数学建模;线性方程组;微分方程 the Application of Numerical Analysis in Methmetical Modeling Han Y u-tao 1 Bai Y ang 2 Tian Lu 2 Liu De-zheng 2 (1 College of Science ,Tianjin University of Commerce ,Tianjin ,300134 2 College of Science ,Tianjin University of Commerce ,Tianjin ,300134) Abstract In order to meet the technological scientific researchers who use mathematical theory to solve practical problems, the use of numerical analysis in mathematical modeling is discussed.Numerical analysis not only solve the model,but also relatively guide the model.Research on some numerical methods in numerical analysis which usually used in mathmetical modeling and error analysis will be a better way to solve practical problems. Key Words Numerical Analysis ;Mathematical Modeling; Linear Equations ;differential equation 1. 引言 数值分析主要介绍现代科学计算中常用的数值计算方法及其基本原理,研究并解决数值问题的近似解,是数学理论与计算机和实际问题的有机结合[1]。随着科学技术的迅速发展,运用数学方法解决科学研究和工程技术领域中的实际问题,已经得到普遍重视。数学建模是数值分析联系实际的桥梁。在数学建模过程中,无论是模型的建立还是模型的求解都要用到数值分析课程中所涉及的算法,如插值方法、最小二乘法、拟合法等,那么如何在数学建模中正确的应用数值分析内容,就成了解决实际问题的关键。 2. 数值分析在模型建立中的应用 在实际中,许多问题所研究的变量都是离散的形式,所建立的模型也是离散的。例如,对经济进行动态的分析时,一般总是根据一些计划的周期期末的指标值判断某经济计划执行的如何。有些实际问题即可建立连续模型,也可建立离散模型,但在研究中,并不能时时刻刻统计它,而是在某些特定时刻获得统计数据。例如,人口普查统计是一个时段的人口增长量,通过这个时段人口数量变化规律建立离散模型来预测未来人口。另一方面,对常见的微分方程、积分方程为了求解,往往需要将连续模型转化成离散模型。将连续模型转化成离散模型,最常用的方法就是建立差分方程。 以非负整数k 表示时间,记k x 为变量x 在时刻k 的取值,则称k k k x x x -=?+1为k x 的一阶差分,称k k k k k x x x x x +-=??=?++1222)(为k x 的二阶差分。类似课求出k x 的n 阶差分k n x ?。由k ,k x ,及k x 的差分给出的方程称为差分方程[2]。例如在研究节食与运动模型时,发现人们往往采取节食与运动方式消耗体内存储的脂肪,引起体重下降,达到减肥目的。通常制定减肥计划以周为时间单位比较方便,所以采用差分方程模型进行讨论。记第k 周末体重为)(k w ,第k 周吸收热量为)(k c ,热量转换系数α,代谢消耗系数β,在不考虑运动情况下体重变化的模型

计算方法心得体会

计算方法学习心得 在研究生一年级的上半学期,我们安排了计算方法的课程,通过课堂授课、网上学习、学术报告以及课堂监督等方式的引导,我们对计算方法有了全新的认识。 我们知道,数学是一门重要的基础学科。离开了数学,科技便无法发展。而在数学这门学科中,数值计算方法有着其不可取代的重要地位。 在授课的过程中,首先利用前几讲课的时间对计算方法的基础进行补充,考虑到有部分专业的学生在本科时期没有接触过计算方法这门课程;计算方法主要研究实际问题,当今社会计算机高速的发展,为人们使用数值计算方法解决科学技术中的各种数学问题提供了有力的硬件条件。要将关于数值计算的实际问题借助于计算机来解决,那么实际的上机操作就显得十分重要。因此,老师在平时课堂授课的同时,也推广网上学习,通过课堂掌握知识、网上复习内容双重方式学习,更有利于我们掌握知识,另外对于我们上机操作也具有十分重要的指导意义。 通过网上看教学视频,一方面我们对课上学习的内用加深了印象,另一方面由于课堂上时间有限,对于某些知识,我们在听课时不是很清楚,似懂非懂,在网上学习的帮助下,我们可以在课后及时对这些知识进行进一步的消化,对于我们吸收知识也是一种很好的方式。此外,网上学习具有可重复性的优点,这是课堂上所不具有的特点,在课堂上不懂的知识,在网上可以反复学习,在网上学习中遇到

的问题也能够反馈到课堂。所以课堂授课与网上学习相辅相成,各有优点,弥补了各自的不足之处。 当然课程的学术报告也十分重要,学是一码事,应用却是另一码事,很多课程中,我们学会了,遇到问题却不会解决,所以课程学术报告此时起了关键作用。学术报告是基于每组学生各自的专业设置的,这样做一方面检验学生应用计算方法的能力,另一方面也是为了引导学生将计算方法与本专业联系起来,学会应用学过的知识对现象进行描述、建模以及采用编程的方法处理数据等。 本学期的计算方法课程相当充实,在老师课上精心的授课、学生课下利用网上资源认真复习、对课程学术报告的完成以及课堂监督下,同学们都受益匪浅,尤其是对于数据处理方法的学习、思维的形成都有极其重要的作用,对于后期的专业研究也有深远的影响。 本学期已经接近尾声,计算方法课程也已经结束,在此向老师表示敬意和感谢!

数值分析作业答案

数值分析作业答案 插值法 1、当x=1,-1,2时,f(x)=0,-3,4,求f(x)的二次插值多项式。 (1)用单项式基底。 (2)用Lagrange插值基底。 (3)用Newton基底。 证明三种方法得到的多项式是相同的。 解:(1)用单项式基底 设多项式为: , 所以: 所以f(x)的二次插值多项式为: (2)用Lagrange插值基底 Lagrange插值多项式为: 所以f(x)的二次插值多项式为: (3) 用Newton基底: 均差表如下: xk f(xk) 一阶均差二阶均差 1 0 -1 -3 3/2 2 4 7/ 3 5/6 Newton插值多项式为: 所以f(x)的二次插值多项式为: 由以上计算可知,三种方法得到的多项式是相同的。 6、在上给出的等距节点函数表,若用二次插值求ex的近似值,要使截断误差不超过10-6,问使用函数表的步长h应取多少? 解:以xi-1,xi,xi+1为插值节点多项式的截断误差,则有 式中 令得 插值点个数

是奇数,故实际可采用的函数值表步长 8、,求及。 解:由均差的性质可知,均差与导数有如下关系: 所以有: 15、证明两点三次Hermite插值余项是 并由此求出分段三次Hermite插值的误差限。 证明:利用[xk,xk+1]上两点三次Hermite插值条件 知有二重零点xk和k+1。设 确定函数k(x): 当或xk+1时k(x)取任何有限值均可; 当时,,构造关于变量t的函数 显然有 在[xk,x][x,xk+1]上对g(x)使用Rolle定理,存在及使得 在,,上对使用Rolle定理,存在,和使得 再依次对和使用Rolle定理,知至少存在使得 而,将代入,得到 推导过程表明依赖于及x 综合以上过程有: 确定误差限: 记为f(x)在[a,b]上基于等距节点的分段三次Hermite插值函数。在区间[xk,xk+1]上有 而最值 进而得误差估计: 16、求一个次数不高于4次的多项式,使它满足,,。

数值分析常用的插值方法

数值分析报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……x n处的值是f(x0),……f(x n),要求估算f(x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0, C1,……C n的函数类Φ(C0,C1,……C n)中求出满足条件P(x i)=f(x i)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……C n)称为插值函数类,上面等式称为插值条件,Φ(C0,……C n)中满足上式的函数称为插值函数,R(x)=f(x)-P(x)称为插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,,,n x x x L 上的函数值01,,,n y y y L ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =++++L ,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a L 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 20112111 2012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?++++=?++++=?? ? ?++++=?L L L L L 其系数矩阵的行列式D 为范德萌行列式: ()20 0021110 2111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏L L M M M M L

数值分析学习方法

第一章 1霍纳(horner)方法: 输入=c + bn*c bn?1*c b3*c b2*c b1*c an an?1 an?2 ……a2 a1 a0 bn bn?1 bn?2 b2 b1 b0 answer p(x)=b0 该方法用于解决多项式求值问题=anxn+an?1xn?1+an?2xn?2+……+a2x2+a1x+a0 ? 2 注:p为近似值 p(x) 绝对误差: ?|ep?|p?p ?||p?p rp? |p| 相对误差: ?|101?d|p?p rp?? |p|2 有效数字: (d为有效数字,为满足条件的最大整数) 3 big oh(精度的计算): o(h?)+o(h?)=o(h?); o(hm)+o(hn)=o(hr) [r=min{p,q}]; o(hp)o(hq)=o(hs) [s=q+p]; 第二章 2.1 求解x=g(x)的迭代法用迭代规则 ,可得到序 列值{}。设函数g 满足 y 定义在得 。如果对于所有 x ,则函数g 在 ,映射y=g(x)的范围 内有一个不动点; 此外,设 ,存在正常数k<1,使 内,且对于所有x,则函数g 在 内有唯一的不动点p。 ,(ii)k是一个正常数, 。如果对于所有 定理2.3 设有(i)g,g ’(iii ) 如果对于所有x在

这种情况下,p成为排斥不动点,而且迭代显示出局部发散 性。波理 尔 查 . 诺 二 分 法 ( 二 分 法 定) <收敛速度较慢> 试值(位)法:<条件与二分法一样但改为寻求过点(a,f(a))和(b,f(b))的割线l与 x轴的交点(c,0)> 应注意 越来越 小,但可能不趋近于0,所以二分法的终止判别条件不适合于试值法 . f(pk?1) 其中k=1,2,……证明:用 f(pk?1) 牛顿—拉夫森迭代函数:pk?g(pk?1)?pk?1? 泰勒多项式证明 第三章线性方程组的解法对于给定的解线性方程组ax=b a11x1 ? a12x2 ? ? ? a1nxn ? b1 a21x1 ? a22x2 ? ? ? a2nxn ? b2 ? an1x1 ? an2x2 ? ? ? annxn ? bn 一gauss elimination (高斯消元法第一步forward elimination 第二步 substitution 二lu factorization 第一步 a = lu 原方程变为lux=y ; 第二步令ux=y,则ly = b由下三角解出y;第三步 ux=y,又上三角解出x ; 三iterative methods(迭代法) a11x1 ? a12x2 ? ? ? a1nxn ? b1 a21x1 ? a22x2 ? ? ? a2nxn ? b2? ) back 初始值 0,x0,?,x0x1n2 四 jacobi method 1.选择初始值 2.迭代方程为 0,x0,?,x0x1n2 k?1? x1k?1 ? x2

相关文档
最新文档