案例蹦级运动员-数值解法

该博客通过MATLAB代码展示了蹦极运动员速度变化的数值解与解析解的计算过程。使用有限差分逼近模拟了运动员下落速度,对比了不同时间步长(th)下的结果,强调了减小步长能提高精度。同时,通过可视化图形展示了解析解与近似解的差异,并探讨了数值方法在无法获得精确解时的重要性。
摘要由CSDN通过智能技术生成

>> %符号解析解-->精确解
>> %数值运算,数值解-->近似解
>> %遗憾的是,很多数学模型还不能精确求解,遇到这种情况,多数情况下唯一的选择就是建立逼近精确解数值解
>> %借助有限差分逼近(finite-difference-approximation)

\frac{\mathrm{d} v}{\mathrm{d} x}\cong\frac{\triangle v}{\triangle t}=\frac{v(t_{i+1})-v(t_i)}{t_{i+1}-t_i}

\frac{v(t_{i+1})-v(t_i)}{t_{i+1}-t_i}=\mathrm{g}-\frac{c_d}{m}v(t_i)^2

v(t_{i+1})=v(t_i)+\left [ \mathrm{g}-\frac{c_d}{m}v(t_i)^2 \right ](t_{i+1}-t_i)

v(t_{i+1})=v(t_i)+\frac{\mathrm{d} v_i}{\mathrm{d} t}\triangle t

建立函数文件

注意:不要去改函数文件名称,它适合函数对应的,如果改变,运行时会找不到函数

%函数文件:输入参数、输出参数
function vt=bungeeS(m,cd,th,tend)

%% m表示蹦极运动员的质量,cd是集总阻力系数,th表示时间步长,tend表示时间在tend秒之前
g=9.81; %重力加速度
i=1;
vbefore=0; %相当于迭代公式的v(ti)
vnext=0; %相当于迭代公式的v(t(i+1))

for ti=0:th:tend
    vnext = vbefore+(g-cd/m*vbefore^2)*th; %迭代公式
    vt(i,1)=ti; %第一列存储时间
    vt(i,2)=vbefore; %第二列存储对应时刻的速度值
    i=i+1;
    vbefore=vnext;  %速度值的迭代
end
%% 蹦极运动员速度值可视化
 plot(vt(:,1),vt(:,2),'r-','LineWidth',2)
end

 然后在命令行窗口运行

>> vt=bungeeS(68.1,0.25,1,20)

vt =

         0         0
    1.0000    9.8100
    2.0000   19.2667
    3.0000   27.7140
    4.0000   34.7044
    5.0000   40.0930
    6.0000   44.0019
    7.0000   46.7041
    8.0000   48.5065
    9.0000   49.6789
   10.0000   50.4287
   11.0000   50.9030
   12.0000   51.2008
   13.0000   51.3870
   14.0000   51.5031
   15.0000   51.5753
   16.0000   51.6202
   17.0000   51.6481
   18.0000   51.6654
   19.0000   51.6762
   20.0000   51.6828

 蹦极运动员速度可视化

 hold on %保持当前图形不变,再添加图形元素

>> bengS
 
sol =
 
(g^(1/2)*m^(1/2)*tanh((cd^(1/2)*g^(1/2)*t)/m^(1/2)))/cd^(1/2)
 
 
vt =
 
(10^(1/2)*681^(1/2)*981^(1/2)*tanh((10^(1/2)*681^(1/2)*981^(1/2)*t)/13620))/50
 

limS =

   51.6938

>> hold on
>> vt=bungeeS(68.1,0.25,1,20)

vt =

         0         0
    1.0000    9.8100
    2.0000   19.2667
    3.0000   27.7140
    4.0000   34.7044
    5.0000   40.0930
    6.0000   44.0019
    7.0000   46.7041
    8.0000   48.5065
    9.0000   49.6789
   10.0000   50.4287
   11.0000   50.9030
   12.0000   51.2008
   13.0000   51.3870
   14.0000   51.5031
   15.0000   51.5753
   16.0000   51.6202
   17.0000   51.6481
   18.0000   51.6654
   19.0000   51.6762
   20.0000   51.6828

 可以看出精确解和近似解的图像误差较大,可以通过缩小th的值,这样可以缩小误差

>> figure %建立一个新图像
>> bengS

 
sol =
 
(g^(1/2)*m^(1/2)*tanh((cd^(1/2)*g^(1/2)*t)/m^(1/2)))/cd^(1/2)
 
 
vt =
 
(10^(1/2)*681^(1/2)*981^(1/2)*tanh((10^(1/2)*681^(1/2)*981^(1/2)*t)/13620))/50
 

limS =

   51.6938

>> hold on
>> vt=bungeeS(68.1,0.25,0.1,20)

