matlab实现简单物理实验模拟
- 格式:docx
- 大小:20.70 KB
- 文档页数:5
光学模拟计算实验报告班级:物理学122班姓名:学号:实验目的:利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫琅和费衍射的模拟。
实验仪器及软件:MATLAB;衍射积分;傅立叶变换;计算机模拟实验原理:大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MA TLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。
下面来介绍利用MATLAB进行光学模拟的两种方法。
(一)衍射积分方法:该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。
1.单缝衍射。
把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD编写程序如下,得到图1lam=500e-9;a=1e-3;D=1;ym=3*lam*D/a;ny=51;ys=linspace(-ym,ym,ny);np=51;yp=linspace(0,a,np);for i=1:nysinphi=ys(i)/D;alpha=2*pi*yp*sinphi/lam;图1 单缝衍射的光强分布 sumcos=sum(cos(alpha));sumsin=sum(sin(alpha));B(i,:)=(sumcos^2+sumsin^2)/np^2;endN=255;Br=(B/max(B))*N;subplot(1,2,1)image(ym,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys); 2. 杨氏双缝干涉两相干光源到接收屏上P 点距离r 1=(D 2+(y-a/2)2)1/2, r 2=(D 2+(y+a/2)2)1/2,相位差Φ=2π(r 2-r 1)/λ,光强I=4I 0cos 2(Φ/2) 编写程序如下,得到图2 clear lam=500e-9 a=2e-3;D=1;ym=5*lam*D/a;xs=ym;n=101;ys=linspace(-ym,ym,n); for i=1:nr1=sqrt((ys(i)-a/2).^2+D^2); r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam;B(i,:)=sum(4*cos(phi/2).^2); end N=255;Br=(B/4.0)*Nsubplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys) 3. 光栅衍射公式:I=I 0(sin α/α)2(sin(λβ)/sin β)2α=(πa/λ)sin Φ β=(πd/λ)sin Φ编写程序如下:得到图3clearlam=500e-9;N=2; a=2e-4;D=5;d=5*a; ym=2*lam*D/a;xs=ym; n=1001;ys=linspace(-ym,ym,n); for i=1:nsinphi=ys(i)/D;alpha=pi*a*sinphi/lam; beta=pi*d*sinphi/lam;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2; B1=B/max(B);end图2 杨氏双缝干涉的光强分布 图3 黑白光栅衍射光强分布NC=255;Br=(B/max(B))*NC; subplot(1,2,1) image(xs,ys,Br); colormap(gray(NC)); subplot(1,2,2) plot(B1,ys);(二)傅立叶变换方法:在傅立叶变换光学中我们知道夫琅和费衍射场的强度分布就等于屏函数的功率谱。
使用Matlab进行模拟物理与实验数据处理引言近年来,随着计算机技术的迅猛发展,越来越多的科学家和研究人员开始使用计算机模拟和实验数据处理的方法来解决各种物理问题。
其中,Matlab作为一种高效、灵活的科学计算工具,被广泛应用于物理领域。
本文将介绍如何使用Matlab进行模拟物理和实验数据处理。
一、Matlab概述Matlab是一种基于矩阵和向量运算的高级编程语言,专门用于科学计算和数据可视化。
它提供了丰富的内置函数和工具箱,可以方便地进行数值计算、符号计算和图形绘制等操作。
Matlab还支持面向对象编程和并行计算,使得处理大规模物理问题更加高效和便捷。
二、模拟物理1. 数值模拟Matlab提供了一系列的数值模拟工具,可以用来解决常微分方程、偏微分方程、边值问题等各种物理模型。
通过定义自定义函数和调用内置的求解器,可以轻松地实现各种数值求解算法。
例如,可以使用欧拉法、龙格-库塔法等经典算法对运动方程进行数值积分,得到粒子的轨迹。
此外,还可以利用有限元方法对结构力学、电磁场等问题进行数值求解。
2. 模型建立Matlab的强大矩阵和向量运算能力为物理模型的建立提供了很大的便利。
结合图形绘制工具箱,可以利用Matlab绘制出需要建模的物体的几何结构和其他参数。
然后,可以使用线性代数或者非线性优化等方法,通过数值迭代的方式求解模型的参数。
例如,在光学领域,可以利用矢量计算来模拟和优化光波的传播和调控。
三、实验数据处理1. 数据导入与预处理Matlab提供了灵活的数据导入和预处理工具,可以方便地处理各种类型的实验数据。
通过读取不同格式的文件,如文本、Excel、MAT等,可以将实验数据导入到Matlab工作空间中。
之后,可以使用Matlab的矩阵和向量运算功能对数据进行预处理,如去除异常值、平滑信号、插值数据等。
2. 数据分析与可视化Matlab内置了大量的数据分析函数和工具箱,可以对实验数据进行统计分析、频域分析、时频分析等。
在MATLAB中进行物理建模和仿真引言:MATLAB是一种强大的数学建模和仿真软件,可以广泛应用于各种学科领域,包括物理学。
通过在MATLAB中进行物理建模和仿真,研究人员可以更好地理解和探索各种物理现象、原理和实验,从而更好地设计和优化物理系统。
一、理论基础在进行物理建模和仿真之前,首先需要对相关的物理理论有一定的了解。
例如,在研究电磁波传播时,需要了解麦克斯韦方程组和电磁波的基本性质;在研究力学系统时,需要了解牛顿力学和拉格朗日力学等理论基础。
二、建立物理模型在MATLAB中建立物理模型是进行物理建模和仿真的重要一步。
物理模型可以是根据物理原理和实验数据建立的数学模型,也可以是经验模型。
在建立物理模型时,需要考虑系统的各个部分和它们之间的相互作用,以及外界因素的影响。
根据不同的物理现象和系统特点,可以选择合适的建模方法,如微分方程、差分方程、概率统计等。
三、数值方法在MATLAB中进行物理建模和仿真时,常常需要使用数值方法求解。
数值方法能够将复杂的数学模型转化为计算机可以处理的形式,从而得到系统的数值解。
常见的数值方法包括欧拉方法、龙格-库塔方法等。
在选择数值方法时,需要考虑精度和计算效率的平衡。
四、验证和优化在进行物理建模和仿真之后,需要对结果进行验证和优化。
验证是指将模型的结果与实验数据进行比较,以评估模型的准确性和可靠性。
优化是指通过调整模型的参数和改进算法,以提高模型的预测能力和计算效率。
通过验证和优化,可以不断改进模型,使其更好地符合实际情况。
五、应用实例MATLAB在物理建模和仿真方面有着广泛的应用。
例如,在光学领域,可以使用MATLAB进行光传输计算、光波导模拟等;在电路设计领域,可以使用MATLAB进行电路分析和优化;在力学系统中,可以使用MATLAB进行结构分析和振动仿真等。
这些应用实例表明,MATLAB为物理学家提供了一个强大的工具,可以更好地理解和解决各种物理问题。
总结:MATLAB作为一种数学建模和仿真软件,在物理建模和仿真方面具有重要作用。
如何在MATLAB中进行模拟实验在科学研究和工程设计中,模拟实验是一种常用的工具。
通过在计算机中运行虚拟的实验环境,模拟实验可以帮助研究人员更好地理解问题的本质、验证理论模型的有效性以及预测系统的行为。
MATLAB作为一种强大的数值计算和工程仿真软件,其具备了丰富的工具箱和函数库,能够方便地进行各种模拟实验。
本文将介绍一些常见的MATLAB模拟实验方法和技巧,希望能够帮助读者更好地应用MATLAB进行科研和工程实践。
首先,我们来介绍一下在MATLAB中进行物理仿真的方法。
物理仿真是一种基于物理模型的模拟实验方法,通过对系统的物理规律进行建模和求解,可以模拟出系统的运动轨迹、受力情况等。
在MATLAB中,可以利用一个强大的工具箱——Simulink来进行物理仿真实验。
Simulink是一种基于图形化界面的系统仿真工具,它可以将复杂的系统模型分解成多个子模块,并通过连接这些子模块的信号来构建整个系统模型。
Simulink提供了丰富的组件库,其中包含各种传感器、执行器、控制器等元件,可以方便地构建系统模型。
在构建好系统模型后,通过设置模型的参数和初始条件,并选择合适的仿真方法,就可以进行仿真实验了。
Simulink中的仿真结果可以以图形或数据的形式展示,为科研和工程分析提供了重要的依据。
除了物理仿真外,MATLAB还可以进行电路仿真实验。
在电子电路设计和分析中,MATLAB提供了一种强大的工具箱——电路设计工具箱,可以帮助研究人员模拟和分析各种电子电路。
电路设计工具箱提供了各种电子元件的模型,包括电阻、电容、电感、二极管、晶体管等,可以用来构建完整的电子电路模型。
在构建好电路模型后,可以通过设置元件的参数,并选择合适的交流或直流分析方法进行仿真实验。
仿真结果可以帮助研究人员验证电路设计的正确性,分析电路中各个元件的功耗、电压和电流等信息,以及优化电路的性能。
不仅如此,MATLAB还提供了丰富的数学建模和优化工具箱,可以在MATLAB中进行数学和最优化的模拟实验。
如何在MATLAB中进行模拟实验设计一、引言随着科技的飞速发展,模拟实验在各个领域的应用越来越广泛。
而MATLAB作为一种功能强大的数学软件,给实验设计带来了许多便利。
本文将介绍如何在MATLAB中进行模拟实验设计,帮助读者更好地利用这一工具进行科研研究。
二、实验设计的重要性在科学研究中,实验设计起着至关重要的作用。
一个良好的实验设计可以帮助研究人员准确地获得实验结果,进而推导出科学规律或发现新的知识。
而模拟实验作为一种辅助工具,可以帮助研究人员在实验前进行系统地预测和探索。
三、MATLAB的基本功能在开始进行模拟实验设计之前,我们需要了解一些MATLAB的基本功能。
MATLAB是一种面向数值计算和可视化的高级编程语言和环境。
它的功能非常强大,并且由于其简单易用的特点,也得到了广泛的应用。
在MATLAB中,我们可以进行数值计算、数据处理、绘图等操作,这些都为模拟实验提供了良好的基础。
四、构建模型在模拟实验中,首先我们需要构建一个模型。
模型是对实际问题或现象的抽象和简化,通过建立数学方程或算法来描述。
在MATLAB中,我们可以利用其强大的数值计算功能来构建模型。
以抛物线运动为例,我们可以利用MATLAB中的运动学方程来描述抛物线的运动轨迹。
通过引入时间变量t,位置变量x和y,以及速度变量v和加速度变量a,我们可以建立如下的模型:x = v*t;y = (1/2)*a*t^2;通过这个简单的模型,我们就可以预测在给定初速度和加速度的情况下,抛物线的运动轨迹。
五、参数设置在进行模拟实验设计时,我们需要设置一些参数。
参数可以看作是模型中的一些固定变量,通过改变参数的值,我们可以观察模型在不同条件下的行为。
在MATLAB中,我们可以通过创建变量来设置参数,并为其赋予不同的值。
例如,在抛物线模型中,我们可以设置初速度v和加速度a的值,然后观察在不同参数下抛物线的轨迹变化。
六、实验结果分析在模拟实验设计中,我们需要对实验结果进行分析和解释。
实验六:MATLAB在普通物理中的应用一、实验目的掌握用MATLAB解决普通物理中的难题。
二、实验仪器1、计算机2、MATLAB 软件环境三、实验内容1、一质点在xy平面内运动,运动方程x=x(t),y=y(t),求质点的轨迹方程并画出轨迹图。
(分别2组运动方程x=3t,y=2t^2+3;x=tcos(t),y=tsin(t)运算)2、设电荷均匀分布在从x=-L到x=L,通过原点的线段上,其密度为q(单位为C/m),试求出在z-y平面上的电位分布。
3、用毕奥-萨伐定律计算位于x-z平面上的电流环在x-y平面上产生的磁场分布。
4、振动的合成及拍频现象5、用MATLAB程序来计算演示光的单缝衍射现象四、实验过程1、编写如下yundong.m文件并设置好路径clear ,close allx=input('x=','s');y=input('y=','s');tf=input('tf=');Ns=100;t=linspace(0,tf,Ns);dt=tf/(Ns-1);xPlot=eval(x);yPlot=eval(y);px=diff(xPlot)/dt;py=diff(yPlot)/dt;plot(xPlot,yPlot);axis('equal');grid之后:>> yundongx=t.*cos(t)y=t.*sin(t)tf=20>> yundongx=3.*ty=2*(t.^2)+3tf=22、设电荷均匀分布在从x=-L到x=L,通过原点的线段上,其密度为q(单位为C/m),试求出在z-y平面上的电位分布。
编写如下qq.m的文件,设置好路径q=input('线电荷密度q=');L=input('线电荷半长度L=');N=input('分段数N=');Nr=input('分段数Nr=');E0=8.85e-12;C0=1/4/pi/E0;L0=linspace(-L,L,N+1);L1=L0(1:N);L2=L0(2:N+1);Lm=(L1+L2)/2;dL=2*L/N;R=linspace(0,10,Nr+1);for k=1:Nr+1Rk=sqrt(Lm.^2+R(k)^2);Vk=C0*dL*q./Rk;V(k)=sum(Vk);end[max(V),min(V)]plot(R,V),grid之后>> qq线电荷密度q=1线电荷半长度L=5分段数N=50分段数Nr=50ans =1.0e+010 *9.3199 0.8654>> hold on>> qq线电荷密度q=1线电荷半长度L=50分段数N=500分段数Nr=50ans =1.0e+011 *1.3461 0.4159>> grid3、用毕奥-萨伐定律计算位于x-z平面上的电流环在x-y平面上产生的磁场分布。
如何利用Matlab进行模拟和仿真实验Matlab是一种功能强大的数学计算和数据可视化软件。
它不仅可以进行数学模拟和仿真实验,还可以处理数据、绘制图表和实施算法。
在工程、物理学、生物学等领域,Matlab被广泛用于解决各种实际问题。
本文将介绍如何利用Matlab进行模拟和仿真实验,并探讨其在实验设计和结果分析中的应用。
一. Matlab的基本功能Matlab具有很多基本功能,如矩阵操作、数值计算、符号计算等。
这些功能使得Matlab成为进行模拟和仿真实验的理想选择。
在Matlab中,可以定义和操作矩阵,进行线性代数运算,如求解方程组、矩阵求逆等。
此外,Matlab还提供了许多内置函数,可以进行数值计算和符号计算,如求解微分方程、积分、数值优化等。
二. 模拟实验的设计在进行模拟实验之前,首先需要设计实验方案。
实验设计包括选择合适的模型和参数设置,确定实验变量和观测指标等。
在Matlab中,可以使用函数或脚本来定义模型和参数,通过修改参数值来观察实验结果的变化。
比如,可以使用Matlab的模型库来选择合适的模型,然后使用函数传入参数值进行求解。
此外,Matlab还提供了绘图功能,可以绘制实验结果的图表,以便更直观地分析数据。
三. 仿真实验的实施在设计好实验方案后,就可以开始进行仿真实验了。
在Matlab中,可以使用已定义的模型和参数进行仿真计算。
可以通过Matlab的编程功能来实现计算过程的自动化。
比如,可以使用循环语句来迭代计算,以观察参数变化对结果的影响。
此外,Matlab还提供了随机数生成和统计分析函数,可以用于生成随机变量和分析实验数据。
四. 实验结果的分析在完成仿真实验后,需要对实验结果进行分析。
Matlab提供了丰富的数据处理和分析工具,可以对实验数据进行统计分析、绘图和可视化展示。
可以使用Matlab的数据处理函数来计算均值、标准差、相关系数等统计指标。
此外,Matlab还可以通过绘图函数来绘制直方图、散点图、线图等图形,以便更好地理解和展示数据。
适合用Matlab解决的经典物理例题在物理学领域,经典物理例题一直是学习和研究的重要内容。
而Matlab作为一种强大的数学软件,非常适合解决各种物理问题。
本文将从力学、电磁学和热力学等多个方面,选取一些经典的物理例题,通过Matlab进行分析和求解,展示Matlab在解决物理问题时的强大用途。
1. 简谐振动问题简谐振动是物理学中一个重要的模型,涉及到弹簧振子、单摆等问题。
通过Matlab可以很方便地求解简谐振动的运动规律。
对于弹簧振子的运动方程,可以通过Matlab进行数值模拟,得到振动的周期、频率、位移等参数,从而更好地理解简谐振动的特性。
2. 电场问题在电磁学中,电场是一个重要的研究对象。
通过Matlab可以很容易地分析不同形状的电荷分布所产生的电场分布。
可以通过Matlab计算出点电荷、均匀带电细棒等情况下的电场分布,并绘制出电场线图,直观地展现电场的分布规律。
这样的分析对于理解电场的性质和相互作用具有重要意义。
3. 热传导问题热传导是热力学研究的一个重要方面,涉及到导热方程的求解和热量分布的分析。
通过Matlab可以对不同材料和形状的热传导问题进行数值模拟和求解。
可以通过Matlab计算出棒状材料中的温度分布随时间的演化,从而得到材料的热传导性能。
这样的分析对于工程实践中的热设计和材料选型具有重要指导意义。
4. 万有引力问题在力学中,万有引力是一个经典的例题,涉及到行星轨道、卫星运动等问题。
通过Matlab可以很方便地进行万有引力场下的物体运动模拟。
可以通过Matlab计算地球和月球的引力作用下的月球轨道,从而揭示天体运动的规律和特性。
这样的模拟对于探索宇宙中天体运动规律具有重要帮助。
总结回顾:通过以上例题的分析,我们不仅了解了Matlab在经典物理例题中的应用,也可以发现Matlab在解决物理问题时的便捷和高效。
当然,实际物理问题可能具有更多的复杂性和多样性,需要结合理论分析和实验数据进行综合研究。
自动实验一——典型环节的MATLAB仿真报告引言:典型环节的MATLAB仿真是一种常见的模拟实验方法,通过使用MATLAB软件进行建模和仿真,可以有效地研究和分析各种复杂的物理系统和控制系统。
本报告将介绍一个典型环节的MATLAB仿真实验,包括实验目的、实验原理、实验步骤、实验结果和讨论等内容。
一、实验目的本实验旨在通过MATLAB仿真实验,研究和分析一个典型环节的动态特性,深入了解其响应规律和控制方法,为实际系统的设计和优化提供理论支持。
二、实验原理典型环节是控制系统中的重要组成部分,一般包括惯性环节、惯性耦合和纯滞后等。
在本实验中,我们将重点研究一个惯性环节。
惯性环节是一种常见的动态系统,其特点是系统具有自身的动态惯性,对输入信号的响应具有一定的滞后效应,并且在输入信号发生变化时有一定的惯性。
三、实验步骤1.建立典型环节的数学模型。
根据实际情况,我们可以选择不同的数学模型描述典型环节的动态特性。
在本实验中,我们选择使用一阶惯性环节的传递函数模型进行仿真。
2.编写MATLAB程序进行仿真。
利用MATLAB软件的控制系统工具箱,我们可以方便地建立惯性环节的模型,并利用系统仿真和分析工具进行仿真实验和结果分析。
3.进行仿真实验。
选择合适的输入信号和参数设置,进行仿真实验,并记录仿真结果。
4.分析实验结果。
根据仿真结果,可以分析典型环节的动态响应特性,比较不同输入信号和控制方法对系统响应的影响。
四、实验结果和讨论通过以上步骤,我们成功地完成了典型环节的MATLAB仿真实验,并获得了仿真结果。
通过对仿真结果的分析,我们可以得到以下结论:1.惯性环节的响应规律。
惯性环节的响应具有一定的滞后效应,并且对输入信号的变化具有一定的惯性。
随着输入信号的变化速度增加,惯性环节的响应时间呈指数级减小。
2.稳态误差与控制增益的关系。
控制增益对稳态误差有重要影响,适当调整控制增益可以减小稳态误差。
3.不同输入信号的影响。
Matlab在物理实验数据处理中的应用指南引言物理实验是科学研究的重要组成部分,而数据处理则是物理实验中不可或缺的环节。
随着计算机科学的迅速发展,Matlab成为了一种广泛应用于数据分析和处理的工具。
本文将探讨Matlab在物理实验数据处理中的应用指南,介绍如何使用Matlab进行数据处理,展示其在物理实验中的重要作用。
不但要学会如何通过Matlab处理数据,更要了解其背后的原理,以提高数据分析的准确性和可靠性。
第一部分:准备数据在使用Matlab处理实验数据之前,首先需要准备好原始数据。
通常,实验数据以文本文件的形式存储,可以通过Excel等软件导出。
在导出数据之后,需要对数据进行预处理,如去除异常值、填补缺失数据等。
Matlab提供了一系列强大的函数,如importdata、readtable和xlsread,可以用于读取各种类型的数据文件,方便快捷地将数据载入到Matlab工作环境中。
第二部分:数据可视化数据可视化是数据处理的重要环节,能够直观地展示数据的分布和趋势。
Matlab提供了丰富的绘图函数,如plot、scatter和histogram,可以方便地绘制二维和多维数据图形。
通过选择合适的绘图方式和参数设置,可以用直线、曲线、散点图、柱状图等形式展示数据的规律。
此外,Matlab还支持绘制动态图像和三维图形,更加生动地展示实验结果。
第三部分:数据处理与分析Matlab具备强大的数值计算和数据处理能力,可以对物理实验数据进行各种精确的计算和分析。
例如,可以使用Matlab进行数据平滑、拟合、差分、积分等操作,进一步深入研究数据的特征和规律。
Matlab还提供了大量的统计分析函数,如均值、标准差、方差、相关系数等,可供用户快速计算和分析数据的统计特性。
此外,Matlab还支持矩阵运算和线性代数,可用于解析物理模型和求解数学方程。
第四部分:数据模型与拟合在物理实验中,常常需要建立数据模型和进行曲线拟合。
一.ball.mclearvx=input('please input the speed ration of Vx and Vi:');k=input('coefficient of rebound(<1):');if k>=1 return,endtm=(1+k)/(1-k);xm=vx*tm;figureplot([0,xm],[0,0],'LineWidth',3)grid onaxis equalaxis([0,xm,0,1])title('Trajectoey of ball','FontSize',16)xlabel('horizontal distance(m)','FontSize',16)ylabel('Vertical height(m)','FontSize',16)dt=0.001;tm=1;t=0:dt:tm;x=2*vx*t;y=1-t.^2;i=0;hold onwhile tm>0.01comet(x,y)plot(x,y,'LineWidth',2)i=i+1;tm=2*k.^i;t=0:0.001:tm;x=x(end)+2*vx*t;y=2*k^i*t-t.^2;end二.collision.mclearm=0:0.5:2;n=length(m);theta=0:5:90;th=theta*pi/180;[M,TH]=meshgrid(m,th);PHI=2*asin(sin(TH/2)./(1+M))*180/pi;figure(1)plot(theta,PHI(:,1),'o-',theta,PHI(:,2),'s-',theta,PHI(:,3),'d-',...theta,PHI(:,4),'p-',theta,PHI(:,5),'h-')xlabel('\it\theta\rm/\circ','FontSize',16)ylabel('\it\phi\rm/\circ','FontSize',16)title('Angle of ball and object','FontSize',16)grid onlegend([repmat('Ratio of mass\itM/m\rm=',n,1),num2str(m')],2)DE=M./(1+M).*(1-cos(TH));figure(2)plot(theta,DE(:,1),'o-',theta,DE(:,2),'d-',theta,DE(:,3),'s-',...theta,DE(:,4),'p-',theta,DE(:,5),'h-')xlabel('\it\theta\rm/\circ','FontSize',16)ylabel('\Delta\itE/mgl','FontSize',16)title('Mechanical Energy','FontSize',16)grid onlegend([repmat('Ration of mass\itM/m\rm=',n,1),num2str(m')],2) 三.niudunhuan.mclearrm=5;r=-rm:0.01:rm;[X,Y]=meshgrid(r);R=sqrt(X.^2+Y.^2);I=cos(pi*(R.^2+1/2)).^2;I(R>rm)=0;c=linspace(0,1,64)';figured=image(I*64);%ColorMap([c,c*0,c*0])%ColorMap([c,c,c*0])ColorMap([c,c,c])axis off equaltitle('Newton ring','FontSize',16)pauseh=0;while 1h=h+0.02;I=cos(pi*(R.^2+1/2+2*h)).^2;I(R>rm)=0;set(d,'CData',64*I)drawnowif get(gcf,'CurrentCharacter')==char(27) break,endend四.stick.mclearg=10;v0=12;theta=input('angle of incidence:');th=theta*pi/180;w=10*pi;l=1;m1=0.2;m2=0.3;r1=l*m2/(m1+m2);r2=l*m1/(m1+m2);t0=2*v0*sin(th)/g;n=200;t=linspace(0,t0,n);xc=v0*cos(th)*t;yc=v0*sin(th)*t-g*t.*t/2;x1=xc+r1*cos(w*t);y1=yc+r1*sin(w*t);x2=xc-r2*cos(w*t);y2=yc-r2*sin(w*t);figureh12=plot([x1(1);x2(1)],[y1(1);y2(1)],'-o','LineWidth',6);grid onaxis([-0.5,xc(end)+1,-1.5,max(yc)+1])axis equaltitle('Motion of lifgt stick','FontSize',16)xlabel('x(m)','FontSize',16)ylabel('y(m)','FontSize',16)hold onpausefor i=1:n-1set(h12,'XData',[x1(i);x2(i)],'YData',[y1(i);y2(i)]);plot([xc(i);xc(i+1)],[yc(i);yc(i+1)],'LineWidth',2)plot([x1(i);x1(i+1)],[y1(i);y1(i+1)],'k')plot([x2(i);x2(i+1)],[y2(i);y2(i+1)],'r')if floor((i-1)/20)==(i-1)/20plot([x1(i);x2(i)],[y1(i);y2(i)],'LineWidth',2)plot(x1(i),y1(i),'ko')plot(x2(i),y2(i),'ro')enddrawnowend五.tanhuang.mcleara=0.2;xm=1+2*a;xx=linspace(0,1+a,1000);n=20;s0=0.02;yy=s0*sin(xx/(1+a)*n*2*pi);figuresubplot(2,1,1)plot([1;1],[-2;-4]*s0)grid onaxis equal offtitle('motion of spring oscillator','FontSize',16)hold onplot([0;0;xm],[1;-1;-1]*2*s0,'LineWidth',3)ball=plot(1+a,yy(end),'g.','MarkerSize',50);spring=plot(xx,yy,'r','LineWidth',2);pauset=0;dt=0.005;while 1if get(gcf,'CurrentCharacter')==char(27) break;endx=a*cos(2*pi*t);set(ball,'XData',1+x)xx=linspace(0,1+x,1000);yy=s0*sin(xx./(1+x)*n*2*pi);set(spring,'XData',xx,'YData',yy)drawnowt=t+dt;endt=0:dt:t;x=a*cos(2*pi*t);subplot(2,1,2)plot(t,x,'LineWidth',2)grid ontitle('Displacement of spring oscillator','FontSize',16)xlabel('Time(S)','FontSize',16)ylabel('Amplitude(m)','FontSize',16)六.zhuangdongguan.mcleard=0:0.01:1;j=1/12+d.^2;figureplot(d,j,'LineWidth',2)grid ontitle('Moment of inertia for stick','FontSize',16)xlabel('Distanc(m)','FontSize',16)ylabel('Moment of inertia(Kgm^2)','FontSize',16)hold onstem([0,0.5],[1/12,1/3],'--')text(0,1/12,'J_C=ML^2/12','FontSize',16)text(0.5,1/3,'J_L=ML^2/3','FontSize',16)七.波的叠加x=-10:0.01:10;t=0:0.04:18;[X,T]=meshgrid(x+7,t);[FX,T]=meshgrid(-x+7,t);u=10*exp(-(X-T).^2);v=5*exp(-(FX-T).^2/4);y=u+v;M=moviein(length(t));for j=1:length(t)plot(x,y(j,:));grid on;title('Movie');axis([-10 10 0 15]);M(:,j)=getframe;end;movie(M,2)八.双缝干涉clear allym=1.25;y=linspace(-ym,ym,101);d=2;z=1000;lambda=5e-4;L1=sqrt((y-1).^2+z^2);L2=sqrt((y+1).^2+z^2);phi=2*pi*(L2-L1)/lambda;I=4*(cos(phi/2)).^2;subplot(2,1,1)plot(y,I)axis([-1.25 1.25 0 4])subplot(2,1,2)B=I*255/5;image(B);colormap(gray(225));九.阻尼衰减function zuni(deta,a)t=0:0.01*pi:4*pi;A=2;x=A*exp(-deta*t).*cos(2*pi*t+a);plot(t,x)title('Damped vibration')xlabel('Time (s)')ylabel('Amplitude (m)')grid onSo you BseekApClDwBfAuBsAbCiAcDcCdiss DexplAlongCcDpBcCdiscouragedAwhereDaIt is CtBfCshowing upBaAsCcDdefendAser DcalledCsDoAhAplCsBboDfAwhenCwhichBdAeThe BwhatCoAwhyDwBacAexpDbutCchAcon BuDwAprCoBrewDatBoCapAavDvaBtoWe CbeDcAtBoBtoCacDdBiniCuDs ArCrBrDtCsDbBgAsCtAwhenHave BtDsoAfBdisCcrCsoDsDgoingBpAlaCtBnothing butAsCchDaBaCbAsDbCi。