数学建模实验报告求微分方程的解5页
数学建模实验报告
湖南城市学院数学与计算科学学院《数学建模》实验报告专业:学号:姓名:指导教师:成绩:年月日目录实验一 初等模型........................................................................ 错误!未定义书签。
实验二 优化模型........................................................................ 错误!未定义书签。
实验三 微分方程模型................................................................ 错误!未定义书签。
实验四 稳定性模型.................................................................... 错误!未定义书签。
实验五 差分方程模型................................................................ 错误!未定义书签。
实验六 离散模型........................................................................ 错误!未定义书签。
实验七 数据处理........................................................................ 错误!未定义书签。
实验八 回归分析模型................................................................ 错误!未定义书签。
实验一 初等模型实验目的:掌握数学建模的基本步骤,会用初等数学知识分析和解决实际问题。
实验内容:A 、B 两题选作一题,撰写实验报告,包括问题分析、模型假设、模型构建、模型求解和结果分析与解释五个步骤。
数学建模实习报告
·数学建模实习报告:'姓名:;学号:院系:数学与信息科学专业:数学与应用数学|1.鱼在游动的时候通常不是作直线运动,而且也不是作水平游动,而是在不断锯齿状地向上游动和向下滑行,如下图所示,为什么鱼儿要这样游动呢可否从能量的角度建立数学模型加以分析呢%鱼的能量消耗是由生理活动和外界物理活动共同引起的,我们分析鱼的运动路线与能量消耗大小的关系,故不考虑鱼生理活动消耗的能量,只单独认为鱼能量的消耗与运动路线有关。
本文根据鱼在水中呈锯齿状游动方式,建立了鱼在水中游动的路线模型,并通过受力分析,建立了鱼的受力模型,解决了鱼在水中沿不同路线游动时能量消耗的问题。
首先,我们根据鱼在水中的游动方式建立了A-C-B的运动路线模型及鱼的受力模型。
其中,A-C为鱼向上游动过程,C-B为鱼向下滑动路线;然后我们假设鱼是以常速v运动的,分别对鱼向上游动及向下滑动两个过程进行受力分析,鱼在水中受到重力及水的浮力,合力为w,方向向下,鱼运动还受到沿运动方向相反的水的阻力f1,f2;接下来我们对鱼的受力进行分解,将鱼在水中的净重w沿鱼的运动方向分解,分析由于假设鱼是以常速v运动,所以鱼在向上游动的过程需要自身提供动力F1,鱼在向下滑动的过程不消耗能量,由此得到水的阻力f1与w的关系。
对于问题(1),根据受力平衡及题中给定力之间的关系,分别在建立的物理模型中标出了这些力;对于题(2)问,先假设鱼向上运动的垂直高度因鱼向下滑动过程不做功h,根据几何关系及夹角之间的关系,分别计算出AC,CB及AB 长度大小,然后根据物理做工公式W=F*S计算鱼运动所的做功,分别得出鱼在A-C-B运动过程和A-B过程所做的功W1,W2,由此证明了鱼沿在A-C-B运动过程和A-B过程消耗能量之比;对于题(3),因为鱼做锯齿状游动时,消耗能量的大小受k值及夹角α,β的大小共同影响。
故令Q=w1/w2,因为A,B一定时,鱼水平运动所消耗的能量w2恒定不变,利用matlab求对Q关于β的偏导,并令偏导值为零,得出α与β的关系,因为tanα≈,所以对于不同的k值(,2,3),求出消耗能量最小时的β,分别为β≈37,β≈49,β≈59。
数学建模实验报告
《数学建模实验》实验报告学院名称数学与信息学院专业名称提交日期课程教师实验一:数学规划模型AMPL求解实验内容1. 用AMPL求解下列问题并作灵敏度分析:一奶制品加工厂用牛奶生产A1和A2两种奶制品,1桶牛奶可以在甲类设备上用12小时加工成3公斤A1或者在乙类设备上用8小时加工成4公斤A2,且都能全部售出,且每公斤A1获利24元,每公斤A2获利16元。
先加工厂每天能得到50桶牛奶的供应,每天工人总的劳动时间为480小时,并且甲类设备每天至多加工100公斤A1,乙类设备的加工能力没有限制,试为该厂制定一个计划,使每天的获利最大。
(1)建立模型文件:milk.modset Products ordered;param Time{i in Products }>0;param Quan{i in Products}>0;param Profit{i in Products}>0;var x{i in Products}>=0;maximize profit: sum{i in Products} Profit [i]* Quan [i]*x[i];subject to raw: sum{i in Products}x[i] <=50;subject to time:sum{i in Products}Time[i]*x[i]<=480;subject to capacity: Quan[first(Products)]*x[first(Products)]<=100;(2)建立数据文件milk.datset Products:=A1 A2;param Time:=A1 12 A2 8;param Quan:=A1 3 A2 4;param Profit:=A1 24 A2 16;(3) 建立批处理文件milk.runmodel milk.mod;data milk.dat;option solver cplex;solve;display x;(4)运行运行结果:CPLEX 11.0.0: optimal solution; objective 33602 dual simplex iterations (1 in phase I)x [*] :=A1 20A2 30;(5)灵敏度分析:model milk.mod;data milk.dat;option solver cplex;option cplex_options 'sensitivity';solve;display x;display x.rc, x.down, x.up;display raw, time, capacity;display raw.down, raw.up,raw.current, raw.slack;得到结果:【灵敏度分析】: x.rc x.down x.up:=A1 -3.55271e-15 64 96A2 0 48 72;raw = 48time = 2capacity = 0raw.down = 43.3333raw.up = 60raw.current = 50raw.slack = 0某公司有6个建筑工地,位置坐标为(a i, b i)(单位:公里),水泥日用量d i (单位:吨)1) 现有j j j吨,制定每天的供应计划,即从A, B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。
数学建模实验二:微分方程模型Matlab求解与分析
实验二: 微分方程模型Matlab 求解与分析一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; [2] 熟悉MATLAB 软件关于微分方程求解的各种命令;[3] 通过范例学习建立微分方程方面的数学模型以及求解全过程; [4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程(组)的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
(1) 微分方程 例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2')输出:ans =tan(t+C1)(2)求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x')指定初值为1,自变量为x 输出:ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x'''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) (2)微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
MATLAB求微分方程的解
实验二微分方程求解一、问题背景与实验目的实际应用问题通过数学建模所归纳而取得的方程,绝大多数都是微分方程,真正能取得代数方程的机遇很少.另一方面,能够求解的微分方程也是十分有限的,专门是高阶方程和偏微分方程(组).这就要求咱们必需研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精准解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精准解),Matlab 有专门的函数能够用,本实验将作必然的介绍.本实验将要紧研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve('equ1','equ2',…):Matlab 求微分方程的解析解.equ一、equ 二、…为方程(或条件).写方程(或条件)时用 Dy 表示y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推.2.simplify(s):对表达式 s 利用 maple 的化简规那么进行化简.例如:syms xsimplify(sin(x)^2 + cos(x)^2)ans=13.[r,how]=simple(s):由于 Matlab 提供了多种化简规那么,simple 命令确实是对表达式 s 用各类规那么进行化简,然后用 r 返回最简形式,how 返回形成这种形式所用的规那么.例如:syms x[r,how]=simple(cos(x)^2-sin(x)^2)r = cos(2*x)how = combine4.[T,Y] = solver(odefun,tspan,y 0) 求微分方程的数值解.说明:(1) 其中的 solver 为命令 ode4五、ode23、ode113、ode15s 、ode23s 、ode23t 、ode23tb 之一.(2) odefun 是显式常微分方程:⎪⎩⎪⎨⎧==00)(),(y t y y t f dt dy(3) 在积分区间 tspan =],[0f t t 上,从0t 到f t ,用初始条件0y 求解.(4) 要取得问题在其他指按时刻点 ,210,,t t t 上的解,那么令 tspan =],,,[,210f t t t t (要求是单调的). (5) 因为没有一种算法能够有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver ,关于不同的ODE 问题,采纳不同的Solver .(6) 要专门的是:ode23、ode45 是极为经常使用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 Matlab 的经常使用程序,其中:ode23 采纳龙格-库塔2 阶算法,用3 阶公式作误差估量来调剂步长,具有低等的精度.ode45 那么采纳龙格-库塔4 阶算法,用5 阶公式作误差估量来调剂步长,具有中等的精度.5.ezplot(x,y,[tmin,tmax]):符号函数的作图命令.x,y 为关于参数t 的符号函数,[tmin,tmax] 为 t 的取值范围.6.inline():成立一个内联函数.格式:inline('expr', 'var1', 'var2',…) ,注意括号里的表达式要加引号.例:Q = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)三、实验内容1. 几个能够直接用 Matlab 求微分方程精准解的例子:例1:求解微分方程22x xe xy dxdy -=+,并加以验证. 求解本问题的Matlab 程序为:syms x y %line1y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2diff(y,x)+2*x*y-x*exp(-x^2) %line3simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4说明:(1) 行line1是用命令概念x,y 为符号变量.那个地址能够不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1(3) 行line3利用所求得的解.那个地址是将解代入原微分方程,结果应该为0,但那个地址给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)(4) 行line4 用 simplify() 函数对上式进行化简,结果为 0, 说明)(x y y =的确是微分方程的解.例2:求微分方程0'=-+x e y xy 在初始条件e y 2)1(=下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为:syms x yy=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x')ezplot(y)微分方程的特解为:y=1/x*exp(x)+1/x* exp (1) (Matlab 格式),即xe e y x+=,解函数的图形如图 1:图1例3:求微分方程组⎪⎪⎩⎪⎪⎨⎧=--=++035y x dtdy e y x dt dx t 在初始条件0|,1|00====t t y x 下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为:syms x y t[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0','x(0)=1','y(0)=0','t')simple(x);simple(y);ezplot(x,y,[0,]);axis auto微分方程的特解(式子专门长)和解函数的图形均略.2. 用ode23、ode45等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解).例4:求解微分方程初值问题⎪⎩⎪⎨⎧=++-=1)0(2222y x x y dx dy 的数值解,求解范围为区间[0, ].fun=inline('-2*y+2*x^2+2*x','x','y');[x,y]=ode23(fun,[0,],1);x';y';plot(x,y,'o-')>> x'ans =>> y'ans =图形结果为图 2.图2例 5:求解描述振荡器的经典的 Ver der Pol 微分方程.7,0)0(',1)0(,0)1(222====+--μμy y y dt dy y dty d 分析:令,,121dt dx x y x ==则.)1(,1221221x x x dtdx x dt dx --==μ 先编写函数文件: function xprime = verderpol(t,x)global mu;xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)];再编写命令文件:global mu;mu = 7;y0=[1;0][t,x] = ode45('verderpol',[0,40],y0);x1=x(:,1);x2=x(:,2);plot(t,x1)图形结果为图3.图33. 用 Euler 折线法求解前面讲到过,能够求解的微分方程也是十分有限的.下面介绍用 Euler 折线法求微分方程的数值解(近似解)的方式.Euler 折线法求解的大体思想是将微分方程初值问题⎪⎩⎪⎨⎧==00)(),,(y x y y x f dx dy 化成一个代数方程,即差分方程,要紧步骤是用差商h x y h x y )()(-+替代微商dxdy ,于是: ⎪⎩⎪⎨⎧==-+)()),(,()()(00x y y x y x f h x y h x y k k k k 记)(,1k k k k x y y h x x =+=+,从而)(1h x y y k k +=+,那么有1,,2,1,0).,(,),(1100-=⎪⎩⎪⎨⎧+=+==++n k y x hf y y h x x x y y k k k k k k 例 6:用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=+=1)0(,22y y x y dx dy的数值解(步长h 取,求解范围为区间[0,2].解:本问题的差分方程为1,,2,1,0).2),( ),(,,4.0,1,021100-=⎪⎪⎪⎩⎪⎪⎪⎨⎧+=+=+====++n k y x y y x f y x hf y y h x x h y x k k k k k k (其中: 相应的Matlab 程序见附录 1.附录 1:clearf=sym ('y+2*x/y^2');a=0;b=2;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y});x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))数据结果为:图形结果见图4:图4专门说明:本问题可进一步利用四阶 Runge-Kutta 法求解,读者可将两个结果在一个图中显示,并和精准值比较,看看哪个更“精准”?(相应的 Matlab 程序参见附录 2).四、自己动手1. 求微分方程0-x-yx的通解.xy+sin2')1(2=2. 求微分方程x2''='+-的通解.ye5yy x sin3. 求微分方程组⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dtdy y x dt dx 在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形.4. 别离用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的不同.5. 用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=-=1)0(,12'32y y x y y 的数值解(步长h 取,求解范围为区间[0,2].6. 用四阶 Runge-Kutta 法求解微分方程初值问题⎩⎨⎧=-=1)0(,cos 'y x e y y x 的数值解(步长h 取,求解范围为区间[0,3].四阶 Runge-Kutta 法的迭代公式为(Euler 折线法实为一阶 Runge-Kutta 法):1,,2,1,0),()2,2()2,2(),()22(6,),(342312143211100-=⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧++=++=++==++++=+==++n k hL y h x f L L h y h x f L L h y h x f L y x f L L L L L h y y h x x x y y k k k k k k k k k k k k 相应的 Matlab 程序参见附录 2.附录 2:clearf=sym('y-exp(x)*cos(x)');a=0;b=3;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1l1=subs(f,{'x','y'},{x,y});l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2});l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2});l4=subs(f,{'x','y'},{x+h,y+l3*h});y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))试用该方式求解第5题中的初值问题.7. 用 ode45 方式求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较二者间的不同.五、附录附录 1:clearf=sym('y+2*x/y^2');a=0;b=2;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y});x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))附录 2:clearf=sym('y-exp(x)*cos(x)');a=0;b=3;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1l1=subs(f,{'x','y'},{x,y});l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2});l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2});l4=subs(f,{'x','y'},{x+h,y+l3*h});y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))下面是个例子:% 欲解方程组:% dx/dt=y-x+x(t-1);% dy/dt=y-xy+y(t-1);x0=-1; %初试条件y0=1; %初试条件t=0:01:3;yy=zeros(size(t));xx=zeros(size(t));yy(1)=x0;yy(1)=y0;dt=t(2)-t(1);Nk=round(1/dt);for k=1:length(t)-1;if t(k)<1;k1=yy(k)-xx(k);g1=yy(k)-xx(k)*yy(k);k2=yy(k)+*g1*dt-[xx(k)+*dt*k1];g2=yy(k)+*g1*dt-[xx(k)+*dt*k1]*[yy(k)+*g1*dt];k3=yy(k)+*g2*dt-[xx(k)+*dt*k2];g3=yy(k)+*g2*dt-[xx(k)+*dt*k1]*[yy(k)+*g2*dt];k4=yy(k)+g3*dt-[xx(k)+dt*k3];g4=yy(k)+g3*dt-[xx(k)+dt*k3]*[yy(k)+g3*dt];elsek1=yy(k)-xx(k)+xx(k-Nk);g1=yy(k)-xx(k)*yy(k)+yy(k-Nk);k2=yy(k)+*g1*dt-[xx(k)+*dt*k1]+xx(k-Nk)+*dt*k1;g2=yy(k)+*g1*dt-[xx(k)+*dt*k1]*[yy(k)+*g1*dt]+yy(k-Nk)+*dt*g1;k3=yy(k)+*g2*dt-[xx(k)+*dt*k2]+xx(k-Nk)+*dt*k2;g3=yy(k)+*g2*dt-[xx(k)+*dt*k1]*[yy(k)+*g2*dt]+yy(k-Nk)+*dt*g2;k4=yy(k)+g3*dt-[xx(k)+dt*k3]+xx(k-Nk)+dt*k3;g4=yy(k)+g3*dt-[xx(k)+dt*k3]*[yy(k)+g3*dt]+yy(k-Nk)+dt*k3;endxx(k+1)=xx(k)+dt*[k1+2*k2+2*k3+k4]/6;yy(k+1)=yy(k)+dt*[g1+2*g2+2*g3+g4]/6;endsubplot(121);plot(t,xx);title('t~x(t)');subplot(122);plot(t,yy);title('t~y(t)');/ / / / 文件夹:一、% 4阶龙格库塔法求chen's吸引子% 方程表达式% dx/dt = a*(y-x)% dy/dt = (c-a)*x - x*z + c*y% dz/dt = x*y - b*zclc;close all;clear all;%参数值a = 35;b = 3;c = 28;%初始值x_0 = -1;y_0 = 0;z_0 = 1;h = ; % 积分时间步长step1 = 10000; % 前面的迭代点数step2 = 5000; % 后面的迭代点数X = [];Y = [];Z = [];for(i = 1:1:(step1 + step2))%e1x_e1 = -a*x_0 + a*y_0;y_e1 = c*y_0 + (c - a)*x_0 - x_0*z_0;z_e1 = -b*z_0 + x_0*y_0;%e2y_h = y_0 + *h*y_e1;x_e2 = -a*(x_0 + *h*x_e1) + a*y_h;x_h = x_0 + *h*x_e1;z_h = z_0 + *h*z_e1;y_e2 = c*(y_0 + *h*y_e1) + (c - a)*x_h - x_h*z_h;z_e2 = -b*(z_0 + *h*z_e1) + x_h*y_h;%e3y_h = y_0 + *h*y_e2;x_e3 = -a*(x_0 + *h*x_e2) + a*y_h;x_h = x_0 + *h*x_e2;z_h = z_0 + *h*z_e2;y_e3 = c*(y_0 + *h*y_e2) + (c - a)*x_h - x_h*z_h;z_e3 = -b*(z_0 + *h*z_e2) + x_h*y_h;%e4y_h = y_0 + h*y_e3;x_e4 = -a*(x_0 + h*x_e3) + a*y_h;x_h = x_0 + h*x_e3;z_h = z_0 + h*z_e3;y_e4 = c*(y_0 + h*y_e2) + (c - a)*x_h - x_h*z_h;z_e4 = -b*(z_0 + h*z_e2) + x_h*y_h;%叠代x_1 = x_0 + 1/6*h*(x_e1 + 2*x_e2 +2*x_e3 + x_e4);y_1 = y_0 + 1/6*h*(y_e1 + 2*y_e2 +2*y_e3 + y_e4);z_1 = z_0 + 1/6*h*(z_e1 + 2*z_e2 +2*z_e3 + z_e4);X = [X,x_1];Y = [Y,y_1];Z = [Z,z_1];x_0 = x_1;y_0 = y_1;z_0 = z_1;endX = X(step2+1:end);Y = Y(step2+1:end);Z = Z(step2+1:end);figure(1);plot3(Z(1000:end),Y(1000:end),X(1000:end));grid onxlabel('x');ylabel('y');zlabel('z');这个应该是可以借鉴的。
(完整word版)数学建模实训报告
目录实训项目一线性规划问题及lingo软件求解 (1)实训项目二lingo中集合的应用…………………………………………。
7实训项目三lingo中派生集合的应用 (9)实训项目四微分方程的数值解法一 (13)实训项目五微分方程的数值解法二……………………………………。
.15实训项目六数据点的插值与拟合 (17)综合实训作品 (18)每次实训课必须带上此本子,以便教师检查预习情况和记录实验原始数据。
实验时必须遵守实验规则.用正确的理论指导实践袁必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。
这是一份重要的不可多得的自我学习资料袁它将记录着你在大学生涯中的学习和学习成果.请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新.它将推动你在人生奋斗的道路上永往直前!项目一:线性规划问题及lingo软件求解一、实训课程名称数学建模实训二、实训项目名称线性规划问题及lingo软件求解三、实验目的和要求了解线性规划的基本知识,熟悉应用LINGO解决线性规划问题的一般方法四:实验内容和原理内容一:某医院负责人每日至少需要下列数量的护士班次时间最少护士数1 6:00—10:00 602 10:00—14:00 703 14:00—18:00 604 18:00—22:00 505 22:00—02:00 206 02:00—06:00 30每班的护士在值班的开始时向病房报道,连续工作8个小时,医院领导为满足每班所需要的护士数,最少需要多少护士。
内容二:内容三五:主要仪器及耗材计算机与Windows2000/XP系统;LINGO软件六:操作办法与实训步骤内容一:考虑班次的时间安排,是从6时开始第一班,而第一班最少需要护士数为60,故x1>=60 ,又每班护士连续工作八个小时,以此类推,可以看出每个班次的护士可以为下一个班次工作四小时,据此可以建立如下线性规划模型:程序编程过程:min=x1+x2+x3+x4+x5+x6;x1〉=60;x1+x2〉=70;x2+x3>=60;x3+x4〉=50;x4+x5〉=20;x5+x6〉=30;编程结果:Global optimal solution found.Objective value:150.0000 Infeasibilities: 0。
实验四:求微分方程的解
Euler 折线法
考虑一维经典初值问题
dy dx f ( x , y ) , y ( x 0 ) y0 , x [ a , b ]
基本思想:用差商代替微商
根据 Talyor 公式,y(x) 在点 xk 处有
y ( x ) y ( x k ) ( x x k ) y '( x k ) O ( x )
是一类求解法
用得较多的是 四阶R-K方法(教材第 79 页)
x k 1 x k h y 0 y ( x 0 ), y k 1 y k h ( L1 2 L 2 2 L 3 L 4 )/6
r = dsolve('Dx+5*x=0','Dy-3*y=0', ... 'x(0)=1', 'y(0)=1','t') 这里返回的 r 是一个 结构类型 的数据 r.x r.y %查看解函数 x(t) %查看解函数 y(t)
dsolve的输出个数只能为一个 或 与方程个数相等。
只有很少一部分微分方程(组)能求出解析解。 大部分微分方程(组)只能利用数值方法求数值解。
Euler折线法举例(续)
解析解: y
2 5 3x e 2x 3 3
1/3
解析解
近似解
Runge-Kutta 方法
为了减小误差,可采用以下方法:
让步长 h 取得更小一些; 改用具有较高精度的数值方法:
Runge-Kutta (龙格-库塔) 方法
龙格-库塔方法
dy 2 2 y 2 x 2 x dx y(0) 1
的数值解,求解范
建模实验报告
建模实验报告摘要:本实验主要针对建模方法进行研究与探索,分别采用了数学模型、统计模型和物理模型进行建模实验。
实验结果表明,不同的建模方法对于问题的解决和分析具有不同的优势和适用性,选择合适的建模方法能够有效提高问题的解决效率和精确度。
1.引言建模是指将实际问题转化为数学模型、统计模型或物理模型等形式的一种方法。
通过建模,我们可以抽象出实际问题中的关键因素和变量,进一步分析和解决问题。
本实验将重点研究数学模型、统计模型和物理模型的建模方法,并通过实验验证其有效性和适用性。
2.数学模型的建模方法数学模型是以数学的形式描述实际问题的模型。
在本实验中,我们采用了几种常见的数学建模方法,包括代数方程模型、微分方程模型和最优化模型。
2.1 代数方程模型代数方程模型是一种通过代数方程来描述问题的模型。
我们可以采用一系列代数方程来表示问题中的变量和关系,进而通过求解方程组来得到问题的解。
在实验中,我们以一个简单的线性方程组作为例子,通过代数方程模型计算方程组的解。
2.2 微分方程模型微分方程模型是一种通过微分方程来描述问题的模型。
微分方程可以描述问题中的变量和其变化率之间的关系。
在实验中,我们以一个经典的弹簧振动模型为例,通过微分方程模型求解系统的振动频率和振幅。
2.3 最优化模型最优化模型是一种通过寻找最优解来描述问题的模型。
最优化模型可以用于解决各种优化问题,如线性规划、整数规划等。
在实验中,我们以一个简单的线性规划问题为例,通过最优化模型求解问题的最优解。
3.统计模型的建模方法统计模型是一种通过统计理论和方法来描述问题的模型。
在本实验中,我们主要研究了回归分析和时间序列分析两种常见的统计建模方法。
3.1 回归分析回归分析是一种通过建立变量之间的回归关系来描述问题的模型。
在实验中,我们以一个销售数据的回归分析为例,通过建立销售额和广告投入之间的回归关系,预测未来的销售额。
3.2 时间序列分析时间序列分析是一种通过统计和数学方法来描述时间序列的模型。
常微分方程数学建模案例分析
常微分方程数学建模案例分析假设我们要研究一个简单的生物系统:一种细菌的生长过程。
我们知道,细菌的生长通常可以描述为以指数速度增长的过程。
为了建立一个数学模型,我们首先需要确定一些基本假设和已知信息。
基本假设:1.我们假设细菌的生长速度与细菌的数量成正比。
2.我们假设细菌的死亡速率与细菌的数量成正比。
已知信息:1.我们已经知道在初始时刻,细菌的数量为N0个。
2.我们已经知道在初始时刻的细菌数量的增长速率为r个/单位时间。
3.我们已经知道在初始时刻的细菌数量的死亡速率为d个/单位时间。
接下来,我们将建立一个常微分方程模型来描述细菌数量的变化。
假设t表示时间,N(t)表示时间t时刻的细菌数量,则我们可以得到以下微分方程:dN/dt = rN - dN这个方程的含义是,细菌数量的变化率等于细菌的增长速率减去细菌的死亡速率。
如果我们将细菌的增长速率和死亡速率设为常数r和d,则上述方程可以进一步简化为:dN/dt = (r-d)N解这个微分方程,我们可以得到细菌数量随时间变化的函数N(t)。
根据初值条件N(0)=N0,我们可以求解该方程并得到解析解:N(t) = N0 * exp((r-d)t)上述解析解告诉我们,细菌数量随时间以指数速度增长。
这与我们的基本假设相符。
然而,对于复杂的系统,往往很难获得精确的解析解。
在这种情况下,我们可以使用数值方法来求解微分方程。
常见的数值方法包括欧拉法、改进的欧拉法和四阶龙格-库塔法等。
这些方法基于近似计算的原理,通过迭代逼近解。
在我们的细菌生长模型中,我们可以使用数值方法来计算细菌数量随时间的变化。
我们可以选择欧拉法,它是一种简单而直观的数值方法。
欧拉法的迭代公式为:N(t+h)=N(t)+h*(r-d)N(t)其中,N(t)是在时间t时刻的细菌数量,N(t+h)是在时间(t+h)时刻的细菌数量,h是时间间隔。
我们可以选择一个足够小的时间间隔h,并迭代使用欧拉法来计算细菌数量的近似解。
数学建模解偏微分方程
数学建模解偏微分方程
摘要:
1.数学建模简介
2.偏微分方程的基本概念
3.解偏微分方程的方法
4.数学建模在实际应用中的案例
5.总结与展望
正文:
数学建模是一种用数学方法解决实际问题的过程,它涉及到多个领域,如物理学、生物学、经济学等。
在这个过程中,偏微分方程是一类非常重要的数学模型,用于描述各种自然现象和工程问题。
本文将简要介绍数学建模解偏微分方程的相关知识。
首先,我们需要了解偏微分方程的基本概念。
偏微分方程是一种包含多个变量的微分方程,可以用来描述各种物理现象,如波动、热传导、电磁场等。
根据偏微分方程的性质,可以将其分为多种类型,如线性偏微分方程、非线性偏微分方程、椭圆型偏微分方程、双曲型偏微分方程等。
解偏微分方程是数学建模的关键步骤之一。
根据偏微分方程的类型和问题的具体条件,可以采用不同的方法求解。
常用的方法有分离变量法、矩方法、有限元法、有限差分法等。
这些方法各有优缺点,需要根据实际情况进行选择。
数学建模在实际应用中具有广泛的应用。
例如,在天气预报中,可以通过
数学模型预测未来的天气状况;在生物医学领域,可以通过数学模型研究病毒传播、药物代谢等问题;在经济学中,可以通过数学模型分析市场供求、价格波动等现象。
这些实际问题都可以转化为偏微分方程或相关数学模型进行求解。
总之,数学建模解偏微分方程是一种重要的数学方法,可以用来解决实际问题。
了解偏微分方程的基本概念和解法,以及数学建模在实际应用中的案例,有助于我们更好地应用数学知识解决实际问题。
求微分方程数值解
求微分方程数值解
微分方程数值解是一种数学方法,用于解决一些复杂的微分方程,特别是那些无法通过解析方法求解的微分方程。
通过数值解法,我们可以得到微分方程的近似解,并且可以在计算机上进行实现,以便更好地理解和分析问题。
我们需要将微分方程转化为差分方程,这样就可以利用数值方法进行求解。
差分方程是一种以离散形式表示微分方程的方法,通过近似替代微分表达式,将连续问题转化为离散问题,从而实现计算机求解。
常见的数值方法包括欧拉方法、龙格-库塔方法等,它们通过不断迭代求解差分方程,逼近微分方程的解。
在应用数值解法求解微分方程时,需要注意选择合适的步长和迭代次数,以确保数值解的准确性和稳定性。
步长过大会导致数值误差增大,步长过小则会增加计算量,影响计算效率。
因此,需要在准确性和效率之间寻找平衡点,选择合适的参数进行计算。
在使用数值解法时,还需要考虑边界条件和初值条件的设定。
这些条件对于微分方程的求解至关重要,不同的条件设定可能会导致不同的数值解,甚至无法得到有效的解。
因此,在进行数值计算之前,需要对问题进行充分的分析和理解,确定合适的条件,以确保数值解的准确性和可靠性。
总的来说,微分方程数值解是一种强大的工具,可以帮助我们解决
复杂的微分方程,探索未知的领域。
通过合理的数值方法和参数选择,我们可以得到准确的数值解,从而更好地理解和应用微分方程的理论。
希望通过不断的探索和实践,我们可以更深入地理解微分方程数值解的原理和方法,为科学研究和工程实践提供更多有益的帮助。
数学建模中的微分方程及其应用研究
数学建模中的微分方程及其应用研究随着科技的不断发展,数学建模已经成为了一个不可或缺的工具。
数学建模是指将现实问题抽象为数学模型,通过数学方法来预测和解决问题。
微分方程是数学建模中的关键工具之一。
在本文中,我将介绍微分方程在数学建模中的重要性以及其应用研究。
一、微分方程的定义和分类微分方程是描述一个或多个未知函数及其导数之间关系的方程,通常用来描述自然现象。
微分方程可以分为常微分方程和偏微分方程两种。
常微分方程是指只涉及一个自变量的导数的方程,例如:$\frac{dy}{dx}= f(x,y)$偏微分方程是指涉及多个自变量的导数的方程,例如:$\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}=0$二、微分方程在数学建模中的重要性微分方程在数学建模中有着广泛的应用。
它可以用来研究自然现象中的变化关系,例如物理学中的运动规律、化学中的反应过程,甚至是医学中的疾病治疗。
通过微分方程的求解,我们可以得到有关系统的重要信息,比如系统的稳定性、解的性质、系统的动态行为等等。
三、常微分方程在数学建模中的应用常微分方程是数学建模中最常见的工具之一。
在数学建模中,解决一个常微分方程通常需要以下步骤:1. 根据问题描述建立数学模型。
2. 对模型中的常微分方程进行求解。
3. 通过解析解或数值解来得到所需的结果。
以下是常微分方程在数学建模中的一些应用:1. 表示天体运动的牛顿运动定律。
牛顿运动定律可以用一个常微分方程来描述:$m\frac{d^2x}{dt^2}= -G\frac{Mm}{r^2}$其中,$m$ 是天体的质量,$M$ 是太阳的质量,$r$ 是天体和太阳之间的距离,$G$ 是万有引力常数,$x$ 是天体相对太阳的位置。
通过求解这个方程,我们可以得到天体的运动轨迹。
2. 描述弹簧振动的简谐运动。
弹簧振动可以用一个常微分方程来描述:$m\frac{d^2x}{dt^2}= -kx$其中,$m$ 是弹簧质量,$k$ 是弹簧的弹性系数,$x$ 是弹簧相对平衡位置的偏移量。
数学建模实验报告
在下面的题目中选做100分的题目,给出详略得当的答案。
一.通过举例简要说明数学建模的一般过程或步骤。
(15分)答:建立数学模型的方法大致有两种,一种是实验归纳的方法,即根据测试或计算数据,按照一定的数据,按照一定的数学方法,归纳出系统的数学模型;另一种是理论分析的方法,具体步骤有五步(以人口模型为例):1、明确问题,提出合理简化的假设:首先要了解问题的实际背景,明确题目的要求,收集各种必要的信息2、建立模型:据所做的假设以及事物之间的联系,构造各种量之间的关系。
(查资料得出数学式子或算法)。
3、模型求解:利用数学方法来求解上一步所得到的数学问题,此时往往还要做出进一步的简化或假设。
注意要尽量采用简单的数学公具。
例如:马尔萨斯模型,洛杰斯蒂克模型4、模型检验:根据预测与这些年来人口的调查得到的数目进行对比检验5、模型的修正和最后应用:所建立的模型必须在实际应用中才能产生效益,根据预测模型,制定方针政策,以实现资源的合理利用和环境的保护。
二.把一张四条腿等长的正方形桌子放在稍微有些起伏的地面上,通常只有三只脚着地,然而只需稍为转动一定角度,就可以使四只脚同时着地,即放稳了。
(1) 请用数学模型来描述和证明这个实际问题; (2)讨论当桌子是长方形时,又该如何描述和证明?(15分)答:模型假设:1.椅子四条腿一样长,椅脚与地面的接触部分相对椅子所占的地面面积可视为一个点。
2.地面凹突破面世连续变化的,沿任何方向都不会出现间断(没有向台阶那样的情况),即地面可看作数学上的连续曲面。
3.相对椅脚的间距和椅子腿的长度而言,地面是相对平坦的,即使椅子在任何位置至少有三条腿同时着地。
4.椅子四脚连线所构成的四边形是圆内接四边形,即椅子四脚共圆。
5.挪动仅只是旋转。
我们将椅子这两对腿的交点作为坐标原点,建立坐标系,开始时AC、BD这两对腿都在坐标轴上。
将AC和BD这两条腿逆时针旋转角度θ。
记AC到地面的距离之和为f(θ)。
数学建模解偏微分方程
数学建模解偏微分方程是指建立数学模型,并通过一系列的数学操作,如离散化,代码实现和可视化,来求解复杂的偏微分方程问题。
这些偏微分方程问题主要包括数学物理方程、偏微分方程数值模拟等。
在解决这些问题时,有许多数学工具和方法可以使用。
首先,建立数学模型是解决偏微分方程的第一步。
这包括根据实际问题的性质,构造相应的偏微分方程,并确定其定解条件。
例如,在求解数学物理方程时,我们可以采用分离变量法,对问题进行分类,并根据具体情况选择合适的数学模型。
接下来,离散化是将偏微分方程转化为离散形式的过程,这是求解偏微分方程的关键步骤。
它通过对偏微分方程进行数值积分,把连续的偏微分方程转化为离散的方程,从而实现用计算机进行求解。
在离散化的过程中,我们可以选择有限差分方法、有限元方法和有限体积方法等不同的离散方法,其中有限差分方法是最早采用的方法,有限元方法利用变分原理和分片多项式插值,具有求解区域灵活、单元类型灵活、程序代码通用等特点。
然后,代码实现是使用计算机程序来实现我们所建立的离散化偏微分方程,以便进行高效计算。
在Python中,有许多库可用于此,如SymPy、SciPy和FEniCS等等,这使得我们可以方便地编写和调试代码。
最后,可视化是将计算结果以图像、曲线或表格等形式表示出来,以方便人们理解和分析。
在可视化的过程中,我们可以使用Matplotlib,NumPy等绘图库,生成漂亮的图像和图表,这对于理解和分析偏微分方程的解具有很大的帮助。
总之,数学建模解偏微分方程是一个复杂的过程,需要我们综合运用数学工具和方法,如建模、离散化、代码实现和可视化等。
在求解过程中,我们需要根据问题的性质和具体情况,灵活选择不同的数学模型和离散方法,以便提高计算的准确性和效率。
数学建模中的微分方程求解
数学建模中的微分方程求解数学建模是将真实世界中的问题抽象成数学模型,利用数学方法求解并得出结论的过程。
微分方程作为数学建模中最常用的数学工具之一,广泛应用于物理、生物、工程等领域,成为数学建模不可或缺的一部分。
本文将着重介绍微分方程在数学建模中的求解方法以及常见的数学模型。
一、常见的微分方程求解方法(一) 分离变量法分离变量法是最基本的微分方程求解方法之一。
对于形如$ \frac{dy}{dx} = f(x)g(y) $的一阶微分方程,我们可以将其分离为$ \frac{dy}{g(y)} = f(x) dx $,进而求解出$ y $的解析解。
例如,对于简单的一阶线性微分方程$ \frac{dy}{dx} + p(x)y = q(x) $,我们可以将其写成$ \frac{dy}{dx} = -p(x)y + q(x) $,然后将$ y $和$ x $分隔开来,即$ \frac{dy}{-p(x)y+q(x)} = dx $,最后将分子和分母积分得到$ y $的解析解。
但是,在实际问题中的微分方程很难一步到位地完成分离变量,需要结合其他的方法。
(二) 特解法特解法是一种特殊的微分方程求解方法,它适用于某些特殊的微分方程。
特解法的思想是先猜出通解的一部分,然后再根据该猜测解答出剩余的部分,得到最终的通解。
例如,对于形如$ y'' + ay' + by = f(x) $的二阶非齐次微分方程,我们可以先猜测一个特解$ y_p $,然后再求出方程的通解$ y = y_c + y_p $,其中$ y_c $是齐次方程的通解。
特解法在实际问题中应用广泛,但对特定问题的适用性并不一定好。
(三) 变量代换法变量代换法是另一种常见的微分方程求解方法,它常用于解决高阶微分方程或无法通过分离变量法解决的微分方程。
变量代换法的思想是将微分方程通过变量代换转化为可分离变量或一阶线性微分方程的形式。
例如,对于形如$ y'' + py' + qy = 0 $的二阶齐次微分方程,我们可以通过变量代换$ z = y' $,将其转化为一阶线性微分方程。
《数学实验》实验报告——用Mathematica软件解微分方程
例1
求解下列微分方程: 1)
y 2 (1 y) (2 y) 2
In[1]:= DSolve[(y[x]^2)(1-y'[x]) (2-y'[x])^2,y[x],x] Out[1]=
书中结果为: y x c 1/( x c) ,其中 c 为任意常数。 y z 2) z y In[1]:= DSolve[{y'[x] z[x],z'[x] -y[x]},{y[x],z[x]},x] Out[1]= {{y[x]C[1] Cos[x]+C[2] Sin[x],z[x]C[2] Cos[x]-C[1] Sin[x]}} 3)
中 1 2 3 为任意常数。 例 2 求常微分方程 y′= x2 + y2,满足初始条件 y(0)= 0 的数值解。 In[1]:= s1=NDSolve[{y'[x]==x^2+y[x]^2,y[0]==0},y,{x,-2,2}] Out[1]= {{yInterpolatingFunction[{{-2.,2.}},<>]}} In[2]:= y=y/.s1[[1]] Out[2]= InterpolatingFunction[{{-2.,2.}},<>] In[3]:= Plot[y[x],{x,-2,2},AspectRatioAutomatic,PlotRange{-1.5,1.5}]
例1 求解下列微分方程: 1) 2) 3)
y 2 (1 y) (2 y) 2
y z z y y 3 y 3 y y ( x 5)e x
例2 求常微分方程 y′= x2 + y2,满足初始条件 y(0)= 0 的数值解 例3 求函数 t 5 和 et sint 的拉氏变换 例 4 用拉氏变换解微分方程:
数学建模实验答案_微分方程模型
数学建模实验答案_微分⽅程模型实验07 微分⽅程模型(2学时)(第5章微分⽅程模型)1.(验证)传染病模型2(SI 模型)p136~138传染病模型2(SI 模型):0(1),(0)dik i i i i dt=-= 其中,i (t )是第t 天病⼈在总⼈数中所占的⽐例。
k 是每个病⼈每天有效接触的平均⼈数(⽇接触率)。
i 0是初始时刻(t =0)病⼈的⽐例。
1.1 画~dii dt曲线图p136~138取k =0.1,画出i dt di ~的曲线图,求i 为何值时dtdi达到最⼤值,并在曲线图上标注。
提⽰:fplot, fminbnd, plot, text, title, xlabel 1)画曲线图⽤fplot 函数,调⽤格式如下: fplot(fun,lims)fun 必须为⼀个M ⽂件的函数名或对变量x 的可执⾏字符串。
若lims取[xmin xmax],则x轴被限制在此区间上。
若lims取[xmin xmax ymin ymax],则y轴也被限制。
本题可⽤fplot('0.1*x*(1-x)',[0 1.1 0 0.03]);2)求最⼤值⽤求解边界约束条件下的⾮线性最⼩化函数fminbnd,调⽤格式如下:x=fminbnd('fun',x1,x2)fun必须为⼀个M⽂件的函数名或对变量x的可执⾏字符串。
返回⾃变量x在区间x1本题可⽤x=fminbnd('-0.1*x*(1-x)',0,1)y=0.1*x*(1-x)3)指⽰最⼤值坐标⽤线性绘图函数plot,调⽤格式如下:plot(x1,y1, '颜⾊线型数据点图标', x2,y2, '颜⾊线型数据点图标',…)本题可⽤hold on; %在上⾯的同⼀张图上画线(同坐标系)plot([0,x],[y,y],':',[x,x],[0,y],':');4)图形的标注使⽤⽂本标注函数text,调⽤格式如下:格式1text(x,y,⽂本标识内容, 'HorizontalAlignment', '字符串1')x,y给定标注⽂本在图中添加的位置。
数学实验与数学建模MATLAB实验报告78
数学实验与数学建模MATLAB实验报告78数学实验与数学建模实验报告学院:信息科学与⼯程学院专业班级:姓名:学号:习题七1.求下列微分⽅程的通解(1)x y x y dx dy -+=(2)yxx y y +=cos ' (3)(xcosy+sin2y )y`=1 (4)x ey y y x2cos 3=-'+''(5) x y e y y x 2cos 3'''=-+解:(1)dsolve('Dy=(y+x)/(y-x)','x')(2)dsolve('Dy=cos(y/x)+x/y','x')(3)dsolve('(x*cos(y)+sin(2*y))*Dy=1','x')(4)dsolve('D2y+3*Dy-y=exp(x)*cos(2*x)','x')(5)dsolve('D2y+3*Dy-y=exp(x*cos(2*x))','x')ans=exp(1/2*(-3+13^(1/2))*x)*C2+exp(-1/2*(3+13^(1/2))*x)*C1-1/13*13^(1/2)*(-Int(exp (1/2*x*(3-13^(1/2)+2*cos(2*x))),x)*exp(x*13^(1/2))+Int(exp(1/2*x*(3+13^(1/2)+2*cos(2*x))),x))*exp(-1/2*(3+13^(1/2))*x) 2.求下列初值问题的解(1)==-++-+=10)2(212222y x y y x x dx dy xy xy (2)????===++==V dt dx x x a t t x dt dx n dt x d 000222,02解:(1) dsolve('x^2+2*x*y-y^2+(y^2+2*x*y-x^2)*Dy=0','y(1)=1','x')(2) dsolve('D2x+2*n*Dx+a^2*x=0','x(0)=x0','Dx(0)=V0','t')ans =1/2*(n*x0+(n^2-a^2)^(1/2)*x0+V0)/(n^2-a^2)^(1/2)*exp((-n+(n^2-a^2)^(1/2))*t )-1/2*(n*x0-(n^2-a^2)^(1/2)*x0+V0)/(n^2-a^2)^(1/2)*exp((-n-(n^2-a^2)^(1/2))*t)3.求微分⽅程组=--=++t te y x dtdy e y x dtdx 235的通解.解:[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=exp(2*t)','t')x =-4*exp((-1+15^(1/2))*t)*C2+exp((-1+15^(1/2))*t)*C2*15^(1/2)-4*exp(-(1+15^(1/2))*t)*C1-exp(-(1+15^(1/2))*t)*C1*15^(1/2)+2/11*exp(t)+1/6*exp(2*t) y =exp((-1+15^(1/2))*t)*C2+exp(-(1+15^(1/2))*t)*C1-1/11*exp(t)-7/6*exp(2*t) 4.求下列初值问题的解(1)⽅程组+=+=11x dtdy y dt dx满⾜=-=0)0(2)0(y x 的特解。
Matlab数学建模实验报告
数学实验报告实验序号:实验一日期:实验序号:实验二日期:实验序号: 实验三 日期:班级 姓名 学号实验 名称架设电缆的总费用问题背景描述:一条河宽1km ,两岸各有一个城镇A 与B ,A 与B 的直线距离为4km ,今需铺设一条电缆连接A 于B ,已知地下电缆的铺设费用是2万元/km ,水下电缆的修建费用是4万元/km 。
实验目的:通过建立适当的模型,算出如何铺设电缆可以使总花费最少。
数学模型:如图中所示,A-C-D-B 为铺设的电缆路线,我们就讨论a=30度,AE (A 到河岸的距离)=0.5km ,则图中:DG=4-AC cos b -1/tan c ; BG=0.5km AC=AE/sin bCD=EF/sin c=1/sin c BD=BG D 22G则有总的花费为:W=2*(AC+BD )+4*CD ;我们所要做的就是求最优解。
实验所用软件及版本:Matlab 7.10.0实验序号: 实验四 日期:班级 姓名 学号实验 名称慢跑者与狗问题背景描述:一个慢跑者在平面上沿曲线25y x 22=+以恒定的速度v 从(5,0)起逆时钟方向跑步,一直狗从原点一恒定的速度w ,跑向慢跑者,在运动的过程中狗的运动方向始终指向慢跑者。
实验目的:用matlab 编程讨论不同的v 和w 是的追逐过程。
数学模型:人的坐标为(manx,many ),狗的坐标为(dogx,dogy ),则时间t 时刻的人的坐标可以表示为manx=R*cos(v*t/R); many=R*sin(v*t/R);sin θ=| (many-dogy)/sqrt((manx-dogx)^2+(many-dogy)^2)|;cos θ=| (manx-dogx)/sqrt((manx-dogx)^2+(many-dogy)^2)|;则可知在t+dt 时刻狗的坐标可以表示为:dogx=dogx(+/-)w* cos θ*dt; dogy=dogy(+/-)w* sin θ*dt; (如果manx-dogx>0则为正号,反之则为负号)实验所用软件及版本:Matlab 7.10.0实验序号:实验五日期:班级姓名学号两圆的相对滚动实验名称问题背景描述:有一个小圆在大圆内沿着大圆的圆周无滑动的滚动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求微分方程的解
一、实验目的及意义
1. 归纳和学习求解常微分方程(组)的基本原理和方法;
2. 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;
3. 熟悉MATLAB 软件关于微分方程求解的各种命令。
二、实验内容
1.
微分方程及方程组的解析求解法; 2.
微分方程及方程组的数值求解法——欧拉、欧拉改进算法; 3.
直接使用MATLAB 命令对微分方程(组)进行求解(包括解析解、数值解); 4. 利用图形对解的特征作定性分析。
三、实验步骤
1.
开启软件平台——MATLAB ,开启MATLAB 编辑窗口; 2.
根据微分方程求解步骤编写M 文件 3.
保存文件并运行; 4.
观察运行结果(数值或图形); 5. 根据观察到的结果和体会写出实验报告。
四、实验要求与任务
根据实验内容和步骤,完成以下实验,要求写出实验报告
1. 求微分方程0sin 2')1(2=-+-x xy y x 的通解.
2. 求微分方程x e y y y x sin 5'2''=+-的通解.
3. 求微分方程组
在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形.
4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的差异.
5. 用 Euler 折线法求解微分方程初值问题
的数值解(步长h 取0.1),求解范围为区间[0,2].
6. 用四阶 Runge-Kutta 法求解微分方程初值问题
的数值解(步长h 取0.1),求解范围为区间[0,3].
五. 程序代码及运行结果(经调试后正确的源程序)
1. 求微分方程0sin 2')1(2=-+-x xy y x 的通解.
程序代码:
syms x y
fprintf('通解为')
y=dsolve('(x^2-1)*Dy+2*x*y-sin(x)=0','x')
运行结果:
通解为
y =
(-cos(x)+C1)/(x^2-1)
2. 求微分方程x e y y y x sin 5'2''=+-的通解.
程序代码:
syms x y
fprintf('通解为')
y=dsolve('D2y-2*Dy+5*y=exp(x)*sin(x)','x')
运行结果:
通解为
y =
-1/4*exp(x)*cos(2*x)*sin(x)+1/12*exp(x)*cos(2*x)*sin(3*x)-1/12*exp(x)*sin(2*x)*cos(3*x)+1/4*exp(x)*sin(2*x)*cos(x)+C1*exp(x)*cos(2*x)+C2*e xp(x)*sin(2*x)
3. 求微分方程组
⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dt
dy y x dt dx 在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形. 程序代码:
syms x y t
[x,y]=dsolve('Dx+x+y=0','Dy+x-y=0','x(0)=1','y(0)=0','t')
ezplot(x,y,[0,2]);
运行结果:
x =
1/2*exp(2^(1/2)*t)+1/4*2^(1/2)*exp(-2^(1/2)*t)-1/4*2^(1/2)*exp(2^(1/2)*t)+1/2*exp(-2^(1/2)*t)
y =
1/4*2^(1/2)*exp(-2^(1/2)*t)-1/4*2^(1/2)*exp(2^(1/2)*t)
4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似
解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的差异. 程序代码:
M函数文件verderpol.m:
function xprime=verderpol(t,x)
xprime=[-x(1)-x(2); x(2)-x(1)];
在程序中调用此函数:
clear;
y0=[1;0];
[t,x]=ode45('verderpol',[0,2],y0); plot(x(:,1),x(:,2),'r-');
hold on
clear;
y0=[1;0];
[t,x]=ode23('verderpol',[0,2],y0); plot(x(:,1),x(:,2),'b-');
运行结果:
5. 用Euler 折线法求解微分方程初值问题
的数值解(步长h取0.1),求解范围为区间[0,2].
程序代码:
clear
f=sym('y-(12*x^2)/y^3');
a=0; b=2;
h=0.1;
n=(b-a)/h+1;
x=0; y=1;
szj=[x,y];
for i=1:n-1
y=y+h*subs(f,{'x','y'},{x,y});
x=x+h;
szj=[szj;x,y];
end
szj
plot(szj(:,1),szj(:,2),'or-')
运行结果:
szj =
0 1.0000
0.1000 1.1000
0.2000 1.2019
0.3000 1.2934
0.4000 1.3728
0.5000 1.4359
0.6000 1.4781
0.7000 1.4921
0.8000 1.4644
0.9000 1.3662
1.0000 1.1217
1.1000 0.3836
1.2000 -25.3054
1.4000 -30.6193
1.5000 -33.6812
1.6000 -37.0492
1.7000 -40.7541
1.8000 -44.8294
1.9000 -49.3123
2.0000 -54.2435
6. 用四阶Runge-Kutta 法求解微分方程初值问题
的数值解(步长h取0.1),求解范围为区间[0,3].程序代码:
clear;
f=sym('y-exp(x)*cos(x)');
a=0; b=3; h=0.1;
n=(b-a)/h+1;
x=0; y=1;
szj=[x,y];
for i=1:n-1
l1=subs(f,{'x','y'},{x,y});
l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2});
l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2});
l4=subs(f,{'x','y'},{x+h,y+l3*h});
y=y+h*(l1+2*l2+2*l3+l4)/6;
x=x+h;
szj=[szj;x,y];
end
szj
plot(szj(:,1),szj(:,2), 'dg-')
运行结果:
szj =
0 1.0000
0.1000 0.9948
0.2000 0.9787
0.3000 0.9509
0.4000 0.9109
0.5000 0.8583
0.6000 0.7933
0.7000 0.7165
0.8000 0.6290
0.9000 0.5329
1.0000 0.4309
1.1000 0.3268
1.2000 0.2256
1.3000 0.1337
1.5000 0.0112
1.6000 0.0021
1.7000 0.0456
1.8000 0.1582
1.9000 0.3590
2.0000 0.6702
2.1000 1.1171
2.2000 1.7283
2.3000 2.5364
2.4000
3.5774
2.5000 4.8916
2.6000 6.5231
2.7000 8.5204
2.8000 10.9359
2.9000 1
3.8260
3.0000 17.2510
六.实验总结
本次实验的目的是归纳和学习求解常微分方程(组)的基本原理和方法;掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;熟悉MATLAB 软件关于微分方程求解的各种命令。
实验中,我们了解和熟悉了微分方程及方程组的解析求解法;微分方程及方程组的数值求解法——欧拉、欧拉改进算法;直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解)以及利用图形对解的特征作定性分析。
经过多次MATLAB实验,对MATLAB的语法也越来越熟悉,对相关的数学思想也有了更多了解。
学生签名:
年月日
七.教师评语及成绩
教师签名:
年月日。