第一章 简单物理实验模拟

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

>> rot90(A) ans = 3 6 2 5 1 4 >> rot90(A,2) ans = 6 5 4 3 2 1 魔方矩阵magic(): >> magic(3)
ans = 8 1 3 5 4 9
6 7 2
抽取 对角元素抽取diag(X,k):抽取矩阵X的第k条 对角线的元素向量。

数据可视化 plot() plot(y), 以y为函数值,以[1,2,3,…]为横坐标 plot(x,y) 以y为函数值, 以x为横坐标 plot(x1,y1,x2,y2,…)画多个图形. plot(x,y, ‘性质’) , 性质包括颜色,形状等 ‘-’实线,‘—’虚线,‘o’圈,‘.’点, ‘r’红色, ‘g’ 绿色, ‘y’黄色等 hold on 保存图形;hold off 不保存图形 grid on加网格;grid off不加网格 exp: >> x=0:0.1:10; >> y=sin(x); >> plot(x,y,'r')

粒子所受斥力: F=2Ze2/R2
向量矩阵的寻访 >> x=[2,4,6,8]; >> x(3) ans = 6 >> x(1:3) ans = 2 4 6 >> x(3:end) ans = 6 8
>> x([1,3]) ans = 2 6 >> A=[1,2;3,4]; >> A(1,1) ans = 1 >> A(1,2) ans = 2 >> A(1,:) ans = 1 2
计算x=x1+x2
更新画面 结束
function y = zdhc(a,w,f) % 振动合成 % a,w,f,为二维向量 t=0:0.01:10; x1=a(1)*cos(w(1)*t+f(1)); x2=a(2)*cos(w(2)*t+f(2)); x=x1+x2; for i=1:length(t) plot(t,x) hold on plot(t(i),x(i),'ro') pause(0.02); hold off end
>> X=diag(v,1) X= 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 >> X=diag(v,-1) X= 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0
上三角矩阵和下三角矩阵的抽取 tril(X,k):提取矩阵X的第k条对角线下面的部分(包括第k条对角线) triu(X,k):提取矩阵X的第k条对角线上面的部分(包括第k条对角线) v =
1.3 驻波的模拟 t x 正向波: y1 A cos 2 ( ) T

反向波: y A cos 2 ( t x ) 2 T
驻波:
y y1 y2 t y 2 A cos(2 ) cos(2 ) T x
function zb(a,p,l) %驻波 x=-2*pi:0.01:2*pi; t=0:0.01:3; for i=1:length(t) y1=a*cos(2*pi*(t(i)/p-x/l)); y2=a*cos(2*pi*(t(i)/p+x/l)); y=y1+y2; plot(x,y,'r'),axis([-8,8,-2.2,2.2]); pause(0.02); end
function jxzd(a,w,f) % 简谐振动 (H1行) % a为振幅, w为频率, f为初始相位. t=0:0.01:5; %时间离散量 x=a*cos(w*t+f); for i=1:length(t) % length() 向量长 plot(t,x,‘r’) %画轨迹 hold on % 保持画面 plot(t(i),x(i),‘.’,‘MarkerSize’,20) %画质点 pause(0.02); % 等待时间 hold off % 不保持画面 end
注:



M函数文件中的命令都不能直接在命令窗口中输入, 调用时只要输入文件名即可。 M函数文件的文件名必须与函数名相同。另外,函数 文件名必须以一个字母开头,后面可以是任意的字母、 数字和下划线的组合,空格和标点符号不能用作文件 名。 调用M函数文件时除了需要文件名以外,还需要提供 输入参数。 M函数文件的第一行必须是以function关键字开头的 声明语句。 M函数文件区分大小写,为了格式统一和避免大小写 错误,建议只使用小写字母表示函数文件名。
-2.0000 1.0000 1.5000 -0.5000 翻转 左右翻转fliplr(): >> A=[1 2 3;4 5 6] A= 1 2 3 4 5 6
>> fliplr(A) ans = 3 2 1 6 5 4 上下翻转flipud(): >> flipud(A) ans = 4 5 6 1 2 3 旋转90度rot90(): B = rot90(A,k) 逆时针旋转k*90度,k默认为1
1 2 3 4 5 6 7 8 9 >> a1=tril(v,-1) a1 = 0 4 7 0 0 8 0 0 0
>> a1=tril(v,1) a1 = 1 2 0 4 5 6 7 8 9 >> a1=triu(v,1) a1 = 0 0 0 2 0 0 3 6 0
>> a1=triu(v,-1)
结束
function jxzd(a,w,f) % 简谐振动 % a为振幅, w为频率, f为初始相位. t=0:0.01:5; %时间离散量 x=a*cos(w*t+f); for i=1:length(t) % length() 向量长 plot(t,x,‘r’) %画轨迹 hold on % 保持画面 plot(t(i),x(i),‘.’,‘MarkerSize’,20) %画质点 pause(0.02); % 等待时间 hold off % 不保持画面 end
坐标控制命令: axis axis auto 缺省设置 axis equal 横纵坐标刻度等长 axis square 生成正方形坐标系 axis tigh 把数据范围设为坐标范围 axis([]) 手动设置坐标范围
>> t=0:0.1:10; >> y=sin(t); >> plot(t,y) >> axis equal >> plot(t,y) >> axis square

