Matlab在物理上的应用举例

合集下载

MATLAB在大学物理课程及实验教学中的应用(1)

MATLAB在大学物理课程及实验教学中的应用(1)

MATLAB在大学物理中的应用形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。

1984年由Little、Moler、Steve Bangert 合作成立了的MathWorks公司正式把MATLAB推向市场。

到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。

布朗运动表述的是悬浮在流体中的微粒受到流体分子与粒子的碰撞而发生的不停息的随机运动,其运动的剧烈程度受温度影响.这一运动比较抽象,我们可以用MATLAB 仿真,将其可视化.模拟效果如图 1 所示.图1 布朗运动的模拟效果图部分程序如下:axes(handles.axes1);global k;n = 50;x = rand(n,1)-0.5;y = rand(n,1)-0.5;h = plot(x,y,'.');axis([-1 1 -1 1]);axis square;grid off;set(h,'EraseMode','Xor','MarkerSize',24);if k >= 0;for i = linspace(1,10,10000)drawnowx = x + k /10000.* randn(n,1);y = y + k /10000.* randn(n,1);set(h,'xdata',x,'ydata',y);endelseinput('Error');end力学中的简谐振动和阻尼振动也可以用MATLAB 将其化为可视图形.如图 2 所示:2. 2 光学现象如干涉和衍射是光学中的重要物理现象,我们通过MATLAB 来实现衍射现象的可视化.单缝衍射程序:·40·李仲,董松,炊万年,沈武鹏:MATLAB 在大学物理课程及实验教学中的应用图2简谐振动规律和阻尼振动规律模拟效果图图3单缝衍射效果图functionpushbutton1_Callback(hObject,eventdata,handles)a = -2* pi:0.0001* pi:2* pi;P = (1 -sinc(a)).^2;plot(a,P)lgray = zeros(256,3);for i = 0:255lgray(i + 1,:)= (255 -i)/255;endimagesc(P)colormap(lgray)可视化效果如图 3 所示.还可根据单缝宽度来获得不同的衍射图像.2. 3 电磁学现象等量异种电荷电场线的[x ,y ]= meshgrid ( - 2: 0. 1: 2,- 2: 0. 1: 2) ; % 以 0. 1 为步长建立平面数据网格 z = 1. / sqrt ( ( x - 1) . ^2 + y. ^2 + 0. 01)- 1. / sqrt ( ( x + 1) . ^2 + y. ^2 + 0. 01) ; % 写电势表达式 [px ,py ]= gradient ( z ) ; % 求电势在 x ,y 方向的梯度即电场强度 contour ( x ,y ,z ,[- 12,- 8,- 5,- 3,- 1,- 0. 5,- 0. 1,0. 1,0. 5,1,3,5,8,12]) % 画等势线·41·青海民族大学学报(教育科学版)hold on % 作图控制quiver(x,y,px,py,'k')% 画出各点上电场的大小和方向等量异种电荷电势线描绘:[x,y]= meshgrid(-5:0. 2:5,-4:0. 2:4);% 建立数据网格z = 1. / sqrt((x -2). ^2 + y. ^2 + 0. 01)-1. / sqrt((x + 2). ^2 + y. ^2 + 0. 01);% 电势的表达式mesh(x,y,z)% 三维曲面绘图图4 等量异种电荷电场线及电势线描绘3 物理实验数据处理在物理实验中,通常对数据采用的是手工处理方法,常见的有列表法,作图法等,这些方法往往速度慢,效率低,而且过于繁琐.如最小二乘法是采用数理统计的方法来处理实验数据的,相比于图解法,用该方法处理实验数据更科学、更可信.但由于该方法复杂,计算量大,学生们很难顺利完成,而运用MATLAB 可以精确实现.它克服了最小二乘法计算量大的缺点,又简便易懂,很容易为学生所掌握,同时能拟合出较准确的曲线,轻松实现数据可视化.如在电阻的伏安特性曲线的绘制中,已知测得的电流、电压值分别为0. 662,0. 712,0. 782,0. 841,0. 931,0. 988A0. 1720,0. 1846,0. 2024,0. 2182,0. 2364,0. 2560V;可以用MATLAB 所提供的数据拟合多项式函数polyfit 和评估多项式函数polyval 来进行曲线拟合,并且可以计算误差平方和,方便的得到伏安特性曲线、电阻值和计算误差. 程序如下:x = [0. 1720,0. 1846,0. 2024,0. 2182,0. 2364,0. 2560];y = [0. 662,0. 712,0. 782,0. 841,0. 931,0. 988];·42·李仲,董松,炊万年,沈武鹏:MATLAB 在大学物理课程及实验教学中的应用p1 = polyfit(x,y,1);% 一次多项式拟合p2 = polyfit(x,y,9);% 九次多项式拟合q1 = polyval(p1,x);q2 = polyval(p2,x);s1 = sum((y -q1). ^2);% 一次多项式误差平方和s2 = sum((y -q2). ^2);% 九次多项式误差平方和plot(x,y,'* ')hold onplot(x,q1,'r')hold onplot(x,q2,'b:o')grid onp1,q1,s1,p2,q2,s2MATLAB 绘制的伏安特性曲线如图5 所示.拟合次数越高,曲线越精确,可以看出,一次拟合结果为:R = 3.9653 ±(2.5345e -004)Ω4 结语应用MATLAB 设计程序对物理现象规律进行模拟仿真,实现了物理现象、规律描述的可视化.通过物理实验数据处理程序的设计,可推动大学物理实验教学现代化的改革.这项实践活动不仅有助于增强学生对物理课程学习及MATLAB 软件应用开发的兴趣,还可实际应用于大学物理课程及实验教学的活动中.学以致用,是提高大学课程教学效果的有效途径和手段.参考文献:[1]苏金明,张莲花,刘波.MATLAB 工具箱应用[M].北京:电子工业出版社,2002.[2]彭芳麟.数学物理方程的Matlab 解法与可视化[M].北京:清华大学出版社,2004.[3]熊万杰.MATLAB 用于物理教学[J].物理通报,2004,(2)16 -19.·43·感谢您试用AnyBizSoft PDF to Word。

