2023年12月23日发(作者:数学试卷超简单)
庆大学-数学实验-微分方程
重 庆 大 学
学 生 实 验 报 告
实验课程名称 数学实验
开课实验室 DS1402
学 院 年级 专业班
学 生 姓 名 学 号
开 课 时 间 2014 至 2015 学年第 二 学期
总 成 绩
教师签名
数 学 与 统 计 学 院 制
开课学院、实验室:
年 月 日
实验时间 :
实验微分方程求实验项项目
解
目类型
名
称
验证 演示 综合 设计 其他
成
绩
课程
名称
指导
教师
数学实验
龚劬
实验目的
[1] 归纳和学习求解常微分方程(组)的基本原理和方法;
[2] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;
[3] 熟悉MATLAB软件关于微分方程求解的各种命令;
[4] 通过范例学习建立微分方程方面的数学模型以及求解全过程;
通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。
基础实验
1. 微分方程及方程组的解析求解法;
2. 微分方程及方程组的数值求解法——欧拉、欧拉改进算法;
3. 直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解);
4. 利用图形对解的特征作定性分析;
5. 建立微分方程方面的数学模型,并了解建立数学模型的全过程。
实验过程
1.求微分方程的解析解, 并画出它们的图形,
(1)
y’=
y + 2x,
y(0) = 1, 0 y’’+ycos(x) = 0, y(0)=1, y’(0)=0; 解:(1) M文件: k=dsolve(\'Dy=y+2*x\',\'y(0)=1\',\'x\') ezplot(k,[0,1]) 运行结果: k = -2*x-2+3*exp(x) (2)M文 件: x=dsolve(\'D2y+y*cos(x)=0\',\'y(0)=1,Dy(0)=0\') ezplot(\'x\') 运行结果: x = cos(cos(x)^(1/2)*t) 2.用向前欧拉公式和改进的欧拉公式求方程y’= y - 2x/y, y(0) = 1 (0≤x≤1,h = 0.1) 的数值解,要求编写程序,并比较两种方法的计算结果,说明了什么问题? 解:向前欧拉公式的M文件: x(1)=0;y(1)=1;h=0.1; for i=1:10 x(i+1)=x(i)+h; y(i+1)=y(i)+h*(y(i)-2*x(i)/y(i)); double(y(i+1)); disp(y(i+1)) end 运行结果: 1.1000 1.1918 1.2774 1.3582 1.4351 1.5090 1.5803 1.6498 1.7178 1.7848 改进欧拉公式的M文件: x(1)=0;y(1)=1;h=0.1; for i=1:10 x(i+1)=x(i)+h; k1=y(i)-2*x(i)/y(i); k2=y(i)+h*k1-2*x(i+1)/(y(i)+h*k1); y(i+1)=y(i)+0.5*h*(k1+k2); double(y(i+1)); disp(y(i+1)) end 运行结果: 1.1000 1.1918 1.2774 1.3582 1.4351 1.5090 1.5803 1.6498 1.7178 1.7848 1.0959 1.1841 1.2662 1.3434 1.4164 1.4860 1.5525 1.6165 1.6782 1.7379 解析求解: k= dsolve(\'Dy=y-2*x/y\',\'y(0)=1\',\'x\') ezplot(k,[0,1]) 运行结果: k = (2*x+1)^(1/2) 当x=1时,y=1.7320; 通过比较结果,说明改进型的欧拉方法比向前欧拉方法的结果精确。 3.Rossler微分方程组: 当固定参数b=2, c=4时,试讨论随参数a由小到大变化(如a∈(0,0.65))而方程解的变化情况,并且画出 空间曲线图形,观察空间曲线是否形成混沌状? 首先建立如下M文件: function xdot=fish(t,x) b=2; c=4; global a; xdot=[-x(2)-x(3);x(1)+a*x(2);b+x(3)*(x(1)-c)]; end 再建立M文件: x0=[0,0,0];global a; for a=0:0.65/3:0.65 [t,x]=ode45(\'fish\',[0,200],x0);x1=x(:,1);x2=x(:,2);x3=x(:,3); subplot(1,2,1),plot(t,x1,\'r-\',t,x2,\'b:\',t,x3,\'m--\') title(\'x(红色),y(蓝色),z(紫色)随t的变化情况\');xlabel(\'t\');pause(1) subplot(1,2,2),plot3(x1,x2,x3);grid; title(\'相图\');xlabel(\'x\');ylabel(\'y\');zlabel(\'z\');pause(20) end 运行结果(下面4图分别为a=0,0.13,0.26,0.39,0.52的图形) 图4-图8 卫星的运动轨迹的绘制 (x)(x)x2yx,11 y2xyr31r321yr13yr23,1/82.45,11,r1(x)2y2,r2(x1)2y2x(0)1.2,x(0)0,y(0)0,y(0)1.04935751 解: M文件: 首先建立r1 函数: function y=r1(x) u=1/82.45;a=x(1);b=x(2);y=((a+u)^2+b^2)^(1/2); 再建立r2函数: function y=r2(x) u=1/82.45;u1=1-u;a=x(1);b=x(2); y=((a-u1)^2+b^2)^(1/2); 接着建立如下M文件: function xdot=star(t,x) u=1/82.45;u1=1-u;k=x(1);l=x(2);m=x(3);n=x(4);xx=[k,m]; xdot=[l;2*n+k-u1*(k+u)/r1(xx)^3-u*(k-u1)/r2(xx)^3;n;-2*l+m-u1*m/r1(xx)^3-u*m/r2(xx)^3]; 最后调用如下M文件: ts=[0,20];x0=[1.2,0,0,-1.04935751]; [t,x]=ode45(\'star\',ts,x0); y1=x(:,1);y2=x(:,3); plot(y1,y2) 运行结果: 应用实验 5.盐水的混合问题 一个圆柱形的容器,内装350升的均匀混合的盐水溶液。如果纯水以每秒14升的速度从容器顶部流入,同时,容器内的混合的盐水以每秒10.5升的速度从容器底部流出。开始时,容器内盐的含量为7千克。求经过时间t后容器内盐的含量。 做出如下假设: 1.假设在不同浓度的水中的盐扩散速度都相同。 2.假设任何时刻容器内的盐水都是均匀的。 3.用y(t)表示容器内t时刻的盐的含量,用W(t)表示容器内t时刻的水的总量,用O表示盐水流出的速度,用I代表纯水流入的速度,时间变化t后容器内盐的含量为y(t+t)。考虑在t内流出的盐水的为Ot则其流出的盐为y(t)OtW(t). 通过以上假设可以得如下模型: y(tt)y(t)y(t)dyy(t)y(t)OtW(t) y(t)OdtW(t0)(IO)t化简可得M文件: k= dyy(t)OdtW(to)(IO)tdsolve(\'Dy=-(y*Y)/(T(t0)+(C-Y)*t)\',\'y(0)=7\',\'t\') 运行结果: k = 7/((-T(t0))^(Y/(-C+Y)))*((-C+Y)*t-T(t0))^(Y/(-C+Y)) 由题目可知W(t0)=350,O=10.5,I=14,从而y(t)=7000000/(t + 100)^3 总结与体会 通过该实验的学习,我掌握了微分方程(组)的求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有了一个初步的了解,同时学会了使用MATLAB软件求解微分方程的基本命令,学会了建立微分方程方面的数学模型。加深了我对微分、积分等数学概念的理解,同时使我掌握了数学的分析思维方法,熟悉了处理大量的工程计算问题的方法。 设计记录表格,包括碰到的问题汇总及解决情况 题号 1 2 3 4 问题 解微分方程并作图 欧拉公式相关 微分方程组 卫星轨迹绘制 模型建立,数据处理 解决情况 √ √ √ √ √ 盐水的混合问题 教师签名 年 月 日备注: 1、 同一章的实验作为一个实验项目,每个实验做完后提交电子稿到服务器的“全校任选课数学实验作业提交”文件夹,文件名为“学院学号姓名实验几”,如“机械20073159张新实验一”2、 提交的纸质稿要求双面打印,中途提交批改不需要封面,但最后一次需将该课程所有实验项目内页与封面一起装订成册提交。 3、 综合实验要求3人合作完成,请在实验报告上注明合作者的姓名。
更多推荐
实验,欧拉,容器
发布评论