matlab小球水平抛出,【原创】MATLAB中模拟小球上抛和反弹运动

小球空中运动方程,只要稍微有一点高中物理和高等数学基础的朋友应该都可以看懂这个方程吧:

324619ae995a043bc12bde7d078becb8.gif

1.gif (7.12 KB, 下载次数: 28)

2011-3-16 10:17 上传

上面是相当简单的一个常微分方程组,要求解这个方程组也相当容易,MATLAB提供的ode45函数足以胜任。

编写主函数main.m

function main()

global m mu g

m=1; % 小球质量

mu=0.3; % 摩擦系数

V0=100; % 初始速度

theta=pi/6; % 初始角度

g=9.8; % 重力加速

k=0.8; % 撞击系数

H=10; % 初始高度

tspan=[0 10]; % 求解时间范围

x0=[0,V0*cos(theta),H,V0*sin(theta)]; % 微分方程初值

[t,x]=ode45(@odefun,tspan,x0);

X=x(:,1);

Vx=x(:,2);

Y=x(:,3);

Vy=x(:,4);

figure

plot(t,x)

legend('X','Vx','Y','Vy')

xlabel('时间')

ylabel('变量')

grid on

figure

plot(X,Y)

xlabel('水平方向')

ylabel('竖直方向')

title('小球运动轨迹')

grid on

继续编写微分方程组描述函数odefun.m

function dx=odefun(t,x)

% 微分方程描述函数

global m mu g

% X=x(1);

Vx=x(2);

% Y=x(3);

Vy=x

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值