MATLAB在物理教学中的应用

MATLAB在物理教学中的应用
收稿 日期 : 2 0 1 3 - 0 1 - 0 2
分别画出 t = 1 S , t =1 . 2 5 s , t = 1 . 5 s 时刻的波形. 分析 : 将 题 中波 动 方 程表 达 式 与 平 面简 谐 波 标
作者 简介 : 田
澍( 1 9 8 5~) , 女, 山西兴县人 , 助教 , 研 究方向为发光材料
对 于 很 多学 生来 说 物理 是 一 门较 难 的学 科 , 一 个 主要 的原 因是物 理 中包 含 大 量 复 杂 的计 算 . 枯 燥 的理论 计 算 、 繁琐 的 数 据 处 理很 难 激 发学 生 的 学 习 兴趣 , 同时过 度依 赖 书 本 会 导 致 想 象 力 不太 好 的 学
田 澍 , 白 心 爱
( 吕梁学院 物理系 , 山西 离石 0 3 3 0 0 0 )

要 :M A T L A B具有 强大的计算和绘 图功 能, 语言 简洁容 易掌握. 通过 对麦克 斯 韦速 率分布 函数 、 不 同时刻
平面 简谐波 的波动方程和 电偶极子 电 势函数 的作 图和 分析 , 表 明 MA T L A B可以极 大地 简化物 理计 算和绘 图工作
第 3卷 第 2期
V o 1 . 3 No . 2
吕梁 学 院学 报
J o u r n a l o f L t i l i a n g U n i v e r s i t y
2 0 1 3年 4月
Apr . 2 01 3

物理 学研 究 ・
MA T L A B在物理教学 中的应用
y =0 . 0 6 c o s ( 1 0  ̄ r t 一 8  ̄ r x )
数 k= 1 . 3 8 × 1 0 。 J / K . 麦克斯韦速率分布函数是 比 较复杂的 , 从式 中不能够直接观察 出其与温度 的关 系. 所 以笔 者用 MA T L A B进行 了 编程 作 图 , 取T 1=

适合用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在物理学中的一些应用。

首先,我们来介绍Matlab在动力学中的应用。

动力学的最基本的公式为F=m*a,其中m是物体的质量,a是物体的加速度。

如何验证上述公式的正确性呢?我们设计了一些实验,得到了在质量一定的情况下a与F的一些实验数据。

而根据实验数据来确定a与F的关系,可以用Matlab中的拟合曲线来完成。

