建模培训习题
发布时间:2020-09-17 来源: 精准扶贫 点击:
MAT LB AB 程序设计语言
实 验 报 告 专业及班级 。
。。
。
__ 高分子 14 — 3
. .。
。
__ 无机 14 - 1 。
。。
。
___ _ 材型 14- -4 4
姓
名
. . 。
__
杨洋
_ _。
。
。
___
李想
. ._ _ 。. . __ _ _
汝伟男
学
号
1402030328
1402020107
1402040419
日
期
_ _ __ _ ___ _2 2 0 16
07
16
组号
4 4 9
实验一
MAT LAB 得基本使用 一、
实验目得 1、 了解 MATALB程序设计语言得基本特点,熟悉 MATLAB 软件得运行环境; 2、 掌握变量、函数等有关概念,掌握M文件得创建、保存、打开得方法,初步具备将一般数学问题转化为对应计算机模型处理得能力; 3、 掌握二维图形绘制得方法,并能用这些方法实现计算结果得可视化。
二、
MATL AB得基础知识 通过本课程得学习,应基本掌握以下得基础知识:
1、 MATLAB 简介 2、 MATLAB 得启动与退出
3、 MATLAB 使用界面简介 4、 帮助信息得获取 5、 MATLAB 得数值计算功能 6、 程序流程控制 7、 M 文件 8、 函数文件 9、 MATLAB得可视化 三、
上机练习 1、 熟悉 MATLAB环境,将第二部分得例子在计算机上练习一遍; 2、 Fibonacci数组得元素满足 Fibonacci 规则:;且。现要求该数组中第一个大于 10000得元素。
(1)
在命令窗口中完成;
(2)
利用 M 文件完成;
(3)
自己定义一个函数文件,并在命令窗口中调用该函数完成。
3、 在同一个图形窗口得两个子窗口中分别画出(红色、虚线)与 (蓝色、星号)得波形,要求有标题,x、y 轴有标注。u
4、 思考回答: (1)
在语句末加分号“;”与不加分号有什么区别? 第 21 个数据,10946
第 21 个数据,10946 这就是求出得该数组中第一个大于10000 得元素
10946
不加分号会直接执行直接进行运算;加分号代表这就是一个语句,要继续写程序,才能完成算法 (2)
矩阵乘(*)与数组乘(、*)有何不同? A*A 中得乘法与书面上我们在高等代数里面学到得一样;A、*A 就是对应元素相乘 实验二
微 分 方 程 一、
实验目得 1、学会用 Matlab求简单微分方程得解析解; 2、学会用 Matlab 求微分方程得数值解; 3、掌握二维图形绘制得方法,并能用这些方法实现计算结果得可视化。
二、
实验内容 1、求简单微分方程得解析解; 2、求微分方程得数值解; 3、数学建模实例。
三、
上机练习 1、 导弹追踪问题( 示例)
设位于坐标原点得甲舰向位于 x 轴上点 A(1, 0)处得乙舰发射导弹,导弹头始终对准乙舰、如果乙舰以最大得速度v 0 (就是常数)沿平行于y轴得直线行驶,导弹得速度就是 5v 0 ,求导弹运行得曲线方程、又乙舰行驶多远时,导弹将它击中? 解法一(解析法)
假设导弹在 t 时刻得位置为 P(x(t), y(t)),乙舰位于、
由于导弹头始终对准乙舰,故此时直线PQ就就是导弹得轨迹曲线弧OP在点P处得切线,
即有
即
又根据题意,弧 OP得长度为得 5 倍,
即
解法二(数值解) 令y 1 =y’,y 2 =y 1 ’,将方程(3)化为一阶微分方程组。
建立 m-文件 eq1、m
function dy=eq1(x,y)
%自定义函数 将微分方程表示出来
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=1/5*sqrt(1+y(1)^2)/(1—x);
、
取x 0 =0,x f =0、9999,建立主程序 ff6、m如下:
x0=0
xf=0、9999
[x,y]=ode15s(’eq1",[x0 xf],[0 0]);
plot(x,y(:,1),"b、')
hold on
y=0:0、01:2;
plot(1,y,'b*")
结论:
导弹大致在(1 ,0 、2) 处击中乙舰 解法三(建立参数方程求数值解)
设时刻 t 乙舰得坐标为(X(t),Y(t)),导弹得坐标为(x(t),y(t))、 1.设导弹速度恒为,则
由于弹头始终对准乙舰,故导弹得速度平行于乙舰与导弹头位置得差向量,
即:
,
消去λ得:
3。因乙舰以速度 v 0 沿直线 x=1 运动,设 v 0 =1,则 w=5,X=1,Y=t 因此导弹运动轨迹得参数方程为:
4、 解导弹运动轨迹得参数方程 建立 m—文件 eq2、m 如下:
function dy=eq2(t,y)
dy=zeros(2,1);
dy(1)=5*(1—y(1))/sqrt((1—y(1))^2+(t—y(2))^2);
dy(2)=5*(t-y(2))/sqrt((1—y(1))^2+(t-y(2))^2); 取 t 0 =0,t f =2,建立主程序 chase2、m如下:
[t,y]=ode45("eq2’,[0 2],[0 0]);
Y=0:0、01:2;
plot(1,Y,"—’), hold on
plot(y(:,1),y(:,2),’*’) 5、 结果见图 1 导弹大致在(1,0、2)处击中乙舰,与前面得结论一致、 在 chase2、m中,按二分法逐步修改 t f ,即分别取 t f =1,0、5,0、25,…,直到t f =0、21 时,得图 2、 刻 结论:时刻 t =0 、21 1 时, 导弹在(1 ,0 、21 1 )处击中乙舰。
2、 慢跑者与狗 图图 1 图 2
一个慢跑者在平面上沿椭圆以恒定得速率v=1 跑步,设椭圆方程为:
x=10+20cost,
y=20+5sint、
突然有一只狗攻击她、 这只狗从原点出发,以恒定速率 w 跑向慢跑者,狗得运动方向始终指向慢跑者、用 MATLAB分别求出 w=20,w=5 时狗得运动轨迹、分析狗追上慢跑者得情况。
模型建立如下: 设时刻 t 慢跑者得坐标为(X(t),Y(t)),狗得坐标为(x(t),y(t))、 则X=10+20cost,
Y=20+15sint, 狗从(0,0)出发,与导弹追踪问题类似,建立狗得运动轨迹得参数方程
3、 地中海鲨鱼问题 意大利生物学家Ancona 曾致力于鱼类种群相互制约关系得研究,她从第一次世界大战期间,地中海各港口捕获得几种鱼类捕获量百分比得资料中,发现鲨鱼等得比例有明显增加(见下表),而供其捕食得食用鱼得百分比却明显下降、显然战争使捕鱼量下降,食用鱼增加,鲨鱼等也随之增加,但为何鲨鱼得比例大幅增加呢?
她无法解释这个现象,于就是求助于著名得意大利数学家 V、Volterra,希望建立一个食饵—捕食系统得数学模型,定量地回答这个问题、 1)
)
。符号说明: ——食饵在 t 时刻得数量; —-捕食者在 t 时刻得数量; ——食饵独立生存时得增长率;——捕食者独自存在时得死亡率; --捕食者掠取食饵得能力; ——食饵对捕食者得供养能力、 e—捕获能力系数 2) 。基本假设:
(1)
食饵由于捕食者得存在使增长率降低,假设降低得程度与捕食者数量成正比;
(2)捕食者由于食饵为它提供食物得作用使其死亡率降低或使之增长,假定增长
得程度与食饵数量成正比。
3 ). 模型建立与求解
模型(一)
不考虑人工捕获
该模型反映了在没有人工捕获得自然环境中食饵与捕食者之间得制约关系,没有考虑食饵与捕食者自身得阻滞作用,就是 Volterra 提出得最简单得模型、
针对一组具体得数据用 Matlab 软件进行计算:
设食饵与捕食者得初始数量分别为,。对于数据,得终值经试验后确定为 15,即模型为:
模型(二)
考虑人工捕获 2 22 2(10 20cos )(10 20cos ) (20 15sin )(20 15sin )(10 20cos ) (20 15sin )(0) 0,
(0) 0dx wt xdtt x t ydy wt ydtt x t yx y?? ? ??? ? ? ? ????? ? ??? ? ? ? ???? ??年代 1914 1915 1916 1917 1918 百分比 11.9 21.4 22.1 21.2 36.4 年代 1919 1920 1921 1922 1923 百分比 27.3 16.0 15.9 14.8 19.7
设表示捕获能力得系数为e,相当于食饵得自然增长率由r1 降为r1-e,捕食者得死亡率由 r2 增为 r2+e
设战前捕获能力系数 e=0、3, 战争中降为 e=0、1, 则战前与战争中得模型分别为:
模型求解:
1、分别用 m—文件 shier1、m 与 shier2、m 定义上述两个方程; 2、建立主程序shark1、m, 求解两个方程,并画出两种情况下鲨鱼数在鱼类总数中所占比例 x 2 (t)/[x 1 (t)+x 2 (t)]。
热点文章阅读