A= 1 4 7 2 5 8 3 6 9
k 0, 上方第k条对角线 k k 0,主对角线 k 0,下方第k条对角线
>> x=diag(A) x=
1 5 9
生成对角矩阵diag(v,k):使得向量v为所得矩阵的 第k条对角元素。 >> v=[1 2 3]; >> X=diag(v) X= 1 0 0 0 2 0 0 0 3
1.1 简谐振动实验模拟 合外力: F=-kx, k为常数 d 2x k 2 2 x 0, , 运动方程: 2

dt
m
x A cos(t ) 方程的解: A与 为积分常量由初始条件决定.
流程图:
开始
输入A,, t=0,1,2,… 计算x=Acos(t+) 更新画面
擦除属性: ‘EraseMode’ ‘none’ 不擦除; ‘xor’ 擦除旧图形与新图形不同的颜色; ‘background’ 将旧图形颜色变为背景色;
1.5 粒子散射模拟
Ctg 4 2
0
Mu b 2 2 Ze
2
粒子散射模拟: 原子核电荷: Ze 原子核位置: (0,0) 粒子质量: m 粒子电荷: 2e 粒子位置: (x, y)
2. 句柄: 指图形的身份,标识. 3. 属性: 指刻画图形的一组参数. 图形创建: figure(), axis(), line(), surface(), rectangle(), patch(), image(), text(), light(). 图形句柄获取: 创建时获取 >> x=0:0.01:2*pi; >> line(x,sin(x),'color',[0.75 0.75 1],'LineWidth',3)
第一章 简单物理实验模拟
矩阵操作
连接: >> A=[1 2]; >> B=[3 4]; >> C=[A;B] C= 1 2 3 4 >> D=[A B] D= 1 2 3

4
转置: >> A=[1 2;3 4] A= 1 2 3 4 >> A' ans = 1 3 2 4 求逆:inv()
求逆:inv() >> inv(A) ans =
单缝衍射: a=0.1, d=1, N=1, =0.02 多衍射缝: a=0.1, d=1, N=2,3,5, =0.02
句柄图形 1.图形对象:

根屏幕 Root 图 Figure
界面控制 Uicontrol
轴 Axes
界面菜单 Uimenu
线 面 方 块 象 字 光 Line Surface Rectangle Patch Image Text Light
function y = ys(a,d,n,l) % 光的衍射 I0 = 1; theta = -0.5*pi:0.01:0.5*pi; x = sin(theta); u = a*pi*x/l; v = d*pi*x/l; I = I0*((sin(u)./u).^2).*((sin(n*v)./sin(v)).^2); plot(x,I/I0); xlabel('sin\theta'); ylabel('I/I0'); grid on

1.2 振动合成模拟 由力学和振动理论知道,振动方向相同 的两个简谐振动 x1 A1 cos(1t 1 )
x2 A2 cos(2t 2 )
其合振动为
x x1 x2
流程图:
开始 输入A1,A2,1,2, 1, 2 t=0,1,2,… 计算x1=A1cos(1t+1), x2=A2cos(2t+2)
a1 =
1 2 3 4 5 6 0 8 9 >> a1=triu(v)
a1 =
1 0 0 2 5 0 3 6 9
.m文件的创建,保存
创建 【File】菜单下【New】菜单选项的【M-File】命 令 打开matlab的m文件编辑器窗口。

保存 单击M文件编辑器窗口工具栏中的【 Save】图标, 打开保存对话框
函数定义 生成*.m文件 函数包括:定义行, H1行,帮助文本,函数体,注释. 定义行: function [y1,y2,…ym]=ff(x1,x2,…,xn) 帮助文本: % 注释,介于函数声明名行和第一行命令之间的 若干注释, H1: % 注释的第一行 函数体: (可包含子函数) function y = f(x) z=g(l); function z=g(l)
1.4 光的多缝衍射的模拟
夫琅禾费单缝衍射基本光路
均匀光源的夫琅和费多缝衍射光强公式:
sin 2 u sin 2 Nv I I 0 ( 2 )( ) 2 u sin v v d sin u a sin
a 为狭缝宽, d为光栅常数,为衍射角,为光 的波长,N为狭缝个数 参数选择是任意的,但是必须符合物理规 律,缝宽a<d, 光栅常数d与a同数量级 我们选择的参数d>a。
源自文库
获取和设置属性 get(), set() >> h=line(x,y,'color',[1,0,0]) %[红,绿,兰] >> get(h) %获得图形h的所有属性 >> get(h,‘color’) %获得颜色属性. >> set(h,‘color’,[1 0 0]) % 设置属性

function jxzd1(a,w,f) % 简谐振动 t=0:0.01:5; x=a*cos(w*t+f); plot(t,x) h=line('Color',[1 0 0], … 'Marker','.','MarkerSize',20,'EraseMode','xor'); for i=1:length(t) set(h,'Xdata',t(i),'Ydata',x(i)); pause(0.02); end
相关文档
最新文档