实例如下:我们测得当m=0.45kg时,a与F的对应关系如下表所示:我们在Matlab中输入以下指令:F=[0.3726 0.7453 1.1157 1.4994 1.8566 2.2271];a=[0.0845 0.169 0.253 0.34 0.421 0.505];p=polyfit(F,a,1);i=0:0.1:2.5;q=polyval(p,i);plot(F,a,'r.',i,q,'b-')axis([0 2.5 0 0.6])xlabel('F 单位:N');ylabel('a 单位:m/s^2');我们可以得到如下视图:上图中蓝色的直线是F与a线性拟合曲线,我们看到实验数据点(F,a)几乎全分布在拟合曲线上,由此我们可以大致得到结论,F与a呈线性关系。

延长拟合曲线可发现其大致过原点,由此我们可以推断F与a成正比关系,直线的斜率即为物体质量的倒数。

再次,我们来看看Matlab在绘制简谐运动图像上的应用。

MATLAB在大学物理课程教学中的应用-以多普勒效应为例

MATLAB在大学物理课程教学中的应用-以多普勒效应为例

MATLAB在大学物理课程教学中的应用-以多普勒效应为例摘要:运用MATLAB仿真大学物理实验,能够帮助学生更好的对物理概念和规律进行理解和掌握,同时有效提升学生运用科学计算的能力,极大的提高物理教学的效果。

本文以多普勒效应相关内容为例,进行MATLAB仿真模拟分析。

关键词:多普勒效应 MATLAB 仿真分析在计算机仿真日益盛行的今天,作为一种重要的科学工具,计算机已经广泛渗透到人们生活的方方面面。

随着计算机仿真技术的发展,利用仿真虚拟技术展示客观物理现象,在各行各业均得到了广泛应用,逐渐成为社会发展进步不可或缺的手段。

在高校物理教学领域里,信息技术与教学相结合所带来的教育信息化已经成为当前高校物理教育改革的热门研究课题和教育发展的必然趋势。

一方面,利用计算机仿真技术优势,将枯燥难懂的物理问题变成一幅幅生动的画面,增强了教学内容的直观性,生动性,扩展了教学内容,开拓了学生视野,促进了学生对知识的理解和掌握。

另一方面,利用MATLAB仿真大学物理实验可以大大激发学生对物理知识的好奇心和求知欲,强化了学生继续探索的动机,激发了学生的创新意识,同时也极大地提高大学物理课程教学效果。

另外,用 MATLAB 制作的软件有极其丰富的表现内涵和巨大的表现能力,能够具体形象地再现各种实验概念,有效地揭示事物的本质和内在联系,将它应用于课堂教学,极大地扩展教学空间,化繁为简,变难为易,使学生对教学内容更容易理解和掌握。

本文就以物理课程中的多普勒效应为例进行仿真模拟分析,研究接收者接收到的频率变化规律。

我们知道,当一辆汽车在我们的身旁疾驰而过的时候,车上喇叭的音调呈现出从高到低的突然变化过程。

同样的,当我们在铁路旁听列车的汽笛声也能够发现,列车迅速迎面而来时音调较静止时高,而列车迅速离去时则音调较静止时低。

这种由于波源和接收者相对运动而出现接收者接收频率变化的现象,称之为多普勒效应。

多普勒效应最早由奥地利物理学家多普勒在1842年首先发现。

Matlab技术在物理建模和数值计算中的应用

Matlab技术在物理建模和数值计算中的应用

Matlab技术在物理建模和数值计算中的应用近年来,Matlab成为了物理学研究和数值计算的重要工具。

其强大的数据处理和可视化能力以及灵活的编程语言,为物理建模和数值计算提供了极大的便利。

本文将探讨Matlab技术在物理建模和数值计算中的应用,并展示其在不同领域中的实际案例。

一、物理建模物理建模是物理学研究的关键步骤,它通过建立数学模型来描述和解释自然现象。

Matlab作为一种高效的数学计算工具,可以帮助研究人员快速地进行物理建模,并对模型进行分析和优化。

例如,在光学领域,研究人员经常使用Matlab来建立光传输模型。

他们可以基于光的传输方程和介质的光学性质,编写Matlab程序来计算和可视化光在不同介质中的传播路径和强度分布。

