当前位置:文档之家› 高斯光束的matlab仿真复习进程

高斯光束的matlab仿真复习进程

高斯光束的matlab仿真复习进程
高斯光束的matlab仿真复习进程

高斯光束的m a t l a b

仿真

题目:根据高斯光束数学模型,模拟仿真高斯光束在谐振腔中某一位置处的归一化强度分布并给出其二维、三维强度分布仿真图;用Matlab读取实际激光光斑照片中所记录的强度数据(读取照片中光斑的一个直径所记录的强度数据即可,Matlab读取照片数据命令为imread),用该数据画出图片中激光光斑的强度二维分布图,与之前数学模型仿真图对比。(如同时考虑高斯光束光斑有效截面半径和等相位面特点,仿真高斯光束光强、光斑有效截面半径以及等相位面同时随传播距离z的变化并给出整体仿真图可酌情加分。)

原始光斑如图1所示,用imread命令读入matlab后直接用imshow命令读取即可,

CCD采集的高斯光束光强分布

图1 CCD采集的高斯光束强度分布

读入的数据是一个224 X 244的矩阵,矩阵中的数值代表光强分布。用读入的数据取中间一行(122行)画出强度分布如图2所示。

图2 实验测量高斯曲线

用理论上的高斯曲线公式画出理论高斯曲线如图3所示。

图3 理论高斯曲线

50

100150200

020406080100120140160

180实验测量高斯曲线

-40

-30-20-10010203040

00.2

0.4

0.6

0.8

1

理论高斯曲线

M文件如下:

A=imread('D:\documents\作业\激光原理与应用\高斯.bmp');

A1=A(:,122);

x1=1:1:224;

x2=-100:1:100;

a2=exp(-x2.^2/10);

figure

imshow(A);

axis off

title('\fontsize{12}CCD采集的高斯光束光强分布');

figure

plot(x2,a2,'linewidth',1,'color','b');

axis([-40 40 0 1.2])

title('\fontsize{12}实验测量高斯曲线')

figure

plot(x1,A1,'linewidth',1,'color','r')

title('\fontsize{12}理论高斯曲线')

axis([50 200 0 180])

画三维强度分布。取图片矩阵的中间层,用mesh命令画出三维图如图4所示。

图4 三维强度分布

由于读入的图片有一行白边,需要手动去除掉,否则三维图会有一边整体竖起来,影响观察。最终的M文件如下。

A=imread('D:\documents\作业\激光原理与应用\高斯.bmp');

[high, width, color] = size(A);

x=1:width;

y=1:high-1;

mesh(x', y', double(A(2:224,:,1)));

grid on

xlabel('x'),ylabel('y'),zlabel('z');

title('三维强度分布');

再用matlab仿真理论上传播过程中高斯光束的变化

这次先给出M文件:

%Gaussian_propagation.m

%Simulation of diffraction of Gaussian Beam

clear;

%Gaussian Beam

%N:sampling number

N=input('Number of samples(enter from 100 to 500)=');

L=10*10^-3;

Ld=input('wavelength of light in [micrometers]=');

Ld=Ld*10^-6;

ko=(2*pi)/Ld;

wo=input('Waist of Gaussian Beam in [mm]=');

wo=wo*10^-3;

z_ray=(ko*wo^2)/2*10^3;

sprintf('Rayleigh range is %f [mm]',z_ray)

z_ray=z_ray*10^-3;

z=input('Propagation length (z) in [mm]');

z=z*10^-3;%dx:step size

dx=L/N;

for n=1:N+1

for m=1:N+1

%Space axis

x(m)=(m-1)*dx-L/2;

y(n)=(n-1)*dx-L/2;

%Gaussian Beam in space domain

Gau(n,m)=exp(-(x(m)^2+y(n)^2)/(wo^2));%Frequency axis Kx(m)=(2*pi*(m-1))/(N*dx)-((2*pi*(N))/(N*dx))/2;

Ky(n)=(2*pi*(n-1))/(N*dx)-((2*pi*(N))/(N*dx))/2;

%Free space transfer function

H(n,m)=exp(j/(2*ko)*z*(Kx(m)^2+Ky(n)^2));

end

end

%Gaussian Beam in Frequency domain

FGau=fft2(Gau);

FGau=fftshift(FGau);

%Propagated Gaussian beam in Frequency domain

FGau_pro=FGau.*H;

%Peak amplitude of the initial Gaussian beam

Peak_ini=max(max(abs(Gau)));

sprintf('Initial peak amplitude is %f [mm]',Peak_ini)%Propagated Gaussian beam in space domain

Gau_pro=ifft2(FGau_pro);

Gau_pro=Gau_pro;

%Peak amplitude of the propagated Gaussian beam

Peak_pro=max(max(abs(Gau_pro)));

sprintf('Propagated peak amplitude is %f [mm]',Peak_pro)%Calculated Beam Width

