d簧振子的matlab程序解释,每一步都请解释一下

d簧振子的matlab程序解释,每一步都请解释一下,第1张

% 本程序为基于matlab的动画绘制实例

% 通过设置句柄来达到理想d簧振子简谐运动示例

% 其核心思想是句柄、数据设置、演示延迟等% 理想d簧振子简谐运动

clcclear allclose all% 清理族颂蚂matlab空间

figurehold onbox on% 打开figure窗口

% 绘制矩形框,作为顶板

rectangle('position', [12, 8.5, 2, 0.3], 'FaceColor', [0.5,0.3,0.4])

% 设置坐标轴

axis([0, 15, -1, 10])

% 绘制直线

plot([13,13], [7,8.5], 'r', 'linewidth', 2)

% 画d簧

y = 2:.2:7

M = length(y)% y的长度

x = 12+mod(1:M,2)*2

x(1) = 13

x(end-3:end) = 13% 直线数据

D = plot(x,y)

% 画小球

C = 0:.1:2*pi

r = 0.35

t1 = r*sin(C)

F1 = fill(13+r*cos(C),2+t1,'r')

% 设置坐标轴属性

set(gca, 'ytick', [0:2:9])

set(gca, 'yticklabels', num2str([-1:3]'))

% 绘制中间横线

plot([0,15], [3.3,3.3], 'black')

% 绘制中间横线,此时为绿色线

H1 = plot([0,13], [3.3,3.3], 'g')

% 运动曲线

Q = plot(0,3.8,'color','r')

td = []

yd = []

T = 0

% 字符标签

text(2, 9, '理想中的d簧振子简谐振动', 'fontsize', 16)

set(gcf, 'doublebuffer', 'on')

while T <12

% 设置时间延迟

pause(0.2)

Dy = (3/2-1/2*sin(pi*T))*1/2

Y = -(y-2)*Dy+7

Yf = Y(end)+t1

td = [td,T]% 保存数据兆埋

yd = [yd,Y(end)]% 保存数据

set(D, 'ydata', Y)% 设置数据

set(F1, 'ydata', Yf, 'facecolor', rand(1,3))% 设置小球

set(H1, 'xdata', [T,13], 'ydata', [Y(end),Y(end)])% 设置横轴

set(Q, 'xdata', td, '樱笑ydata', yd)% 绘制运动曲线

T = T+0.1

end

(1)F-x

我们知道F=kx

也就是乎颂渗说,只要把F和x进行线性拟合就可以了。

比方说你的数据是

x=[1,2,3,4,5,6,7]

F=[9,19,29,41,50,58,71]

k=x'\F'

得到:

k =

9.9500

(2)M-T^2

我们知道

k/M=[(2*pi)/T]^2

变形得

k/(4*pi^2*m)=1/T^2

上式是关于k的一元方程

比说说数据:

T=[1,2,3,4,5,6,7] %这岁脊是T

M=[9,19,29,41,50,58,71]

T2=T.^2

A=1/4/pi^2./M

b=1./T2

k=A'\b'

就可以得樱世到k


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12560179.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存