这种建模和仿真的方法可以帮助研究人员理解光的传输机制,并为光学器件设计提供指导。

在力学领域,物理建模可以用于模拟和分析复杂的物体运动。

例如,研究人员可以使用Matlab的刚体运动模型来研究机器人的动力学特性。

他们可以通过在Matlab中定义机器人的几何结构和关节运动,以及描述力和力矩的方程,来模拟机器人在不同任务下的运动轨迹和力学响应。

这种建模方法可以为机器人控制算法的开发和优化提供测试平台。

二、数值计算数值计算是物理学研究中的重要工具,它通过数值方法对物理问题进行近似求解。

Matlab提供了丰富的数值计算库和函数,使得研究人员能够高效地进行数值计算和分析。

在量子力学领域,研究人员常常使用Matlab进行量子系统的数值模拟和求解。

他们可以编写Matlab程序来求解薛定谔方程,从而获得量子系统的波函数和能谱。

这种数值求解的方法在研究纳米尺度物理系统以及量子信息领域具有重要的应用价值。

在流体力学领域,数值计算在流体流动的模拟和分析中起到关键作用。

研究人员可以使用Matlab的流体力学工具箱来建立流体模型,并通过数值方法求解雷诺方程等流体动力学方程。

这种基于Matlab的数值模拟方法可以帮助研究人员研究流体流动的行为、优化流体系统的设计,并解决与流体力学相关的实际问题。

matlab物理案例分析

matlab物理案例分析

Matlab及其应用
24
线型和标记
Plot命令中,在每一对数组数据后面,给plot一个 附加参量,就可以指定所要的颜色和线型。 >>plot(x,y,’rd’,x,z,’k--’,x,y,’b-.’,x,z,’co’) b蓝色,c青色,g绿色,k黑色,m紫红色,r红色,w白 色,y黄色 加格线和标注,grid on命令在当前图形的单位标 记处加格线。grid off命令取消格线。 用text命令可以在图形的任意指定位置增加标记和 其他文本信息,格式是text(x,y,’string’).
Matlab及其应用
2
Matlab的学习方法
必须做大量的练习,熟悉其中的函数 联系和自己的课题相关,深刻的体会 多看帮助文件,又一本好的参考书 记住:Matlab可以做很多事情
Matlab及其应用
3
1.1 Matlab的出现
70年代中期,Cleve Moler和他的同事开发了 LINPACK和EISPACK的Fortran子程序库 70年代末期,Cleve Moler 在新墨西哥大学给学 生开线性代数,为学生编写了接口程序,这程序取 名为MATLAB,即MATrix LABoratory 1983年春天,工程师John Little与Moler、 Steve Bangert一起开发了第二代专业版MATLAB 1984年,MathWorks公司成立,MATLAB正是推 向市场。
22
Matlab及其应用
五、数据的可视化
二维图形
在二维曲线的绘制命令中,最重要、最基本的命令 时plot,其他许多特殊绘图命令都以它为基础形成。 1 plot(x,’s’) x为实向量时,以该向量元素的下标为横坐标、元素值 为纵坐标画出一条连续曲线。X为实矩阵时,则按列绘 制每列元素值相对其下标的曲线,图中曲线数等于X阵 列数。s用来指定线型。(正方形)

MATLAB在高中物理学习中的应用

MATLAB在高中物理学习中的应用

教育研究课程教育研究110学法教法研究1.MATLAB 在力学分析中的应用如图1,质量为m 的小球,从静止开始沿半径为R 的1/4圆弧光滑无摩擦轨道MN 滑下,重力的瞬时功率如何变化?图1 小球下降过程示意图1.1 建模小球下降过程中的瞬时功率:(θ为F 和v 的夹角),通过受力分析,最后可解得重力瞬时功率的表达式为:(1)通过式(1),学生的一般分析是:重力在圆弧轨道上的分离逐渐减小,但小球下滑的速度会逐渐加大,但两者乘积的结果如何难以判断。

通过复杂数学计算可以得出P 的极值,进而可推断出瞬时功率先增大后减小。

但功率随角度θ具体变化的情况学生根据已有知识却无法很快做出判断。

1.2 程序及结果运行结果如图2所示,从图中很容易看出随着角度变化,瞬时功率先增加后减小,在35度左右发生转折。