[N M]=min(abs(x));

Gau_pro1=Gau_pro(:,M);

[N1 M1]=min(abs(abs(Gau_pro1)-abs(exp(-1)*Peak_pro)));

Bw=dx*abs(M1-M)*10^3;

sprintf('Beam width(numerical) is %f[mm]',Bw)%Theoretical Beam Width W=(2*z_ray)/ko*(1+(z/z_ray)^2);

W=(W^0.5)*10^3;

sprintf('Beam width(theoretical) is %f[mm]',W)%axis in mm scale

x=x*10^3;

y=y*10^3;

figure(1);

mesh(x,y,abs(Gau))

title('Initial Gaussian Beam')

xlabel('x [mm]')

ylabel('y [mm]')

axis([min(x) max(x) min(y) max(y) 0 1])

axis square

figure(2);

mesh(x,y,abs(Gau_pro))

title('propagated Gaussian Beam')

xlabel('x [mm]')

ylabel('y [mm]')

axis([min(x) max(x) min(y) max(y) 0 1])

axis square

程序主要根据高斯光束的传播规律计算传播过程中任意z处的高斯光强分布。运行结果:

Number of samples(enter from 100 to 500)=500

wavelength of light in [micrometers]=0.568

Waist of Gaussian Beam in [mm]=1

ans =

Rayleigh range is 5530.972982 [mm]

Propagation length (z) in [mm]100000

ans =

Initial peak amplitude is 1.000000 [mm]

ans =

Propagated peak amplitude is 0.210252 [mm]

ans =

Beam?width(numerical) is 1.940000[mm]

ans =

Beam?width(theoretical) is 18.107635[mm]

>>

束腰半径处的理想高斯光强分布

传播1m处的理想高斯光强分布

传播10m处的理想高斯光强分布

传播20m处的理想高斯光强分布

传播30m处的理想高斯光强分布

传播50m处的理想高斯光强分布

传播100m处的理想高斯光强分布

而用实验测得的光斑仿真的结果是:

原始光斑的光强分布

0.1m处

1m处

1.8m处

5m处

10m以后,已经基本是均匀强度的光斑

matlab仿真光束的传输特性

一、课程设计题目: 用matlab 仿真光束的传输特性。 二、任务和要求 用matlab 仿真光束通过光学元件的变换。 ① 设透镜材料为k9玻璃,对1064nm 波长的折射率为1.5062,镜片中心厚度为3mm ,凸面曲率半径,设为100mm ,初始光线距离透镜平面20mm 。用matlab 仿真近轴光线(至少10条)经过平凸透镜的焦距,与理论焦距值进行对比,得出误差大小。 ② 已知透镜的结构参数为101=r ,0.11=n ,51=d ,5163.121=='n n (K9玻璃),502-=r ,0.12=' n ,物点A 距第一面顶点的距离为100,由 A 点计算三条沿光轴夹角分别为10、20、30的光线的成像。试用Matlab 对以上三条光线光路和近轴光线光路进行仿真,并得出实际光线的球差大小。 ③ 设半径为1mm 的平面波经凸面曲率半径为25mm ,中心厚度3mm 的平凸透镜。用matlab 仿真平面波在透镜几何焦平面上的聚焦光斑强度分布,计算光斑半径。并与理论光斑半径值进行对比,得出误差大小。(方法:采用波动理论,利用基尔霍夫—菲涅尔衍射积分公式。)

2、用MATLAB仿真平行光束的衍射强度分布图样。(夫朗和费矩形孔衍射、夫朗和费圆孔衍射、夫朗和费单缝和多缝衍射。) 3、用MATLAB仿真厄米—高斯光束在真空中的传输过程。(包括三维强度分布和平面的灰度图。) 4、(补充题)查找文献,掌握各类空心光束的表达式,采用费更斯-菲涅尔原理推导各类空心光束在真空中传输的光强表达式。用matlab对不同传输距离处的光强进行仿真。 三、理论推导部分 将坐标原点选在透镜中心处,θ1=arcsin(y1/r),由n1*sinθ1=n2*sin θ2可得出θ2=arcsin(n1/n2)*(y1/r),由几何关系可得到θ=θ2-θ1,则出射光线的斜率k=tan(θ2-θ1),当入射直线y=y1时,x1=d-(r -)2^1 r ),并设出射直线为y=k*x+b;由直线经过(x1,y1)即 2^(y

牛顿插值法原理及应用

牛顿插值法 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0 )...(x-xn-1)+Rn(x)。 插值函数 插值函数的概念及相关性质[1] 定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点 x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数. 称x1,x2,…xn 为插值节点,称[a,b]为插值区间。 定理:n次代数插值问题的解存在且唯一。