vt =

         0         0
    0.1000    0.9810
    0.2000    1.9616
    0.3000    2.9412
    0.4000    3.9191
    0.5000    4.8944
    0.6000    5.8666
    0.7000    6.8350
    0.8000    7.7988
    0.9000    8.7575
    1.0000    9.7104
    1.1000   10.6567
    1.2000   11.5961
    1.3000   12.5277
    1.4000   13.4511
    1.5000   14.3657
    1.6000   15.2709
    1.7000   16.1663
    1.8000   17.0513
    1.9000   17.9256
    2.0000   18.7886
    2.1000   19.6400
    2.2000   20.4794
    2.3000   21.3065
    2.4000   22.1208
    2.5000   22.9222
    2.6000   23.7103
    2.7000   24.4849
    2.8000   25.2458
    2.9000   25.9929
    3.0000   26.7258
    3.1000   27.4446
    3.2000   28.1491
    3.3000   28.8392
    3.4000   29.5149
    3.5000   30.1761
    3.6000   30.8228
    3.7000   31.4550
    3.8000   32.0728
    3.9000   32.6762
    4.0000   33.2652
    4.1000   33.8400
    4.2000   34.4006
    4.3000   34.9472
    4.4000   35.4798
    4.5000   35.9987
    4.6000   36.5040
    4.7000   36.9958
    4.8000   37.4743
    4.9000   37.9398
    5.0000   38.3924
    5.1000   38.8322
    5.2000   39.2597
    5.3000   39.6748
    5.4000   40.0780
    5.5000   40.4693
    5.6000   40.8491
    5.7000   41.2175
    5.8000   41.5748
    5.9000   41.9213
    6.0000   42.2571
    6.1000   42.5826
    6.2000   42.8980
    6.3000   43.2034
    6.4000   43.4992
    6.5000   43.7855
    6.6000   44.0627
    6.7000   44.3310
    6.8000   44.5905
    6.9000   44.8416
    7.0000   45.0844
    7.1000   45.3193
    7.2000   45.5463
    7.3000   45.7657
    7.4000   45.9778
    7.5000   46.1828
    7.6000   46.3808
    7.7000   46.5721
    7.8000   46.7568
    7.9000   46.9353
    8.0000   47.1076
    8.1000   47.2739
    8.2000   47.4345
    8.3000   47.5895
    8.4000   47.7391
    8.5000   47.8834
    8.6000   48.0227
    8.7000   48.1571
    8.8000   48.2867
    8.9000   48.4118
    9.0000   48.5324
    9.1000   48.6487
    9.2000   48.7609
    9.3000   48.8690
    9.4000   48.9733
    9.5000   49.0739
    9.6000   49.1708
    9.7000   49.2642
    9.8000   49.3542
    9.9000   49.4410
   10.0000   49.5247
   10.1000   49.6053
   10.2000   49.6829
   10.3000   49.7578
   10.4000   49.8299
   10.5000   49.8993
   10.6000   49.9663
   10.7000   50.0307
   10.8000   50.0928
   10.9000   50.1527
   11.0000   50.2103
   11.1000   50.2658
   11.2000   50.3192
   11.3000   50.3707
   11.4000   50.4203
   11.5000   50.4680
   11.6000   50.5140
   11.7000   50.5582
   11.8000   50.6009
   11.9000   50.6419
   12.0000   50.6814
   12.1000   50.7195
   12.2000   50.7561
   12.3000   50.7914
   12.4000   50.8253
   12.5000   50.8580
   12.6000   50.8895
   12.7000   50.9198
   12.8000   50.9489
   12.9000   50.9770
   13.0000   51.0040
   13.1000   51.0300
   13.2000   51.0550
   13.3000   51.0791
   13.4000   51.1023
   13.5000   51.1246
   13.6000   51.1461
   13.7000   51.1668
   13.8000   51.1867
   13.9000   51.2058
   14.0000   51.2243
   14.1000   51.2420
   14.2000   51.2591
   14.3000   51.2755
   14.4000   51.2913
   14.5000   51.3065
   14.6000   51.3212
   14.7000   51.3353
   14.8000   51.3488
   14.9000   51.3619
   15.0000   51.3744
   15.1000   51.3865
   15.2000   51.3981
   15.3000   51.4093
   15.4000   51.4201
   15.5000   51.4304
   15.6000   51.4404
   15.7000   51.4500
   15.8000   51.4592
   15.9000   51.4681
   16.0000   51.4767
   16.1000   51.4849
   16.2000   51.4928
   16.3000   51.5004
   16.4000   51.5077
   16.5000   51.5148
   16.6000   51.5216
   16.7000   51.5281
   16.8000   51.5344
   16.9000   51.5404
   17.0000   51.5462
   17.1000   51.5518
   17.2000   51.5572
   17.3000   51.5624
   17.4000   51.5673
   17.5000   51.5721
   17.6000   51.5767
   17.7000   51.5812
   17.8000   51.5854
   17.9000   51.5896
   18.0000   51.5935
   18.1000   51.5973
   18.2000   51.6010
   18.3000   51.6045
   18.4000   51.6079
   18.5000   51.6111
   18.6000   51.6143
   18.7000   51.6173
   18.8000   51.6202
   18.9000   51.6230
   19.0000   51.6256
   19.1000   51.6282
   19.2000   51.6307
   19.3000   51.6331
   19.4000   51.6354
   19.5000   51.6376
   19.6000   51.6398
   19.7000   51.6418
   19.8000   51.6438
   19.9000   51.6457
   20.0000   51.6475

>> 

 图像曲线带标注,注意legend函数的用法,这里是先运行bengS文件,再是bugeeS函数,前者文件里有两个plot,注意对应关系

>> legend('解析解','12s时刻速度值','近似解','Location','best')
>> legend('boxoff')

取消方格

>> grid off

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值