数学实验 实验2 微分方程
- 格式:doc
- 大小:171.50 KB
- 文档页数:7
2微分方程实验1、微分方程稳定性分析绘出下列自治系统相应的轨线,并标出随 t 增加的运动方向,确定平■衡点, 并按稳定的、渐近稳定的、或不稳定的进行分类:解:(1)由 f (x ) =x=0, f (y ) =y=0;可得平衡点为(0,0),___ 1 0系数矩阵A,求得特征值入1=1,入2=1;0 1p=-(入1+入2)=-2<0 , q=入1入2=1>0;对照稳定性的情况表,可知平■衡点(0, 0) 是不稳定的。
图形如下:(2)如上题可求得平衡点为(0,0 ),特征值入1=-1,入2=2;p=-(入1+入2)=-1<0 , q-入1入2=-2<0;对照稳定性的情况表,可知平■衡点(0, 0) 是不稳定的。
其图形如下:dx⑴dt dtx, y;dxdtdydt dx x, ⑶尸 2y ;晋 dx y, (4) ? 2x;也 dtx+1, 2y.(3) 如上题可求得平■衡点为(0,0 ),特征值入1=0 + 1.4142i,入2=0 -1.4142i; p=-(入1+入2)= 0, q-入1入2=1.4142>0;对照稳定性的情况表,可知平■衡点(0, 0)是不稳定的。
其图形如下:(4) 如上题可求得平衡点为(1,0 ),特征值入1=-1,入2=-2;p=-(入1+入2)= 3>0, q=入1入2=2>0;对照稳定性的情况表,可知平■衡点(1, 0) 是稳定的。
其图形如下:2、种群增长模型一个片子上的一群病菌趋向丁繁殖成一个圆菌落.设病菌的数目为N,单位成员的增长率为r1,则由Malthus生长律有竺r1 N,但是,处丁周界表面的dt那些病菌由丁寒冷而受到损伤,它们死亡的数量与N2成比例,其比例系数为r2, 求N满足的微分方程.不用求解,图示其解族.方程是否有平衡解,如果有,是否为稳定的?解:由题意很容易列出N满足的微分方程:坐r1N r2N; f(N)dt令f(N)=O,可求得方程的两个平■衡点N1=0,N2=「22/r i21 1d2N 1 5 52 (r1 r2N 2) (r1N r2N 2)dt 2进而求得A d2N 令r dt2 2 0可求得N=r2 /4r〔则N=N1 N=N2 N=r22/4r i2可以把第一象限划为三部分,且从下到上三部分中分0,冬dt2.2 2 c dN cdN c dN cdN 0, ;—0, —r 0; —0, ―rdt dt dt dt则可以画出N (t) 的图形,即微分方程的解族,如下图所示:由图形也可以看出,对丁方程的两个平■衡点,其中N1=0是不稳定的;N2=^2 /「;是稳定的o3、有限资源竞争模型1926年Volterra 提出了两个物种为共同的、有限的食物来源而竞争的模型当[b MX h 2X 2)]x dt dX2 电 2(h i X i h 2X 2)]X 2dt假设也 坦,称垣为物种i 对食物不足的敏感度,(1) 证明当x1(t0)>0时,物种2最终要灭亡; (2) 用图形分析方法来说明物种 2最终要灭亡.解:(1)由上述方程组 f (x1) =[b 1〔S' h 2x 2)]x 1=0,f (x2)=电2 (h 1X 1h 2X 2)]X 2=0,可得方程的平■衡点为R (0,0), P 1 (E,0),P 2 (0, M).2 h 2对平衡点P 。
实验二: 微分方程模型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 。
实验4 常微分方程数值解分1 黄浩 43一、实验目的1.掌握用MATLAB软件求微分方程初值问题数值解的方法;2.通过实例学习用微分方程模型解决简化的实际问题;3.了解欧拉方法和龙格-库塔方法的基本思想和计算公式,及稳定性等概念。
二、实验内容1.《数学实验》第一版(问题2)问题叙述:小型火箭初始重量为1400kg,其中包括1080kg燃料。
火箭竖直向上发射时燃料燃烧率为18kg/s,由此产生32000N的推力,火箭引擎在燃烧用尽时关闭。
设火箭上升时空气阻力正比于速度的平方,比例系数为0.4kg/m,求引擎关闭瞬间火箭的高度、速度、加速度,及火箭到达最高点时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。
模型转换及实验过程:(一)从发射到引擎关闭设火箭总质量为m,上升高度为h,瞬时速度为v,瞬时加速度为a,由燃料燃烧时间t=60s,可列如下的方程组:t∈[0,60]−9.8因此,上述方程为二元常微分方程组,选择t为自变量,h和v为因变量进行分析。
初值条件:h(0)=0 ,v(0)=0对上述模型,使用ode45()函数求数值解(程序见四.1、四.2),结果如下:由上表可知,引擎关闭瞬间,火箭的高度为12189.78m,速度为267.26m/s,加速度为0.9170m/s2,火箭至此已飞行60s而高度、速度、加速度随时间的变化曲线如下:(二)从引擎关闭到最高点设引擎关闭时,t1=0,由上一问的结果可知,h(0)=12189.78m,v(0)= 267.26m/s,m=320kg,则可列二元常微分方程组如下:9.8因此,可选择t1为自变量,h、v为因变量进行分析(程序见四.3、四.4),实验结果如下:由上表可知,当t1∈[11,12]时,v(t1)有零点,即该区间内某时刻火箭达到最高点。
再进行更细致的实验(程序略),设步长为0.01,观察该区间内v(t1)的零点,如下表所示:可以看出,当t1=11.30s,即总时间t=71.30s时,火箭达到最高点,高度为13115.36m,加速度为-9.8m/s2。
高数实验报告引言:高等数学是大学理工科专业中必修的一门基础课程,通过实验可以帮助学生更好地理解和应用数学知识。
本实验报告旨在介绍高等数学实验的目的、原理和实验结果,以及对实验过程的详细阐述。
通过实验,学生可以深入了解高等数学的概念和方法,并提高其数学建模和问题解决的能力。
概述:一、数列与数学归纳法:1.数列的概念和性质2.等差数列和等比数列的求和公式3.斐波那契数列4.数学归纳法的原理和应用5.数学归纳法在证明数学命题中的应用二、函数与导数:1.函数的概念和分类2.复合函数的求导法则3.高阶导数与泰勒展开4.特殊函数的导数求解5.函数与导数在实际问题中的应用三、不定积分与定积分:1.不定积分的定义和性质2.基本初等函数的不定积分3.分部积分和换元积分法4.定积分的概念和性质5.定积分在几何、物理等领域中的应用四、微分方程:1.微分方程的基本概念和分类2.一阶常微分方程的解法3.二阶常微分方程的解法4.高阶常微分方程与常系数线性齐次微分方程5.微分方程在科学和工程领域的应用五、级数与幂级数:1.级数的概念和性质2.级数的收敛与发散3.幂级数的收敛域4.幂级数的求和与展开5.幂级数在数学分析中的应用总结:通过本次高等数学实验,我们对数列与数学归纳法、函数与导数、不定积分与定积分、微分方程以及级数与幂级数等知识进行了深入了解和实践。
实验过程中,我们运用数学原理和方法解决了一系列数学问题,并将理论知识应用到实际问题解决中。
通过实验,我们不仅加深了对高等数学的理解和掌握,也提高了自己的数学建模和问题解决能力。
这次实验为我们的数学学习和应用提供了宝贵的经验和机会。
引言概述本文是一篇关于高数实验的报告,主要探讨了高数实验的意义、目的、实验方法以及实验结果和分析等内容。
高数实验是大学高数课程的重要组成部分,通过实验能够帮助学生更好地理解和应用数学知识,提高解决实际问题的能力。
本文将从实验目的、实验方法和实验结果三个方面进行详细阐述,并对实验进行总结与分析。
求微分方程的解一、 问题背景实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精确解),Matlab 有专门的函数可以用. 这里主要研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve('equ1','equ2',…):Matlab 求微分方程的解析解.equ1、equ2、…为方程(或条件).写方程(或条件)时用 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 为命令 ode45、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 %line1 y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2 diff(y,x)+2*x*y-x*exp(-x^2) %line3 simplify(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 dtdx 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,1.3]);axis auto微分方程的特解(式子特别长)以及解函数的图形均略. 2. 用ode23、ode45等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解).例4:求解微分方程初值问题⎪⎩⎪⎨⎧=++-=1)0(2222y xx y dx dy 的数值解,求解范围为区间[0, 0.5].fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1); x'; y';plot(x,y,'o-') >> x' ans =0.0000 0.0400 0.0900 0.1400 0.1900 0.2400 0.2900 0.3400 0.3900 0.4400 0.4900 0.5000 >> y' ans =1.0000 0.9247 0.8434 0.7754 0.7199 0.6764 0.6440 0.6222 0.6105 0.6084 0.6154 0.6179 图形结果为图 2.图2例 5:求解描述振荡器的经典的 Ver der Pol 微分方程.7,0)0(',1)0(,0)1(222====+--μμy y y dt dy y dt y d分析:令,,121dt dx x y x ==则.)1(,1221221x x x dtdx x dt dx --==μ 先编写函数文件verderpol.m :function xprime = verderpol(t,x) global mu;xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)]; 再编写命令文件vdp1.m : 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 dxdy化成一个代数方程,即差分方程,主要步骤是用差商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.4),求解范围为区间[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. 数据结果为:0 1.0000 0.4000 1.4000 0.8000 2.1233 1.2000 3.1145 1.6000 4.4593 2.0000 6.3074图形结果见图4:图4特别说明:本问题可进一步利用四阶 Runge-Kutta 法求解,读者可将两个结果在一个图中显示,并和精确值比较,看看哪个更“精确”?(相应的 Matlab 程序参见附录 2).四、自己动手1. 求微分方程0sin 2')1(2=-+-x xy y x 的通解.2. 求微分方程x e y y y x sin 5'2''=+-的通解.3. 求微分方程组⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dtdy y x dtdx在初始条件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.1),求解范围为区间[0,2].6. 用四阶 Runge-Kutta 法求解微分方程初值问题⎩⎨⎧=-=1)0(,cos 'y x e y y x 的数值解(步长h 取0.1),求解范围为区间[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 hy y h x x x y y k k k k k k k k k k k k 相应的 Matlab 程序参见附录 2.试用该方法求解第5题中的初值问题. 7. 用 ode45 方法求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较两者间的差异.五、附录附录1:(fulu1.m)clearf=sym('y+2*x/y^2');a=0;b=2;h=0.4;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:(fulu2.m)clearf=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-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))。
西京学数学软件实验任务书课程名称数学软件实验班级数0901学号0912020107姓名李亚强微分方程组边值问题数值算法(打靶法,有限差分法)实验课题熟悉微分方程组边值问题数值算法(打靶法,有限差实验目的分法)运用Matlab/C/C++/Java/Maple/Mathematica等其中实验要求一种语言完成微分方程组边值问题数值算法(打靶法,有限差分法)实验内容成绩教师实验二十七实验报告1、实验名称:微分方程组边值问题数值算法(打靶法,有限差分法)。
2、实验目的:进一步熟悉微分方程组边值问题数值算法(打靶法,有限差分法)。
3、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica 等其中一种语言完成程序设计。
4、实验原理:1.打靶法:对于线性边值问题(1)⎩⎨⎧==∈=+'+''βα)(,)(],[)()()(b y a y b a x x f y x q y x p y 假设是一个微分算子使:L ()()Ly y p x y q x y '''=++则可得到两个微分方程:,,)(1x f Ly =α=)(1a y 0)(1='a y ,, (2)⇔)()()(111x f y x q y x p y =+'+''α=)(1a y 0)(1='a y ,,02=Ly 0)(2=a y 1)(2='a y ,, (3)⇔0)()(222=+'+''y x q y x p y 0)(2=a y 1)(2='a y 方程(2),(3)是两个二阶初值问题.假设是问题1y(2)的解,是问题(3)的解,且,则线性边值问2y 2()0y b ≠题(1)的解为: 。
1122()()()()()y b y x y x y x y b β-=+2.有限差分法:基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似, 积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组 , 解此方程组就可以得到原问题在离散点上的近似解。
数学建模作业(实验2微分方程实验)基本实验1.微分方程稳定性分析绘出下列自治系统相应的轨线,并标出随t 增加的运动方向,确定平衡点,并按稳定的、渐近稳定的、或不稳定的进行分类:,,,+1,(1)(2)(3)(4);2;2;2.dx dx dx dxx x y x dt dt dt dt dy dy dy dy y y x y dt dt dt dt ⎧⎧⎧⎧==-==-⎪⎪⎪⎪⎪⎪⎪⎪⎨⎨⎨⎨⎪⎪⎪⎪===-=-⎪⎪⎪⎪⎩⎩⎩⎩解答解:(1)由平衡点的定义可得,f (x )=x=0,f (y )=y=0,因此平衡点为(0,0),微分方程组的系数矩阵为1001A ⎡⎤=⎢⎥⎣⎦,显然其特征值为12=1=1λλ,;由根与系数的关系可得:1212()2010p q λλλλ=-+=-<==>,且24p q >,由平衡点与稳定性的各种情况可知,平衡点(0,0)是不稳定的。
自治系统相应轨线为:(2)由平衡点的定义可得,f (x)=-x=0,f (y )=2y=0,因此平衡点为(0,0),微分方程组的系数矩阵为-1002A ⎡⎤=⎢⎥⎣⎦,显然其特征值为12=-1=2λλ,;由根与系数的关系可得:121210-(2<0)p q λλλλ=-+=-<==,,平衡点(0,0)是不稳定的。
自治系统相应轨线为:(3)由平衡点的定义可得,f (x )=y=0,f (y )=-2x=0,因此平衡点为(0,0),微分方程组的系数矩阵为0120A ⎡⎤=⎢⎥-⎣⎦,显然其特征值为121.4142=4142=-1.i i λλ,;由根与系数的关系可得:12120 1.41420()p q λλλλ=-+===>,,由平衡点与稳定性的各种情况可知,平衡点(0,0)是不稳定的。
自治系统相应轨线为:(4)由平衡点的定义可得,f (x )=-x=0,f (y )=-2y=0,因此平衡点为(0,0),微分方程组的系数矩阵为-100-2A ⎡⎤=⎢⎥⎣⎦,显然其特征值为12==-12-λλ,;由根与系数的关系可得:1212()3020p q λλλλ=-+=>==>,且24p q >,由平衡点与稳定性的各种情况可知,平衡点(0,0)是稳定的。