数学实验报告(共7页).doc
精选优质文档-倾情为你奉上重 庆 大 学学 生 实 验 报 告实验课程名称 数学实验 开课实验室 DS1407 学 院 自动化 年级 2013 专业班 自动化02班 学 生 姓 名 侯刚 学 号 开 课 时 间 2014 至 2015 学年第 二 学期总 成 绩教师签名数 学 与 统 计 学 院 制开课学院、实验室:数统学院DS1407 实验时间 : 2014年4月3日课程名称数学实验实验项目名 称种群数量的状态转移微分方程实验项目类型验证演示综合设计其他指导教师龚劬成 绩实验目的1 归纳和学习求解常微分方程(组)的基本原理和方法;2 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;3 熟悉MATLAB软件关于微分方程求解的各种命令;4 通过范例学习建立微分方程方面的数学模型以及求解全过程;基础实验一、实验内容1. 微分方程及方程组的解析求解法;2. 微分方程及方程组的数值求解法欧拉、欧拉改进算法;3. 直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解);4. 利用图形对解的特征作定性分析;5. 建立微分方程方面的数学模型,并了解建立数学模型的全过程。二、实验过程1求微分方程的解析解, 并画出它们的图形, y= y + 2x, y(0) = 1, 0<x<1;(1)求解:输入:dsolve('Dy=y+2*x','y(0)=1','x')输出:ans=-2*x-2+3*exp(x)(3)作图:输入:>> x=0:0.1:1;>> y2=-2*x-2+3*exp(x);>> plot(x,y2)输出:图表 1 方程特解图形分析:注意dsolve的用法。2用向前欧拉公式和改进的欧拉公式求方程y= y - 2x/y, y(0) = 1 (0x1,h = 0.1) 的数值解,要求编写程序,并比较两种方法的计算结果,说明了什么问题?(1)求解析解输入: dsolve('Dy=y-2*x/y','y(0)=1','x')输出: ans =(2*x+1)(1/2)(2)用向前欧拉公式和改进的欧拉公式求方程的数值解并与解析解作图比较 程序:x1(1)=0;y1(1)=1;y2(1)=1;h=0.1;for k=1:10 x1(k+1)=x1(k)+h; y1(k+1)=y1(k)+h*(y1(k)-2*x1(k)/y1(k); k1=y2(k)-2*x1(k)/y2(k); k2=y2(k)+h*k1-2*x1(k+1)/(y2(k)+h*k1); y2(k+1)=y2(k)+h*(k1+k2)/2;endx1,y1,y2x=0:0.1:1;y=(2*x+1).(1/2);plot(x,y,x,y1,'o',x,y2,'+')结果:x1 =0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000y1 =1.0000 1.1000 1.1918 1.2774 1.3582 1.4351 1.5090 1.5803 1.6498 1.7178 1.7848y2 =1.0000 1.0959 1.1841 1.2662 1.3434 1.4164 1.4860 1.5525 1.6165 1.6782 1.7379图表 2 向前欧拉公式和改进的欧拉公式所求方程数值解与解析解的比较由图可得,改进后的欧拉公式求得的数值解更贴合解析解。分析:注意向前欧拉与改进后的欧拉公式的不同。3Rossler微分方程组:当固定参数b=2, c=4时,试讨论随参数a由小到大变化(如a(0,0.65)而方程解的变化情况。程序:rossler.m:function xdot=rossler(t,x)xdot=0,-1,-1;1,0.1,0;x(3),0,-4*x+0,0,2'fangchengzu.m:x0=0 0 0.1;t,x=ode45('rossler',0,10,x0);plot(t,x(:,1),'-',t,x(:,2),'.',t,x(:,3),'+')pauseplot3(x(:,1),x(:,2),x(:,3)grid on结果:a=0.1时:a=0.25时:a=0.5时:a=0.6时:上述图形表示了a由小到大变化时方程解的变化。分析:注意xdot的书写以及ode45的运用。4.Apollo卫星的运动轨迹的绘制程序:apollo.m:function yp=apollo(t,x)u=1/82.45;u1=1-u;r1=sqrt(x(1)+u)2+x(3)2);r2=sqrt(x(1)-u1)2+x(3)2);yp=x(2);2*x(4)+x(1)-u1*(x(1)+u)/r13-u*(x(1)-u1)/r23;x(4);-2*x(2)+x(3)-u1*x(3)/r13-u*x(3)/r23;weixing.m:x0=1.2;0;0;-1.; t,x=ode45('apollo',0,20,x0);plot(x(:,1),x(:,3)xlabel('x')ylabel('y')title('Apollo卫星运动轨迹')结果:图表3 apollo卫星轨迹图分析:注意求数值解时,高阶微分方程必须等价的变为一阶微分方程组。应用实验(或综合实验)一、实验内容盐水的混合问题一个圆柱形的容器,内装350升的均匀混合的盐水溶液。如果纯水以每秒14升的速度从容器顶部流入,同时,容器内的混合的盐水以每秒10.5升的速度从容器底部流出。开始时,容器内盐的含量为7千克。求经过时间t后容器内盐的含量。二、问题分析(1)已知:水的密度为1kg/L,盐溶解度为36g。可计算出7kg盐所需要的溶剂为194L水。因此,由混合液体积即可知开始时刻的7kg盐是完全溶于水中的,并且没有饱和。所以,整个过程为食盐水被再次稀释的过程,则不会出现有盐析出现象。(2)由于容器的容积相对于单位时间内水的体积变化来说很大,所以可以忽略溶质盐在在不同浓度的水内扩散至均匀的时间。根据在每个微小的时间段内,减少的盐加上容器内剩余的盐等于开始的盐量建立方程。三、数学模型的建立与求解(一般应包括模型、求解步骤或思路,程序放在后面的附录中)假设:1)温度对盐在水中的溶解度变化影响不大。2)任意时刻容器内混合的、流出的盐水都均匀。3)水流入及盐水流出的速度均为匀速。设注水时间为t,t时刻时容器内含盐量为P(t)、容器内混合盐水的体积为V(t),纯水流入容器的速度为v1,混合液流出的速度为v2。可列出方程组:P(t+t)=P(t)-P(t)*v2*t/V(t)V(t)=V(t0)+(v1-v2)*tV(t0)=350,P(0)=7,v1=14,v2=10.5方程可化为:dP/dt=-10.5*P(t)/(350+3.5*t),P(0)=7用MATLAB求解该方程并作图。四、实验结果及分析求得方程的解析解为:P(t)= /(t + 100)3曲线图像为:图表 4 经过时间t后容器内盐的含量五、附录(程序等)y=dsolve('Dy=-14*y/(350+3.5*t)','y(0)=7','t')ezplot('/(t + 100)3',0,100)xlabel('t')ylabel('P(t)')总结与体会 通过该实验的学习,掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。教师签名年 月 日专心-专注-专业