图2 功率随角度变化曲线2.MATLAB 在电学分析中的应用如图3所示,倾角为30度的直角三角形底边长2l ,且处于水平位置,斜面为光滑绝缘导轨,现在底边中点O 处固定一正电荷Q,让一质量为m 的带负电的点电荷q 从斜面顶端A 处释放沿斜面滑下(不脱离斜面)。

现测得它滑到B 点在斜边上的垂足D 处的速度为v ,问质点的运动过程如何?图3 电荷受力分析图2.1 建模我们可以分析得:点电荷q 在斜面上任一点处受力情况,β,则两电荷间的距离r 可用:(2))其中,β在20度到150度之间。

,所以加速度的变化主要随的变化而变化。

2.2程序及结果为了绘图方便,这里设,β在20度到150度之间变化,A 对角度变化的曲线如图4所示,能很直观的看出,加速度先增加再减小。

图4 质点加速度曲线3.MATLAB 在电学实验中的应用MATLAB/Simulink 仿真实验模拟真实实验环境,让学生在虚拟的实验环境中进行实验,能便捷地熟悉物理实验并学习物理知识。

下面通过MATLAB/Simulink 建模仿真对伏安法测电阻实验进行分析。

3.1 建模根据欧姆定律,在同一电路中,通过某一导体R 的电流I U 成正比,即:4)(4)进行变形,可以导出测量电阻的公式为:5)建模用MATLAB/Simulink 中的Sim-powerSystems 的电力系统模型库,选取相应的电阻、直流电源、电压表、电流表及示波器等基本功能模块,模块按照图5建立仿真模型,设置电压值为24V ,电阻为48欧姆,然后进行仿真。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 单列波%%单列波t=0:0.001:10;A=input('振幅A=');w=input('频率w=');a=input('a=');y=A.*sin(w.*t+a);plot(t,y);pause(1),sound(y);ylabel('y'),xlabel('t')2. %%光的单缝衍射现象Lambda=500e-9; %a=input('a='); % 可取0.2e-3,1e-3,2e-3三种情况z=1 %ymax=3*Lambda*z/a; %Ny=51; %ys=linspace(-ymax,ymax,Ny); %NPoints=51; %yPoint=linspace(-a/2,a/2,NPoints); %for j=1:Ny %L=sqrt((ys(j)-yPoint).^2+z^2); %Phi=2*pi.*(L-z)./Lambda; %SumCos=sum(cos(Phi)); %SumSin=sum(sin(Phi)); %B(j)=(SumCos^2+SumSin^2)/NPoints^2; %endclf,plot(ys,B,'*',ys,B);grid; %3. %%用毕奥-沙伐尔定律计算电流环产生的磁场mu0=4*pi*1e-7;I0=5.0;Rh=1;C0=mu0/(4*pi)*I0;NGx=21;NGy=21;x=linspace(-Rh,Rh,NGx);y=linspace(-3,3,20);y=x;Nh=20;theta0=linspace(0,2*pi,Nh+1);theta1=theta0(1:Nh);y1=Rh*cos(theta1);z1=Rh*sin(theta1);theta2=theta0(2:Nh+1);y2=Rh*cos(theta2);z2=Rh*sin(theta2);xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2;for i=1:NGyfor j=1:NGxrx=x(j)-xc;ry=y(i)-yc;rz=0-zc;r3=sqrt(rx.^2+ry.^2+rz.^2).^3;dlXr_x=dly.*rz-dlz.*ry;dlXr_y=dly.*rx-dlx.*rz;Bx(i,j)=sum(C0*dlXr_x./r3);By(i,j)=sum(C0*dlXr_y./r3); endendclf;quiver(x,y,Bx,By);4. %%多普勒效应x0=500;v=50;y0=20;c=330;w=1000;t=0:0.001:30;r=sqrt((x0-v*t).^2+y0.^2);t1=t-r/c;u=sin(w*t)+sin(1.1*w*t);u1=sin(w*t1)+sin(1.1*w*t1); sound(u);pause(5);sound(u1);5.亥姆霍兹线圈clear allmu0=4*pi*1e-7;I0=5.0;Rh=1;C0=mu0/(4*pi)*I0;NGx=21;NGy=21;x=linspace(-Rh,Rh,NGx);y=linspace(-Rh,Rh,NGy);Nh=20;theta0=linspace(0,2*pi,Nh+1); theta1=theta0(1:Nh);y1=Rh*cos(theta1);z1=Rh*sin(theta1);theta2=theta0(2:Nh+1);y2=Rh*cos(theta2);z2=Rh*sin(theta2);xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2;for i=1:NGyfor j=1:NGxrx=x(j)-xc;ry=y(i)-yc;rz=0-zc;r3=sqrt(rx.^2+ry.^2+rz.^2).^3;dlXr_x=dly.*rz-dlz.*ry;dlXr_y=dly.*rx-dlx.*rz;Bx(i,j)=sum(C0*dlXr_x./r3);By(i,j)=sum(C0*dlXr_y./r3);endendBax=Bx(:,11:21)+Bx(:,1:11);Bay=By(:,11:21)+By(:,1:11);subplot(1,2,1)mesh(x(11:21),y,Bax);xlabel('x');ylabel('y'); subplot(1,2,2),plot(y,Bax),grid,xlabel('y');ylabel('Bx'); 6.库仑引力clear all;N=input('电荷数目N:');for ic=1:N %fprintf('-----\n 对电荷#%g\n',ic);rc=input('电荷位置[x y](米):');x(ic)=rc(1); %y(ic)=rc(2); %q(ic)=input('输入电荷量(库仑)'); endE0=8.85e-12; %C0=1/(4*pi*E0); %for ic=1:NFx=0.0; Fy=0:0; %for jc=1:N %if(ic~=jc) %xij=x(ic)-x(jc); yij=y(ic)-y(jc);Rij=sqrt(xij^2+yij^2); %Fx=Fx+C0*q(ic)*xij/Rij^3;Fy=Fy+C0*q(ic)*yij/Rij^3;endendfprintf('其它电荷作用在电荷#%g上的合力为:\n',ic); %fprintf('x-分量:%gN\n',Fx);fprintf('y-分量:%gN\n',Fy)end7.李萨如图形% lisaru.msyms t a1 a2 w1 w2x=cos(w1.*t+a1);y=sin(w2.*t+a2);a1=input('a1=');a2=input('a2=');w1=input('w1=');w2=input('w2=');tf=10;Ns=1000;t=linspace(0,tf,Ns);dt=tf/(Ns-1); %分Ns个点,求出时间增量dtxplot=eval(x);yplot=eval(y); %计算Ns个点的位置x(t),y(t)figure(gcf);subplot(1,2,1),for i=1:750plot(yplot(1:i),xplot(1:i)); %画点的轨迹图axis('equal'); grid ; %使两轴比例相同pause(0.01)end8.耦合振子m1=2;m2=2;K1=16;K2=4; % x0=[1;0];xd0=[6;6];tf=10; %M=[m1,0;0,m2];K=[K1+K2,-K2;-K2,K1+K2] ; %u(:,s)�[u,L]=eig(K,M) ; %t=linspace(0,tf,101);x=zeros(2,101); % for s=1:2 %alfa=sqrt(u(:,s)'*M*u(:,s)) ; %u(:,s)= u(:,s)/alfa; %w(j)=sqrt(L(j,j)); % xt=u(:,j)*(u(:,j)'*M*x0*cos(w(j)*t)+u(:,j)'*M*xd0/w(j)*sin(w(j)*t));x=x+xt; %endfor r=1:2 %x1,x1?? subplot(2,1,r)plot(t.x(r,:)),grid;xlabel('xxx');ylabel(['yyy',num2str(r)]);end9.拍频%%t=0:0.001:10;a1=input('??1=');w1=input('??1=');a2=input('??2=');w2=input('??2=');y1=a1*sin(w1*t);y2=a2*sin(w2*t);y=y1+y2;subplot(3,1,1),plot(t,y1),ylabel('y1')subplot(3,1,2),plot(t,y2),ylabel('y2')subplot(3,1,3),plot(t,y),ylabel('y'),xlabel('t')pause,sound(y1);pause(5),sound(y2);pause(5),sound(y),pausesubplot(1,1,1)10。

物块下滑m1=input('m1=');m2=input('m2=');theta=input('theta(度)=');theta=theta*pi/180; g=9.81;A=[m1*cos(theta),-m1,-sin(theta),0;...m1*sin(theta),0,cos(theta),0;...0,m2, -sin(theta),0;...0,0,-cos(theta),1];B=[0,m1*g,0,m2*g]'; X=A\B;a1=X(1), a2=X(2), N1=X(3),N2=X(4)11。

循环%%xunhuanR=8.31;gama=1.4; %(注:由于在MATLAB中无拉丁文,所以用gama代替?)nMoles=0.5;P(1)=1e5;V(1)=0.012;WTotal=0;QTotal=0;iPoint=1;NCurve=100;PPlot=P(1);VPlot=V(1);%变量和图形初始化,输入气体的摩尔数nMoles,初始压力P(1),初始容积V(1),%气体常数R=8.314;给定起始总功WTotal=0;点序号iPoint=1;画等温线用%的点数NCurve=100;P-V图第一点坐标PPlot=P(1);VPlot=V(1)T(1)=P(1)*V(1)/(nMoles*R); %算出初始温度%为了进入循环,先要设两个不相等的PathType和QuitType值QuitType=5;PathType=0;while(PathType~=QuitType) %在菜单上选择‘退出’之前不断循环,%选择路径类型或退出iPoint=iPoint+1; %下一点fprintf('对过程#%g\n',iPoint-1);PathType=menu(sprintf('过程%g:选择下一路径',iPoint-1),...'等压','等容','等温','绝热','退出'); %图形界面菜单生成语句switch PathTypecase 1 %等压路径V(iPoint)=input('输入新容积:');P(iPoint)=P(iPoint-1); %压力不变T(iPoint)=P(iPoint)*V(iPoint)/(nMoles*R); %按新容积算出温度W=P(iPoint)*(V(iPoint)-V(iPoint-1)); %计算等压过程所做的功Q=(gama*nMoles*R/(gama-1))*(T(iPoint)-T(iPoint-1));VPlot=[VPlot,V(iPoint)]; %加上新的容积和压力点,用以绘图PPlot=[PPlot,P(iPoint)];case 2 %等容路径P(iPoint)=input('输入新压力:');V(iPoint)=V(iPoint-1); %容积不变T(iPoint)=P(iPoint)*V(iPoint)/(nMoles*R); %按新压力算出温度W=0; %等容路径上所做的功为零Q=(nMoles*R/(gama-1))*(T(iPoint)-T(iPoint-1));VPlot=[VPlot,V(iPoint)]; %加上绘图用的新容积和压力点PPlot=[PPlot,P(iPoint)];case 3 %等温路径V(iPoint)=input('输入新容积:');T(iPoint)=T(iPoint-1); %温度不变P(iPoint)=nMoles*R*T(iPoint)/V(iPoint); %按新容积求新压力W=nMoles*R*T(iPoint)*log(V(iPoint)/V(iPoint-1)); %求所做的功Q=W;%用元素群运算求等温路径上的P和V,加进绘图数据中VNew=linspace(V(iPoint-1),V(iPoint),NCurve);PNew=nMoles*R*T(iPoint)./VNew;VPlot=[VPlot,VNew]; %将新的V,P点加入绘图数据中PPlot=[PPlot,PNew];case 4 %绝热路径V(iPoint)=input('输入新容积:');P(iPoint)=P(iPoint-1)*V(iPoint-1)^gama/V(iPoint)^gama; %按新容积求新压力T(iPoint)=T(iPoint-1)*V(iPoint-1)^(gama-1)/V(iPoint)^(gama-1); %按新容积求新温度W=-(nMoles*R/(gama-1))*(T(iPoint)-T(iPoint-1)); %求所做的功Q=0;VNew=linspace(V(iPoint-1),V(iPoint),NCurve);PNew=P(iPoint-1)*V(iPoint-1)^gama./VNew.^gama;VPlot=[VPlot,VNew]; %将新的V,P点加入绘图数据中PPlot=[PPlot,PNew];otherwiseend%画出到目前为止的PV图if(PathType~=QuitType)WTotal=WTotal+W; %将新做的功加进总功if(Q>0)QTotal=QTotal+Q;endfigure(gcf);plot(V,P,'o',VPlot,PPlot,'-')%图形窗移前,绘图size=axis;axis([size(1)*0.9,size(2)*1.1,size(3)*0.9,size(4)*1.1]);%上两句用于美观图象,使曲线不要紧靠边框%标注语句略endendWTotalQTotaly=WTotal/QTotal12。

相关文档
最新文档