【数学建模】单摆运动仿真【含Matlab源码 3997期】

本文介绍了如何通过MATLAB获取代码来模拟单摆运动,包括两种付费方式。详细展示了如何使用MATLAB计算单摆的周期与角振幅的关系,以及使用数值积分和符号积分的方法。还提及了相关的MATLAB版本和参考文献。
摘要由CSDN通过智能技术生成

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【数学建模】基于matlab单摆运动仿真【含Matlab源码 3997期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏数学建模(初级版)

备注:
点击上面蓝色字体付费专栏Matlab数学建模(初级版),扫描上面二维码,付费79.9元订阅海神之光博客付费专栏Matlab数学建模(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、部分源代码

%% 单摆运动仿真

% 求解:1.单摆周期与角振幅之间关系
% 2.演示单摆振动

% 单摆系统参数
% 已知:单摆的摆锤质量m,角位置theta,摆杆长L
% 小角度振动时,单摆周期与角振幅无关,具有等时性,周期为T0;大角度时周期受角振幅影响,为T
% 这里简化分析起见,这里计算出T_dot=T/T0,T_dot是约化周期,其中T0=2pisqrt(L/g),则有小角度振动T_dot≈1.
% 通过T_dot=T/T0的计算,可以观察出多大角度下单摆的周期会产生收角振幅的影响

% 假设:摆杆无质量,摆球为质点

% 建立坐标系:摆杆铰接点为原点,水平向右为x轴正向,竖直向上为y轴正向,
% 单摆的角位置为摆杆与竖直向下方向的夹角,单摆在右时角位置为正,在左时角位置为负
% 并设单摆逆时针旋转时为旋转正方向

% 单摆振动的周期和运动规律由摆锤的运动方程得出,详细解析见以下网页:
Judge = input('是否打开单摆运动规律的网页讲解,1–打开,0–跳过: ');
if Judge == 1
url = ‘https://wenku.baidu.com/view/29ec28ee81c758f5f61f6738.html’;
web(url)
end
%% 1.单摆的周期与振幅的关系
% 单摆的周期 ( 用内联函数数值积分和符号积分与椭圆积分比较 )
clc; clear all;close all;
theta = 1:179; % 角振幅向量(1°-179°),假设摆杆为轻质杆。
thm = theta*pi/180; % 角振幅由角度化为弧度数

% 用第一类完全椭圆积分计算单摆精确周期T_dot
% matlab中第一类完全椭圆积分函数语法为:T_dot = ellipke(M)
% 见网页运动规律解析,参数代入时,M = k^2, k = sin(thm/2),T_dot = T/T0 =ellipke(M)*2/pi.
T_dot = ellipke(sin(thm/2).^2)*2/pi;

% 用以上网页讲解式中的公式(5.1.5),构造分别内联函数和匿名函数句柄进行积分计算约化周期T_dot
T1 = []; % 周期向量置空
T2 = []; % 周期向量置空
n = length(thm); % 角度个数
angle = 1:5:n; % 下标向量 ( 每隔 5度取一个角度 )
for iterNum = angle % 按下标循环
s = [‘1./sqrt(cos(x)-cos(’ num2str(thm(iterNum)) ‘) )’]; % 式(5.1.5)被积函数字符串表达式
f = inline(s); % 构造被积函数的内联函数
t = quadl(f,0,thm(iterNum))*sqrt(2)/pi; %用数值积分函数quadl按式(5.1.5)求周期T/T0
T1=[T1,t]; % 连接周期,即将各个角振幅对应的单摆周期值依次存入向量T1中
% 创建匿名函数,其中
% 内层函数g = (double(integral(@(x) 1./sqrt(cos(x)-cos(thetam)),0,thm(iterNum)))*sqrt(2)/pi)
% 内层函数利用integral积分函数在0-thm(iterNum)之间进行符号积分,积分变量为x,thetam为参数
% 外层函数参数h = @(thetam) (g) 将角振幅参数thetam = thm(iterNum)代入符号积分中,计算约化周期
h = @(thetam) ( (double(integral(@(x) 1./sqrt(cos(x)-cos(thetam)),0,thm(iterNum)))*sqrt(2)/pi) );
t = h(thm(iterNum)); % 用符号积分求周期
T2=[T2,t]; % 连接周期,各个角振幅对应的单摆周期值依次存入向量T2中
end % 结束循环,得到各个角振幅下计算得到的周期向量

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李昕.MATLAB数学建模[M].清华大学出版社.2017
[2]王健,赵国生.MATLAB数学建模与仿真[M].清华大学出版社.2016
[3]余胜威.MATLAB数学建模经典案例实战[M].清华大学出版社.2015

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值