当前位置:文档之家› 数学建模数学实验与Matlab的应用实例

数学建模数学实验与Matlab的应用实例

10
影响战斗力的三个因素: 1. 战斗减员, 与对方的战斗力成正比 2. 非战斗减员, 与己方战斗力成正比 3. 增援部队 本例中只考虑第一个因素.
11
假设在每一个回合中, 各方损失的舰只数 是对方舰只数的10%, 则有数学模型 Bk+1 = Bk 0.1Fk, Fk+1 = Fk 0.1Bk. 这正是前面已讨论过的正规战争模型. 其矩阵形式为:
To p20
0. 1 B 1 B . = 0.1 F 1 F k k +1
12
x1 记B为 x1 , F为 x2 , X k = ,则有 x 2 k
0.1 x1 x1 1 = AX k . X k +1 = = 0.1 x 1 x2 k 2 k +1
29
Matlab程序: tintvl=[0 70]; y0=[0 0]; [t,y]=ode23('ff26_1',tintvl,y0); plot(y(:,1),y(:,2),100*ones(size(t)),t)
30
3
为纪念这场经典海战的200周年,来自35个 国家的160余艘战舰和船只聚集在英格兰南部海 域,重演当年海战。在2005年6月28日的庆典中, 英女王伊丽莎白二世登上英国皇家海军船只, 完成这次世界最大规模的海军舰队大检阅。
在英格兰南部朴次茅斯港附近的索伦特海 峡,来自35个国家海军的167艘战舰和船只于26 日夜间就已聚集在此,其中包括60艘英国军舰。 法国、美国、西班牙和意大利与东道主英国都 派出航空母舰。
19.2734 X15 = A X 0 = 1.4441 ;
15
12.5834 X17 = A X 0 = 1.5146 .
17
18
从实验的结果来看, 英方将获胜. 事实上, 纳尔逊率领的英国舰队确实获得了胜利, 法 西联合舰队在第三轮战斗中还剩13艘战舰时 战败而去, 但是纳尔逊本人也在战斗中阵亡.
2
23
y ′(t ) vt y (t ) 模型2: = , x ′(t ) 100 x (t ) 2 2 2 ( y ′(t )) + ( x ′(t )) = ( 2v ) , x (0) = 0, y (0) = 0.
化为微分方程组
2v (100 x (t )) ,x (0) = 0, x ′(t ) = (100 x ) 2 + [vt y (t )]2 2v ( vt y ) y ′(t ) = , y ( 0 ) = 0. (100 x ) 2 + [vt y (t )]2
22
x
y (0) = 0,
消去s解得