牛顿插值法C程序 程序框图#include void main() { float x[11],y[11][11],xx,temp,newton; int i,j,n; printf("Newton插值:\n请输入要运算的值:x="); scanf("%f",&xx); printf("请输入插值的次数(n<11):n="); scanf("%d",&n); printf("请输入%d组值:\n",n+1); for(i=0;i

高斯光束的matlab仿真复习进程

高斯光束的m a t l a b 仿真

题目:根据高斯光束数学模型,模拟仿真高斯光束在谐振腔中某一位置处的归一化强度分布并给出其二维、三维强度分布仿真图;用Matlab读取实际激光光斑照片中所记录的强度数据(读取照片中光斑的一个直径所记录的强度数据即可,Matlab读取照片数据命令为imread),用该数据画出图片中激光光斑的强度二维分布图,与之前数学模型仿真图对比。(如同时考虑高斯光束光斑有效截面半径和等相位面特点,仿真高斯光束光强、光斑有效截面半径以及等相位面同时随传播距离z的变化并给出整体仿真图可酌情加分。) 原始光斑如图1所示,用imread命令读入matlab后直接用imshow命令读取即可, CCD采集的高斯光束光强分布 图1 CCD采集的高斯光束强度分布 读入的数据是一个224 X 244的矩阵,矩阵中的数值代表光强分布。用读入的数据取中间一行(122行)画出强度分布如图2所示。

图2 实验测量高斯曲线 用理论上的高斯曲线公式画出理论高斯曲线如图3所示。 图3 理论高斯曲线 50 100150200 020406080100120140160 180实验测量高斯曲线 -40 -30-20-10010203040 00.2 0.4 0.6 0.8 1 理论高斯曲线

M文件如下: A=imread('D:\documents\作业\激光原理与应用\高斯.bmp'); A1=A(:,122); x1=1:1:224; x2=-100:1:100; a2=exp(-x2.^2/10); figure imshow(A); axis off title('\fontsize{12}CCD采集的高斯光束光强分布'); figure plot(x2,a2,'linewidth',1,'color','b'); axis([-40 40 0 1.2]) title('\fontsize{12}实验测量高斯曲线') figure plot(x1,A1,'linewidth',1,'color','r') title('\fontsize{12}理论高斯曲线') axis([50 200 0 180]) 画三维强度分布。取图片矩阵的中间层,用mesh命令画出三维图如图4所示。 图4 三维强度分布 由于读入的图片有一行白边,需要手动去除掉,否则三维图会有一边整体竖起来,影响观察。最终的M文件如下。 A=imread('D:\documents\作业\激光原理与应用\高斯.bmp'); [high, width, color] = size(A); x=1:width; y=1:high-1; mesh(x', y', double(A(2:224,:,1))); grid on xlabel('x'),ylabel('y'),zlabel('z'); title('三维强度分布');

matlab实现数值分析报告插值及积分

Matlab实现数值分析插值及积分 摘要: 数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。在实际生产实践中,常常将实际问题转化为数学模型来解决,这个过程就是数学建模。学习数值分析这门课程可以让我们学到很多的数学建模方法。 分别运用matlab数学软件编程来解决插值问题和数值积分问题。题目中的要求是计算差值和积分,对于问题一,可以分别利用朗格朗日插值公式,牛顿插值公式,埃特金逐次线性插值公式来进行编程求解,具体matlab代码见正文。编程求解出来的结果为:=+。 其中Aitken插值计算的结果图如下: 对于问题二,可以分别利用复化梯形公式,复化的辛卜生公式,复化的柯特斯公式编写程序来进行求解,具体matlab代码见正文。编程求解出来的结果为: 0.6932 其中复化梯形公式计算的结果图如下:

问题重述 问题一:已知列表函数 表格 1 分别用拉格朗日,牛顿,埃特金插值方法计算。 问题二:用复化的梯形公式,复化的辛卜生公式,复化的柯特斯公式计算积分,使精度小于5。 问题解决 问题一:插值方法 对于问题一,用三种差值方法:拉格朗日,牛顿,埃特金差值方法来解决。 一、拉格朗日插值法: 拉格朗日插值多项式如下: 首先构造1+n 个插值节点n x x x ,,,10 上的n 插值基函数,对任一点i x 所对应的插值基函数 )(x l i ,由于在所有),,1,1,,1,0(n i i j x j +-=取零值,因此)(x l i 有因子 )())(()(110n i i x x x x x x x x ----+- 。又因)(x l i 是一个次数不超过n 的多项式,所以只 可能相差一个常数因子,固)(x l i 可表示成: )())(()()(110n i i i x x x x x x x x A x l ----=+- 利用1)(=i i x l 得:

高斯光束的matlab仿真

题目:根据高斯光束数学模型,模拟仿真高斯光束在谐振腔中某一位置处的归一化强度分布并给出其二维、三维强度分布仿真图;用Matlab读取实际激光光斑照片中所记录的强度数据(读取照片中光斑的一个直径所记录的强度数据即可,Matlab读取照片数据命令为imread),用该数据画出图片中激光光斑的强度二维分布图,与之前数学模型仿真图对比。(如同时考虑高斯光束光斑有效截面半径和等相位面特点,仿真高斯光束光强、光斑有效截面半径以及等相位面同时随传播距离z的变化并给出整体仿真图可酌情加分。) 原始光斑如图1所示,用imread命令读入matlab后直接用imshow命令读取即可, CCD采集的高斯光束光强分布 图1 CCD采集的高斯光束强度分布 读入的数据是一个224 X 244的矩阵,矩阵中的数值代表光强分布。用读入的数据取中间一行(122行)画出强度分布如图2所示。

图2 实验测量高斯曲线 用理论上的高斯曲线公式画出理论高斯曲线如图3所示。 图3 理论高斯曲线 50 100150200 020406080100120140160 180实验测量高斯曲线 -40 -30-20-10010203040 00.2 0.4 0.6 0.8 1 理论高斯曲线

M文件如下: A=imread('D:\documents\作业\激光原理与应用\高斯.bmp'); A1=A(:,122); x1=1:1:224; x2=-100:1:100; a2=exp(-x2.^2/10); figure imshow(A); axis off title('\fontsize{12}CCD采集的高斯光束光强分布'); figure plot(x2,a2,'linewidth',1,'color','b'); axis([-40 40 0 1.2]) title('\fontsize{12}实验测量高斯曲线') figure plot(x1,A1,'linewidth',1,'color','r') title('\fontsize{12}理论高斯曲线') axis([50 200 0 180]) 画三维强度分布。取图片矩阵的中间层,用mesh命令画出三维图如图4所示。 图4 三维强度分布 由于读入的图片有一行白边,需要手动去除掉,否则三维图会有一边整体竖起来,影响观察。最终的M文件如下。 A=imread('D:\documents\作业\激光原理与应用\高斯.bmp'); [high, width, color] = size(A); x=1:width; y=1:high-1; mesh(x', y', double(A(2:224,:,1))); grid on xlabel('x'),ylabel('y'),zlabel('z'); title('三维强度分布');

matlab牛顿插值法例题与程序

题目一:多项式插值 某气象观测站在8:00(AM )开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton )逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。 二、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式: )() )(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -??-+??+-++=αααα (1) 其中系数i α(i=0,1,2……n )为特定系数,可由插值样条i i n y x P =) ((i=0,1,2……n )确定。 根据均差的定义,把x 看成[a,b]上的一点,可得 f(x)= f (0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x ) …… f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n ) 综合以上式子,把后一式代入前一式,可得到: f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ]) (x 1n +ω= N n (x )+) (x n R 其中

N n (x )= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2) )(x n R = f(x)- N n (x )= f[x, 0x , (x) n ,x ]) (x 1n +ω (3) ) (x 1n +ω=(0x -x )…(x-x n ) Newton 插值的系数i α(i=0,1,2……n )可以用差商表示。一般有 f k =α[k 10x x x ??,] (k=0,1,2,……,n ) (4) 把(4)代入(1)得到满足插值条件N )() (i i n x f x =(i=0,1,2,……n )的n 次Newton 插值多项式 N n (x )=f (0x )+f[10x x ,](1x -x )+f[210x x x ,,](1x -x )(2x -x )+……+f[n 10x x x ??,](1x -x )(2x -x )…(1-n x -x ). 其中插值余项为: ) ()! () ()()()(x 1n f x N -x f x R 1n 1 n n +++==ωξ ξ介于k 10x x x ??,之间。 三、程序设计 function [y,A,C,L]=newdscg(X,Y,x,M) % y 为对应x 的值,A 为差商表,C 为多项式系数,L 为多项式 % X 为给定节点,Y 为节点值,x 为待求节点 n=length(X); m=length(x); % n 为X 的长度 for t=1:m

基于matlab高斯光束经透射型体光栅后的光束传输特性分析(附源程序)

目录 1 基本原理 (1) 1.1耦合波理论 (1) 1.2高斯光波的基本理论 (9) 2 建立模型描述 (10) 3仿真结果及分析 (10) 3.1角度选择性的模拟 (10) 3.2波长选择性的模拟 (13) 3.3单色发散光束经透射型布拉格体光栅的特性 (15) 3.4多色平面波经透射型布拉格体光栅的特性 (17) 4 调试过程及结论 (18) 5 心得体会 (20) 6 思考题 (20) 7 参考文献 (20) 8 附录 (21)

高斯光束经透射型体光栅后的光束传输 特性分析 1 基本原理 1.1耦合波理论 耦合波理论分析方法基于厚全息光栅产生的布拉格衍射光。当入射波被削弱且产生强衍射效率时,耦合波理论分析方法适用耦合波理论分析方法适用于透射光栅。 1.1.1耦合波理论研究的假设条件及模型 耦合波理论研究的假设条件: (1) 单色波入射体布拉格光栅; (2) 入射波以布拉格角度或近布拉格角度入射; (3)入射波垂直偏振与入射平面; (4)在体光栅中只有两个光波:入射光波 R 和衍射光波 S; (5)仅有入射光波 R 和衍射光波 S 遵守布拉格条件,其余的衍射能级违背布拉格 条件,可被忽略; (6)其余的衍射能级仅对入射光波 R 和衍射光波 S 的能量交换有微小影响; (7)将耦合波理论限定于厚布拉格光栅中; 图1为用于耦合波理论分析的布拉格光栅模型。z 轴垂直于介质平面,x 轴在介质平面内,平行于介质边界,y 轴垂直于纸面。边界面垂直于入射面,与介质边界成Φ角。光栅矢量K垂直于边界平面,其大小为2/ =Λ,Λ为光栅周期,θ为入射角。 Kπ 图1布拉格光栅模型

牛顿插值MATLAB算法

MATLAB程序设计期中作业 ——编程实现牛顿插值 成员:刘川(P091712797)签名_____ 汤意(P091712817)签名_____ 王功贺(P091712799)签名_____ 班级:2009信息与计算科学 学院:数学与计算机科学学院 日期:2012年05月02日

牛顿插值的算法描述及程序实现 一:问题说明 在我们的实际应用中,通常需要解决这样的问题,通过一些已知的点及其对应的值,去估算另外一些点的值,这些数据之间近似服从一定的规律,于是,这就引入了插值法的思想。 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 二:算法分析 newton 插值多项式的表达式如下: 010011()()()()()n n n N x c c x x c x x x x x x -=+-+???+--???- 其中每一项的系数c i 的表达式如下: 12011010 [,,,][,,,] [,,,]i i i i i f x x x f x x x c f x x x x x -???-???=???= - 即为f (x)在点01,,,i x x x ???处的i 阶差商,([]()i i f x f x =,1,2,,i n = ),由差商01[,,,]i f x x x ???的性质可知: () 010 1 [,,,]()i i i j j k j k k j f x x x f x x x ==≠???=-∑∏ 牛顿插值的程序实现方法: 第一步:计算[][][][]001012012,,,,,,,n f x f x x f x x x f x x x x 、、、 、。 第二步:计算牛顿插值多项式中01[,,,]i f x x x ???011()()()i x x x x x x ---???-,1,2,,i n = ,得到n 个多项式。

MATLAB 高斯光束传播轨迹的模拟

B1:高斯光束传播轨迹的模拟 设计任务: 作图表示高斯光束的传播轨迹 (1)基模高斯光束在自由空间的传播轨迹; (2)基模高斯光束经单透镜变换前后的传播轨迹; (3)基模高斯光束经调焦望远镜变换前后的传播轨迹。 function varargout = B1(varargin) % B1 M-file for B1.fig % B1, by itself, creates a new B1 or raises the existing % singleton*. % % H = B1 returns the handle to a new B1 or the handle to % the existing singleton*. % % B1('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in B1.M with the given input arguments. % % B1('Property','Value',...) creates a new B1 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before B1_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to B1_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDA TA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help B1 % Last Modified by GUIDE v2.5 21-Oct-2010 17:52:32 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @B1_OpeningFcn, ... 'gui_OutputFcn', @B1_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);

牛顿插值法的MATLAB综合程序

6.3.5 牛顿插值法的MATLAB 综合程序 求牛顿插值多项式、差商、插值及其误差估计的MATLAB 主程序 function [y,R,A,C,L]=newdscg(X,Y,x,M) n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k))); d=length(C);C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1;L(k,:)=poly2sym(C); 例6.3.6 给出节点数据00.27)00.4(=-f ,00.1)00.0(=f ,00.2)00.1(=f ,00.17)00.2(=f ,作三阶牛顿插值多项式,计算)345.2(-f ,并估计其误差. 解 首先将名为newdscg.m 的程序保存为M 文件,然后在MATLAB 工作窗口输入程序 >> syms M,X=[-4,0,1,2]; Y =[27,1,2,17]; x=-2.345; [y,R,A,C,P]=newdscg(X,Y,x,M) 运行后输出插值y )345.2(-≈f 及其误差限公式R ,三阶牛顿插值多项式P 及其系数向量C ,差商的矩阵A 如下 y = 22.3211 R = 65133/562949953421312*M (即R =2.3503*M ) A= 27.0000 0 0 0 1.0000 -6.5000 0 0 2.0000 1.0000 1.5000 0 17.0000 15.0000 7.0000 0.9167 C = 0.9167 4.2500 -4.1667 1.0000 P = 11/12*x^3+17/4*x^2-25/6*x+1

高斯光束经透射型体光栅后的光束传输特性分析

目录 1 技术指标 (1) 1.1 初始条件 (1) 1.2 技术要求 (1) 1.3 主要任务 (1) 2 基本理论 (1) 2.1 高斯光波的基本理论 (1) 2.2 耦合波理论 (2) 3 建立模型描述 (4) 4 仿真结果及分析 (5) 4.1 角度选择性的模拟 (5) 4.1.1 不同光栅厚度下的角度选择性 (6) 4.1.2 不同光栅线对下的角度选择性 (7) 4.2 波长选择性的模拟 (8) 4.2.1不同光栅厚度下的波长选择性 (8) 4.2.2不同光栅线对下的波长选择性 (9) 4.3 单色发散光束经透射型布拉格体光栅的特性 (10) 4.4 多色平面波经透射型布拉格体光栅的特性 (11) 5 调试过程及结论 (12) 6 心得体会 (13) 7 思考题 (13) 8 参考文献 (14)

高斯光束经透射型体光栅后的光束传输 特性分析 1 技术指标 1.1 初始条件 Matlab软件,计算机 1.2 技术要求 根据耦合波理论,推导出透射体光栅性能参量(角度和波长选择性)与光栅参数(光栅周期,光栅厚度等)之间的关系式;数值分析平面波、谱宽和发散角为高斯分布的光束入射条件下,衍射效率受波长和角度偏移量的影响。 1.3 主要任务 1 查阅相关资料,熟悉体光栅常用分析方法,建立耦合波分析模型; 2 利用matlab软件进行模型仿真,程序调试使其达到设计指标要求及分析仿真结果; 3 撰写设计说明书,进行答辩。 2 基本理论 2.1 高斯光波的基本理论 激光谐振腔发出的基膜场,其横截面的振幅分布遵守高斯函数,称之为高斯脉冲光波。如图1所示为高斯脉冲光波及其参数的图。

matlab仿真光束的传输特性

一、课程设计题目: 用matlab 仿真光束的传输特性。 二、任务与要求 用matlab 仿真光束通过光学元件的变换。 ① 设透镜材料为k9玻璃,对1064nm 波长的折射率为1、5062,镜片中心厚度为3mm,凸面曲率半径,设为100mm,初始光线距离透镜平面20mm 。用matlab 仿真近轴光线(至少10条)经过平凸透镜的焦距,与理论焦距值进行对比,得出误差大小。 ② 已知透镜的结构参数为101=r ,0.11=n ,51=d ,5163.121=='n n (K9玻 璃),502-=r ,0.12='n ,物点A 距第一面顶点的距离为100,由A 点计 算三条沿光轴夹角分别为10、20、30的光线的成像。试用Matlab 对以上三条光线光路与近轴光线光路进行仿真,并得出实际光线的球差大小。 ③ 设半径为1mm 的平面波经凸面曲率半径为25mm,中心厚度3mm 的平凸透镜。用matlab 仿真平面波在透镜几何焦平面上的聚焦光斑强度分布,计算光斑半径。并与理论光斑半径值进行对比,得出误差大小。(方法:采用波动理论,利用基尔霍夫—菲涅尔衍射积分公式。) 2、用MATLAB 仿真平行光束的衍射强度分布图样。(夫朗与费矩形孔衍射、夫朗与费圆孔衍射、夫朗与费单缝与多缝衍射。) 3、用MATLAB 仿真厄米—高斯光束在真空中的传输过程。(包括三维强度分布与平面的灰度图。)

4、(补充题)查找文献,掌握各类空心光束的表达式,采用费更斯-菲涅尔原理推导各类空心光束在真空中传输的光强表达式。用matlab对不同传输距离处的光强进行仿真。 三、理论推导部分 将坐标原点选在透镜中心处,θ1=arcsin(y1/r),由n1*sinθ1=n2*sinθ2可得出θ2=arcsin(n1/n2)*(y1/r),由几何关系可得到θ=θ2-θ1,则出射光线的斜率k=tan(θ2-θ1),当入射直线y=y1时,x1=d-(r-r ),并设出射直线为y=k*x+b;由直线经过(x1,y1)即可求出b (y 2^ )2^1 值,从而就可以求出射直线。由单透镜焦点计算公式1/f=-(n-1)*(1/r1-1/r2)可求得f=193、6858。

均差牛顿插值MATLAB,M文件

%均差牛顿插值 function [ f y f0 ] = newton1( X,Y,x0 ) if nargin<3 error('Requires at least three input arguments.'); end if length(X)==length(Y) n=length(X); else error('length must equal') end syms x s=Y(1); l=1.0; y=zeros(n); y(1:n,1)=Y'; for i=2:n for j=2:i y(i,j)=(y(i,j-1)-y(j-1,j-1))/(X(i)-X(j-1)); if i==j l=l*(x-X(i-1)); s=s+y(i,i)*l; end end end f=simple(s); f0=subs(f,x0); function [ f f0 y] = newton2( X,Y,x0 ) if nargin<3 error('Requires at least three input arguments.'); end if length(X)==length(Y) n=length(X); else error('length must equal') end syms x s=Y(1); l=1.0; y=zeros(n) y(1:n,1)=Y'; for i=2:n for j=2:i y(i,j)=(y(i,j-1)-y(i-1,j-1))/(X(i)-X(i-j+1)); if i==j l=l*(x-X(i-1)); s=s+y(i,i)*l; end end end f=simple(s); f0=subs(f,x0);

插值MATLAB程序-数值分析

插值MATLAB程序(可以输出多项式)—数值分析 1.拉格朗日多项式逼近 function [C,L,y]=lagran(X,Y) %拉格朗日多项式逼近 w=length(X); L=zeros(w,w); for k=1:w V=1; for j=1:w if k~=j V=conv(V,poly(X(j)))/(X(k)-X(j)); end end L(k,:)=V; end C=Y*L; y=poly2sym(C,'x'); 2.牛顿插值多项式 function [C,D,y]=newpoly(X,Y) %牛顿插值多项式 n=length(X); D=zeros(n,n); D(:,1)=Y'; for j=2:n for k=j:n D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1)); end end C=D(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))); m=length(C); C(m)=C(m)+D(k,k); end y=poly2sym(C,'x'); 3.切比雪夫逼近 function [C,X,Y]=cheby(fun,n,a,b) %切比雪夫逼近 if nargin==2 a=-1;b=1; end

d=pi/(2*n+2); C=zeros(1,n+1); for k=1:n+1 X(k)=cos((2*k-1)*d); end X=(b-a)*X/2+(a+b)/2; x=X; Y=eval(fun); for k=1:n+1 z=(2*k-1)*d; for j=1:n+1 C(j)=C(j)+Y(k)*cos((j-1)*z); end end C=2*C/(n+1); C(1)=C(1)/2;

MATLAB 高斯光束传播轨迹的模拟

B1:xx光束传播轨迹的模拟 设计任务: 作图表示xx光束的传播轨迹 (1)基模高斯光束在自由空间的传播轨迹; (2)基模高斯光束经单透镜变换前后的传播轨迹; (3)基模高斯光束经调焦望远镜变换前后的传播轨迹。 function vargout = B1(vargin) % B1 M-file for B1.fig %B1, by itself, creates a new B1 or raises the existing %singleton*.%%H = B1 returns the handle to a new B1 or the handle to %the existing singleton*.%%B1('CALLBACK',hObject,eventData,handles,...) calls the local %function named CALLBACK in B1.M with the given input arguments.%%B1('Property','Value',...) creates a new B1 or raises the %existing singleton*.Starting from the left, property value pairs are %applied to the GUI before B1_OpeningFunction gets called.An %unrecognized property name or invalid value makes property application GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help B1

MATLAB 牛顿插值法例题与程序

题目一:多项式插值 某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。 二、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式: )() )(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -??-+??+-++=αααα (1) 其中系数i α(i=0,1,2……n)为特定系数,可由插值样条i i n y x P =) ((i=0,1,2……n)确定。 根据均差的定义,把x 瞧成[a,b]上的一点,可得 f(x)= f(0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x ) …… f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n ) 综合以上式子,把后一式代入前一式,可得到: f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ]) (x 1n +ω= N n (x)+) (x n R 其中 N n (x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2)

matlab 牛顿插值法 三次样条插值法

(){} 21 ()(11),5,10,20: 1252 1()1,(0,1,2,,)()2,(0,1,2,,)() ()2 35,20:1100 (i i i i n n k k k Newton f x x n x f x x i i n f x n x y i n Newton N x S x n x k y f x =-≤≤=+=-+====-+ = 题目:插值多项式和三次样条插值多项式。 已知对作、计算函数在点处的值;、求插值数据点 的插值多项式和三次样条插值多项式;、对计算和相应的函数值),()() (1,2,,99)4:()max ()()max ()n k n k n k n k n k n k k k N x S x k E N y N x E S y S x ==-=- 和; 、计算,; 解释你所得到的结果。 算法组织: 本题在算法上需要解决的问题主要是:求出第二问中的Newton 插值多项式 )(x N n 和三次样条插值多项式()n S x 。如此,则第三、四问则迎刃而解。计算两种插值多项式的算法如下: 一、求Newton 插值多项式)(x N n ,算法组织如下: Newton 插值多项式的表达式如下: )())(()()(110010--???--+???+-+=n n n x x x x x x c x x c c x N 其中每一项的系数c i 的表达式如下: 1102110) ,,,(),,,(),,,(x x x x x f x x x f x x x f c i i i i i -???-???= ???=- 根据i c 以上公式,计算的步骤如下: ?? ??? ?? ?????+??????? ???????????----) ,,,,(1) ,,,(),,,,(),(,),,(2)(,),(),(11101111011010n n n n n n n n x x x x f n x x x f x x x f n x x f x x f x f x f x f 、计算、计算、计算、计算 二、求三次样条插值多项式)(x S n ,算法组织如下:

matlab(迭代法_牛顿插值)

实验报告容: 一:不动点迭代法解方程 二:牛顿插值法的MA TLAB实现 完成日期:2012年6月21日星期四 数学实验报告一 日期:2012-6-21

所以,确定初值为x0=1 二:不断迭代 算法: 第一步:将f(x0)赋值给x1 第二步:确定x1-x0的绝对值大小,若小于给定的误差值,则将x1当做方程的解,否则回到第一步 编写计算机程序: clear f=inline('0.5*sin(x)+0.4'); x0=1; x1=f(x0); k=1; while abs(x1-x0)>=1.0e-6 x0=x1; x1=f(x0); k=k+1; fprintf('k=%.0f,x0=%.9f,x1=%.9f\n',k,x0,x1) end 显示结果如下: k=2,x0=0.820735492,x1=0.765823700 k=3,x0=0.765823700,x1=0.746565483 k=4,x0=0.746565483,x1=0.739560873 k=5,x0=0.739560873,x1=0.736981783

k=6,x0=0.736981783,x1=0.736027993 k=7,x0=0.736027993,x1=0.735674699 k=8,x0=0.735674699,x1=0.735543758 k=9,x0=0.735543758,x1=0.735495216 k=10,x0=0.735495216,x1=0.735477220 k=11,x0=0.735477220,x1=0.735470548 k=12,x0=0.735470548,x1=0.735468074 k=13,x0=0.735468074,x1=0.735467157 >>。。。 以下是程序运行截图:

拉盖尔高斯光束 厄米高斯光束MATLAB仿真

激光原理by贾而穑 130212114 厄米高斯光束MATLAB仿真 其中主程序文件:plotHermiteGaussianBeams.m 子程序文件:HermitePoly.m 程序如下: plotHermiteGaussianBeams.m %-------------------------------------------------------------------------% % auther:Erse Jia % Student ID 130212114 %-------------------------------------------------------------------------% %% Hermite Gaussian Beams %% SET PARAMETERS % Physical parameters lambda = 500; % nm k = 2*pi/lambda; % The two parameters for the gaussian beam (and derived quantities) z0 = 1; A0 = 1; W0 = sqrt(lambda*z0/pi); W = @(z) W0*sqrt(1+(z/z0)^2); R = @(z) z*(1+(z/z0)^2); Zeta = @(z) atan(z/z0); % The coefficients for the Hermite-Gaussian (HG) beam of order (l,m) A = [ 1 0 0 0; 1 1 0 0; 0 0 0 0; 0 0 .2 0]; % Display Parameters res = 800; z = 1e-9; x = linspace(-2*W(z),2*W(z),res); y = linspace(-2*W(z),2*W(z),res); [X Y] = meshgrid(x,y); X = X(:); Y = Y(:); %% RUN THE SIMULATION % Preallocate Memory

高斯光束传播 matlab

%Gaussian_propagation.m %Simulation of diffraction of Gaussian Beam clear; %Gaussian Beam %N:sampling number N=input('Number of samples(enter from 100 to 500)='); L=10*10^-3; Ld=input('wavelength of light in [micrometers]='); Ld=Ld*10^-6; ko=(2*pi)/Ld; wo=input('Waist of Gaussian Beam in [mm]='); wo=wo*10^-3; z_ray=(ko*wo^2)/2*10^3; sprintf('Rayleigh range is %f [mm]',z_ray) z_ray=z_ray*10^-3; z=input('Propagation length (z) in [mm]'); z=z*10^-3; %dx:step size dx=L/N; for n=1:N+1 for m=1:N+1 %Space axis x(m)=(m-1)*dx-L/2; y(n)=(n-1)*dx-L/2; %Gaussian Beam in space domain Gau(n,m)=exp(-(x(m)^2+y(n)^2)/(wo^2)); %Frequency axis Kx(m)=(2*pi*(m-1))/(N*dx)-((2*pi*(N))/(N*dx))/2; Ky(n)=(2*pi*(n-1))/(N*dx)-((2*pi*(N))/(N*dx))/2; %Free space transfer function H(n,m)=exp(j/(2*ko)*z*(Kx(m)^2+Ky(n)^2)); end end %Gaussian Beam in Frequency domain FGau=fft2(Gau); FGau=fftshift(FGau); %Propagated Gaussian beam in Frequency domain FGau_pro=FGau.*H;

相关主题
文本预览
相关文档 最新文档