x
0
′( x ) 2 dx = 2[ y ( x ) + (100 x ) y ′( x )], 1+ y
′( x ) 2 1+ y , y ′′( x ) = 2(100 x ) 故得二阶常微分方程
1 + y ′( x ) y ′′( x ) = , y (0) = 0, y ′(0) = 0. 2(100 x ) 当 ( x, y ) (100, s / 2) < ε 时停止, 其中 s s = 2[ y ( x ) + (100 x ) y ′( x )]. t = 2v
17
用数学模型作数学实验如下:
13 1. X 0 = , 3 0.05 1 , A= 0.05 1 12.6471 X3 = A X0 = 1.0709 ;
3
14 26.6471 2. X 0 = X 3 + = 17 18.0709 , 0 19.2734 3. X 0 = X15 + = 13 14.4441 ,
当 ( x , y ) (100, vt ) < ε 时停止.
24
模型1的解: 求解二阶常微分方程 ′2 1+ y y ′′ = , 2(100 x ) y = 0, y ′ = 0. x =0 x =0
解 令 y = y1 , y ′ = y 2 ,则原方程化为微分 方程组 ′ y1 = y 2 , 2 1 + y2 ′ . y2 = 2(100 x )
19
讨论题: 如果海战的双方分别是水面舰队和潜 艇部队, 那么应该用那一种战争模型? 请自 设数据和合理的参数进行数学实验并分析 结果.
To p12
20
设X为参战一方(水面舰队)的战舰数, Y为 另一方(潜艇部队)的潜艇数, 则可建立如下数 学模型: Xk+1 = Xk α Yk, Yk+1 = Xk β XkYk.
10
15
但是实际的结局是战斗以英方的胜利告终. 当时法西联合舰队是排列为一路纵队, 并分 为B, A, C三组, 分别有战舰17, 3, 13艘(如下图).
B (17) A (3) C (13)
16
纳 尔 逊 决 定 采 用 各 个 击 破 ( Divide-andConquer)的策略: 先用13艘战舰去攻击对方的 A组3艘战舰, 留14艘作预备队. 然后用战斗剩 余的战舰与预备队合并去攻击对方的B组, 最 后用剩余的力量与对方剩余的力量决战. 设 每一个回合中, 各方损失的舰只数是对方舰只 数的5%.
25
用M文件ff26.m来定义此方程组,内容如下: function z=ff26(x,y) z(1)=y(2); z(2)=sqrt(1+y(2).^2)./(2*(100-x)); z=[z(1) z(2)]'; Matlab程序: y0=[0 0]'; [x,y]=ode23('ff26',[0 100],y0); plot(x,y(:,1),'o')
26
70
60
50
40
30
20
10
0
0
20
40
60
80
100
27
模型2的解: 求解一阶微分方程组:
100 x dx 2v, x (0) = 0, dt = 2 2 ( vt y ) + (100 x ) dy vt y = 2v, y (0) = 0. dt ( vt y ) 2 + (100 x ) 2
21
例 一只猎犬发现其正东方100米处有 一只野兔,野兔以速度v向其正北方100米 处的洞穴逃跑,猎犬向野兔追去,速度是 2v. 求:1. 猎犬的运动轨迹; 2. 追上兔子的 时间、地点. 模型1:
s=∫
1 + y ′( x ) 2 dx, 0 s y y ′( x ) = 2 , 100 x
y ′(0) = 0.
数学建模, 数学实验 与Matlab 的应用实例
1
特拉法尔加海战 The Battle of Trafalgar
2
1805年,英国海军上将纳尔逊勋爵指挥 英国海军舰队赢得特拉法尔加海战的胜利。 此次海战无论在英国的历史和世界军事 史上都具有重要的意义。 位于伦敦的威斯敏斯特的特拉法尔加广 场 ( Trafalgar Square), 纳 尔 逊 纪 念 碑 ( Nelson's Column) 即为纪念此次海战而建。
28
解 M文件ff26_1.m : function z=ff26_1(t,y) v=1; z(1)=2*v*(100-y(1))/sqrt((v*t-y(2))^2+… (100-y(1))^2); z(2)=2*v*(v*t-y(2))/sqrt((v*t-y(2))^2+… (100-y(1))^2); z=[z(1) z(2)]'; (注: "…"为换行标记)
4
纪念特拉法尔加海战 英举行最大规模海军检阅 2005年06月29日 特拉法尔加海战200周年的纪念系列活动,由英国皇家海军和英国 政府共同举办。作为2005英国海洋年的先导活动,它将一直持续到明 年10月。 拿破仑建立法兰西第一帝国后,为夺取英吉利海峡的制海权,命 海军将领维尔纳夫与罗什福尔、布勒斯特的分舰队会师后远征英国本 土。然而由于途中误会,维尔纳夫分舰队南下驶往西班牙南部的加的 斯港。 英国海军名将纳尔逊得知后,乘“胜利”号旗舰从朴次茅斯出航, 与英海军科林伍德分舰队会合。1805年10月20日,包括5艘西班牙主力 舰在内的法西联合舰队(主力舰33艘、驱逐舰5艘,装备火炮300门,兵 员3万人)从加的斯港出航,准备转移到地中海。次日晨,当法西舰队 行进到特拉法尔加角附近时,被英国舰队(主力舰27艘,装备火炮2500 门,兵员2万人)发现,于是双方展开大战。 英国海军最终取得了海战的胜利。法西舰队18艘舰船被击沉或俘 获,7000人被俘,2600人死伤。而英军统帅纳尔逊被法国狙击手击中, 伤重不治而殉国,英国人把他视为民族英雄,他的旗舰“胜利”号也被 当作重要的历史文物而保存了下来。这次海战确立了英国在海上的霸 权地位,而纳尔逊把帆船时代特别壮观的海战线式战术发展到最高峰, 5 成为帆船时代海战的典范。
13
用Matlab进行实验: X = [27, 33]’; A = [1, -0.1; -0.1, 1]; k = 0; k = k + 1, X = A*X 每运行一次X = A*X代表进行一次战斗, k 记录了战斗次数. 最后一行可用“↑”反复调用.
14
如果双方都在战斗中投入全部兵力, X0 = (27, 33)T, 则经过10个回合后, X10 = A X0 = (2.6791, 18.2416)T, 结果将是英国舰队仅剩3艘战舰, 且至少 有一艘遭到重创, 而法国-西班牙舰队还剩18 艘战舰. 显然是英方战败.
167艘战舰抵英, 经典海战国演 员装扮纳尔逊 在座舰胜利号 前
8
重现当年海战的油画
9
例 特拉法尔加海战(The Battle of Trafalgar) 1805年, 纳尔逊海军上将率领的英国舰队与 法国-西班牙联合舰队在特拉法尔加角进行了 一场海战. 当时法国-西班牙联合舰队有战舰F0 = 33艘, 英国舰队有战舰B0 = 27艘. 双方的战 斗力与各自的战舰数成比例.
相关主题