数学实验:微分方程

合集下载

数学实验 Mathematic实验十 微分方程

数学实验  Mathematic实验十  微分方程

天水师范学院数学与统计学院实验报告实验项目名称微分方程所属课程名称数学实验实验类型微积分实验实验日期2011.11.23班级学号姓名成绩【实验目的】1.掌握用Mathematica求微分方程及方程组解的方法;2.学习求微分方程近似解的欧拉折线法.【实验原理】1.求解微分方程的命令DSolve.对于可以用积分方法求解的微分方程和微分方程组,可用Dsolve 命令来求其通解或特解.例DSolve[y''[x]+y'[x]-2*y[x]==0,y[x],x]如果要求初值问题,输入DSolve[{y''[x]+4y'[x]+3y[x]0,y[0]0,y'[0] 10},y[x],x]2.求微分方程数值解的命令NDSolve.对于不可以用积分方法求解的微分方程初值问题,可以用NDsolve命令NDSolve[{y'[x] y[x]^2+x^3,y[0] 0.5},y[x],{x,0,1.5}] 【实验环境】Mathematic 4【实验过程】(实验步骤、记录、数据、分析)1.欧拉折线法.例10.1 用欧拉折线法解初值问题. Clear[x ,y ,dx ,f]; x[0]=0; dx=0.1; y[0]=1;x[n_]:=x[n]=x[n-1]+dx ;y[n_]:=y[n]=y[n-1]+(1+y[n-1])*dx ; euler=Table[{x[n],y[n]},{n ,0,10}]; zhx=TableForm[euler ,TableHeadings {None ,{"x","y(Euler)"}}]Clear[g1,g2,y1,g3]; g1=Graphics[Line[euler]]; g2=ListPlot[euler]; y1[x_]=2Exp[x]-1;g3=Plot[y1[x],{x ,0,1}]; Show[g1,g2,g3,Axes True] Table[y1[x[n]]-y[n],{n ,1,10}] 2.用DSolve 命令解微分方程.例10.2 求微分方程22xxe xy y -=+'的通解.Clear[x ,y];DSolve[y'[x]+2x*y[x]x*Exp[-x^2],y[x],x]例l0.3 求微分方程0xxy y e '+-=在初始条件(1)2y e =下的特解. Clear[x ,y];DSolve[{x*y'[x]+y[x]-Exp[x]0,y[1]2E},y[x],x]例10.4 求微分方程x e y y y x 2cos 52=+'-''的通解. Clear[x ,y];DSolve[y''[x]-2y'[x]+5y[x]==Exp[x]*Cos[2x],y[x],x]//Simplify例10.5 (*example10.5*). Clear[x ,y ,t];DSolve[{x'[t]+x[t]+2y[t]==Exp[t],y'[t]-x[t]-y[t]==0,x[0]==1,y[0]==0},{x[t],y[t]},t]//Simplify 3.用NDSolve 命令求微分方程的近似解.例10.6 求初值问题:(1)(1)0,(1.2)1xy y xy y y '++-==在区间[1.2,4]上的近似解并作图.f1=NDSolve[{(1+x*y[x])*y[x]+(1-x*y[x])*y'[x]==0,y[1.2]==1},y ,{x ,1.2,4}]Plot[Evaluate[y[x]/.f1],{x ,1.2,4}] y[1.6]/.f1例10.7 求范德波尔方程2(1)0,(0)0,(0)0.5y y y y y y ''''+-+===-在区间[0,20]上的近似解.Clear[x ,y];NDSolve[{y''[x]+(y[x]^2-1)*y'[x]+y[x]==0,y[0]==0,y'[0]==-0.5},y,{x,0,20}];Plot[Evaluate[y[x]/.%],{x,0,20}]【实验结论】(结果)1.用Mathematica求微分方程及方程组解的方法;2.学习求微分方程近似解的欧拉折线法.附录1:源程序实验十微分方程第一题(1)Clear[x,y];DSolve[y''[x]+6*y'[x]+13*y[x]0,y[x],x] y x3x C2Cos2x3x C1Sin2x(2)Clear[x,y];DSolve[D[y[x],{x,4}]+2*y''[x]+y[x]0,y[x],x]//S implifyy x C2x C4Cos x C1x C3Sin x(3)Clear[x,y];DSolve[D[y[x],{x,4}]-2*y'''[x]+y''0,y[x],x]y x C1x C2x2C32x C4x3y 12(4)Clear[x,y];DSolve[y''[x]-2*y'[x]+5*y[x]Exp[x]*Sin[2*x],y[ x],x]y xx C2Cos2x x C1Sin2x18x Cos2x2Sin2x12x Cos2x x218Sin4x(5)Clear[x,y];DSolve[y''[x]-6*y'[x]+9*y[x](x+1)*Exp[3*x],y[x ],x]y x 163x3x2x36C16x C2第二题(1)Clear[x,y];DSolve[{y''[x]+4y'[x]+29y[x]0,y[0]0,y'[0]1 5},y[x],x]y x32x Sin5x(2)Clear[x,y];DSolve[{y''[x]-y[x]4*x*Exp[x],y[0]0,y'[0]1 },y[x],x]y x 12x222x22x x22x x2(3)Clear[x,y];DSolve[{y''[x]+y[x]+Sin[2x]0,y[Pi]1,y'[Pi] 1},y[x],x]y x133Cos x Sin x Sin 2x第三题Clear[x,y];DSolve[{(x^2-1)y'[x]+2*x*y[x]-Cos[x]0,y[0]1},y[x],x]y x1Sin x 1x 2Clear[x,y];g1=NDSolve[{(x^2-1)*y'[x]+2*x*y[x]-Cos[x]0,y[0]1},y,{x,0,1}]y InterpolatingFunction 0.,1.,Plot[Evaluate[y[x]/.g1],{x,0,1}]0.20.40.60.812468Graphics第四题Clear[x,y,t];DSolve[{x'[t]+5*x[t]+y[t]Exp[x],y'[t]-x[t]-3*y [t]Exp[2*x]},{x[t],y[t]},t]//Simplifyx t1210115t45t15t x15t15t2x7215t15415C115C2715415C115C2,y t1210115t15t15t x75t15t2x715C115415C2 7215t15C115415C2第五题Clear[x,y,t];DSolve[{x'[t]+3*x[t]-y[t]0,y'[t]-8*x[t]+y[t] 0,x[0]==1,y[0]4},{x[t],y[t]},t]x t t,y t4t第六题Clear[x,y];DSolve[x^2*y''[x]+x*y'[x]-4*y[x]x^3,y[x],x]y x x35C1x2x2C2第七题Clear[x,y];NDSolve[{y''[x]+x*y'[x]+y[x]0,y[1]0,y'[2]5 },y,{x,0,4}]y InterpolatingFunction0.,4.,Plot[Evaluate[y[x]/.%],{x,0,4}]50403020101234 Graphics附录2:实验报告填写说明1.实验项目名称:要求与实验教学大纲一致。

数学实验基础实验报告常微分方程

数学实验基础实验报告常微分方程

1. 分别用Euler 法和ode45解下列常微分方程并与解析解比较: (1) ,(0)1,13y x y y x '=+=<<Euler 法:function [t,y]=euler(Fun,tspan,y0,h) t=tspan(1):h:tspan(2); y(1)=y0;for i=1:length(t)-1y(i+1)=y(i)+h.*feval(Fun,t(i),y(i)); end t=t'; y=y';function f=Fun(x,y) % 常微分方程的右端函数 f=x+y;>> [x,y]=euler('Fun',[0,3],1,0.1)>> [x,y] ans =0 1.0000 0.1000 1.1000 0.2000 1.2200 0.3000 1.3620 0.4000 1.5282 0.5000 1.7210 0.6000 1.9431 0.7000 2.1974 0.8000 2.4872 0.9000 2.8159 1.0000 3.1875 1.1000 3.6062 1.2000 4.0769 1.3000 4.6045 1.4000 5.1950 1.5000 5.8545 1.6000 6.5899 1.7000 7.4089 1.8000 8.3198 1.9000 9.3318 2.0000 10.4550 2.1000 11.7005 2.2000 13.0805 2.3000 14.6086 2.4000 16.2995 2.5000 18.1694 2.6000 20.2364 2.7000 22.5200 2.8000 25.0420 2.9000 27.8262 3.0000 30.8988ode45:>> [x,y]=ode45('Fun',[0,3],1) ans =0 1.0000 0.0502 1.0528 0.1005 1.1109 0.1507 1.17460.2010 1.2442 0.2760 1.3596 0.3510 1.4899 0.4260 1.63610.5010 1.7996 0.5760 1.9817 0.6510 2.1838 0.7260 2.40740.8010 2.6544 0.8760 2.9264 0.9510 3.2254 1.0260 3.55351.1010 3.9131 1.1760 4.3065 1.2510 4.7364 1.3260 5.20561.4010 5.7172 1.4760 6.2744 1.5510 6.8810 1.6260 7.54061.7010 8.2574 1.7760 9.0359 1.8510 9.8808 1.9260 10.79742.0010 11.7912 2.0760 12.8683 2.1510 14.0351 2.2260 15.29862.3010 16.6664 2.3760 18.1466 2.4510 19.7478 2.5260 21.47962.6010 23.3522 2.6760 25.3764 2.7510 27.5641 2.8260 29.92812.9010 32.4820 2.9257 33.3694 2.9505 34.2796 2.9752 35.21343.0000 36.1711解析解:>> y=dsolve('Dy=x+y','y(0)=1','x') y =2*exp(x) - x - 1(2) 20.01()2sin(),(0)0,(0)1,05y y y t y y t ''''-+===<< Euler 法:function f=Fun(t,y)% 常微分方程的右端函数f=[y(2);0.01*y(2)^2-2*y(1)+sin(t)];>> [t,y]=euler('Fun',[0,5],[0,1],0.2) ode45:>> [t,y]=ode45('Fun',[0,5],[0,1])t =0 0.0001 0.0001 0.0002 0.0002 0.0005 0.0007 0.0010 0.0012 0.00250.0037 0.0050 0.0062 0.0125 0.0188 0.0251 0.0313 0.0627 0.0941 0.12550.1569 0.2819 0.4069 0.5319 0.6569 0.7819 0.9069 1.0319 1.1569 1.28191.4069 1.5319 1.6569 1.7819 1.90692.0319 2.1569 2.2819 2.4069 2.53192.6569 2.7819 2.90693.0319 3.1569 3.2819 3.4069 3.5319 3.6569 3.78193.90694.0319 4.1569 4.2819 4.4069 4.5319 4.6569 4.7427 4.8285 4.91425.0000y =0 1.0000 0.0001 1.0000 0.0001 1.0000 0.0002 1.0000 0.0002 1.00000.0005 1.0000 0.0007 1.0000 0.0010 1.0000 0.0012 1.0000 0.0025 1.00000.0037 1.0000 0.0050 1.0000 0.0062 1.0000 0.0125 1.0000 0.0188 1.00000.0251 0.9999 0.0313 0.9998 0.0627 0.9987 0.0941 0.9965 0.1253 0.99340.1564 0.9893 0.2786 0.9632 0.3966 0.9220 0.5085 0.8662 0.6126 0.79670.7072 0.7146 0.7908 0.6210 0.8620 0.5176 0.9198 0.4058 0.9632 0.28760.9915 0.1647 1.0043 0.0392 1.0013 -0.0869 0.9826 -0.2117 0.9485 -0.33310.8996 -0.4490 0.8365 -0.5578 0.7605 -0.6577 0.6725 -0.7471 0.5742 -0.8246 0.4669 -0.8889 0.3525 -0.9393 0.2327 -0.9748 0.1095 -0.9950 -0.0154 -0.9996 -0.1398 -0.9887 -0.2619 -0.9624 -0.3798 -0.9212 -0.4916 -0.8657 -0.5957 -0.7970 -0.6904 -0.7161 -0.7742 -0.6242 -0.8460 -0.5228 -0.9046 -0.4134 -0.9491 -0.2978 -0.9789 -0.1777 -0.9934 -0.0549 -0.9945 0.0300 -0.9883 0.1146 -0.9748 0.1985 -0.9543 0.28092. 求一通过原点的曲线,它在(,)x y 处的切线斜率等于22,0 1.57.x y x +<<若x 上限增为1.58,1.60会发生什么?function f=Fun(x,y) % 常微分方程的右端函数 f=2*x+y.^2;>> [x,y]=ode45('Fun',[0,1.57],0) x =0 0.0393 0.0785 0.1178 0.1570 0.1963 0.2355 0.2748 0.3140 0.3533 0.3925 0.4318 0.4710 0.5103 0.5495 0.5888 0.6280 0.6673 0.7065 0.7458 0.7850 0.8243 0.8635 0.9028 0.9420 0.9813 1.0205 1.0598 1.0990 1.1383 1.1775 1.2168 1.2560 1.2953 1.3345 1.3738 1.4130 1.4248 1.4367 1.4485 1.4604 1.4722 1.4840 1.4959 1.5077 1.5140 1.5203 1.5265 1.5328 1.5376 1.5424 1.5472 1.5519 1.5543 1.5567 1.5591 1.5614 1.5631 1.5647 1.5664 1.5681 1.5685 1.5690 1.5695 1.5700 y =0 0.0015 0.0062 0.0139 0.0247 0.0386 0.0556 0.0758 0.09920.1259 0.1559 0.1895 0.2266 0.2675 0.3124 0.3615 0.4152 0.4738 0.5378 0.6076 0.6841 0.7679 0.8601 0.9620 1.0751 1.2014 1.3434 1.5045 1.6892 1.9037 2.1557 2.4577 2.8282 3.3003 3.9056 4.7317 5.9549 6.4431 7.0116 7.6832 8.4902 9.4821 10.7170 12.3090 14.4551 15.9220 17.7080 19.9390 22.8164 25.6450 29.2282 33.9673 40.5910 44.9434 50.3088 57.1229 66.1087 74.3108 84.7123 98.4901 117.7875 124.9206 132.9699 142.1268 152.6415若x 上限增为1.58,1.60,则超出运算的范围,发生溢出。

微分方程数学实验报告

微分方程数学实验报告
a=X(i);
j=i;
elseiff(x)*f(a)>0
a=X(i);
j=i+1;
end
end
end
b=X(j);
k=k+பைடு நூலகம்;
e=b-a;
end
if(b-a)<d
w=a
else
w=(a+b)/(p-1)
end
k
运行结果:
(输入函数形式)fx=x-0.8
(输入二分法下限)a=0
(输入二分法上限)b=1
输入误差限d=0.001
d =
1.0000e-003
输入p分法的p值,p=10
p =
10
w =
0.7999
k =
4
4、实验总结
6、教师评语及评分
0.7969
x0 =
0.8047
x0 =
0.8008
x0 =
0.7988
x0 =
0.7998
(2)P分法
symsx;fun=input('(输入函数形式)fx=');
a=input('(输入二分法下限)a=');
b=input('(输入二分法上限)b=');
d=input('输入误差限d=')%二分法求根
p=input(‘输入p分法的p值,p=’)
f=inline(fun);%修改需要求解的inline函数的函数体
X=[1:p];
e=b-a;
k=0;
whilee>d
h=(b-a)/(p-1);
fori=0:p-1
X(i+1)=a+(h*i);

微分方程数值解法实验报告

微分方程数值解法实验报告

微分方程数值解法实验报告2篇微分方程数值解法实验报告(一)在实际科学与工程问题中,我们经常会遇到微分方程的求解。

然而,许多微分方程往往没有解析解,这就需要我们利用数值方法来获得近似解。

本篇实验报告将介绍两种常见的微分方程数值解法:欧拉方法和改进的欧拉方法。

一、欧拉方法欧拉方法是最简单的微分方程数值解法之一。

其基本原理为离散化微分方程,将微分方程中的导数用差商代替。

设要求解的微分方程为dy/dx = f(x, y),步长为h,则可用以下公式进行递推计算:y_{n+1} = y_n +hf(x_n, y_n)二、算法实现为了对欧拉方法进行数值实验,我们以一阶线性常微分方程为例:dy/dx = x - y, y(0) = 1步骤如下:(1)选择合适的步长h和求解区间[a, b],这里我们取h=0.1,[a, b] = [0, 1];(2)初始化y_0 = 1;(3)利用欧拉方法递推计算y_{n+1} = y_n + 0.1(x_n - y_n);(4)重复步骤(3),直到x_n = 1。

三、实验结果与讨论我们通过上述步骤得到了在[0, 1]上的近似解y(x)。

下图展示了欧拉方法求解的结果。

从图中可以看出,欧拉方法得到的近似解与精确解有一定的偏差。

这是因为欧拉方法只是通过递推计算得到的近似解,并没有考虑到更高阶的误差。

所以在需要高精度解时,欧拉方法并不理想。

四、改进的欧拉方法针对欧拉方法的不足,我们可以考虑使用改进的欧拉方法(也称为改进的欧拉-柯西方法)。

它是通过利用前后两个步长欧拉方法得到的结果作为差商的中间项,从而提高了求解精度。

一阶线性常微分方程的改进欧拉方法可以表示为:y_{n+1} = y_n + h(f(x_n, y_n) + f(x_{n+1}, y_n + hf(x_n,y_n)))/2五、算法实现与结果展示将改进的欧拉方法应用于前述的一阶线性常微分方程,我们同样选择h=0.1,[a, b] = [0, 1]。

最新重庆大学-数学实验-3微分方程

最新重庆大学-数学实验-3微分方程

重庆大学学生实验报告实验课程名称数学实验开课实验室DS1422学院学生姓名开课时间数学与统计学院制开课学院、实验室:数统学院DS1422 实验时间:-2*x-2+3*exp(x)作图(y =3*exp(x)-2*x–2)x=0:0.02:1;y1=3*exp(x)-2*x-2;plot(x,y1,'b-')(2)算法设计通解y=dsolve('D2y+y*cos(x)=0')y =C19*exp(t*(-cos(x))^(1/2)) + C20/exp(t*(-cos(x))^(1/2))2.用向前欧拉公式和改进的欧拉公式求方程y ’= y - 2x /y , y (0) = 1 (0≤x ≤1,h = 0.1) 的数值解,要求编写程序,并比较两种方法的计算结果,说明了什么问题? 程序:向前欧拉和向后欧拉法:x1(1)=0;y1(1)=1;y2(1)=1;h=0.1;for k=1;10x1(k+1)=x1(k)+h;y1(k+1)=y1(k)+h*(y1(k)-2*x1(k)/y1(k))y2(k+1)=y2(k)+h*(y2(k+1)-2*x1(k+1)/y2(k+1)); end x1,y1,y2 ans = 10 y1 =⎪⎩⎪⎨⎧-+=+=--=)('''c x z b z ayx y z y x-0.50.51-1-0.50.10.20.30.40.50.6当a=0.2时-1-0.50.51-1.5-1-0.50.500.20.40.60.8当a=0.3时-1-0.50.51-1.5-1-0.50.500.20.40.60.8当a=0.4时-1-0.50.51-2-1100.20.40.60.8当a= 0.5-2-112-3-2-1100.20.40.60.8当a=0.6时-4-224-6-4-2200.20.40.60.81结论:空间曲线不会形成混沌状应用实验(或综合实验)一、实验内容5.盐水的混合问题一个圆柱形的容器,内装350升的均匀混合的盐水溶液。

数学建模作业实验2微分方程实验

数学建模作业实验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)是稳定的。

微分方程数值解实验报告

微分方程数值解实验报告微分方程数值解实验报告一、引言微分方程是数学中一类重要的方程,广泛应用于各个科学领域。

在实际问题中,往往难以得到微分方程的解析解,因此需要借助数值方法来求解。

本实验旨在通过数值解法,探索微分方程的数值解及其应用。

二、数值解法介绍常用的微分方程数值解法有欧拉法、改进欧拉法、四阶龙格-库塔法等。

在本实验中,我们将采用改进欧拉法进行数值解的求取。

改进欧拉法是一种一阶的显式迭代法,其基本思想是将微分方程的导数用差商来近似表示,并通过迭代逼近真实解。

具体迭代公式如下:\[y_{n+1} = y_n + h \cdot f(x_n + \frac{h}{2}, y_n + \frac{h}{2} \cdot f(x_n, y_n))\]其中,\(y_n\)表示第n步的近似解,\(h\)表示步长,\(f(x_n, y_n)\)表示微分方程的导数。

三、实验步骤1. 确定微分方程及初始条件在本实验中,我们选择经典的一阶常微分方程:\[y' = -2xy\]并给定初始条件\(y(0) = 1\)。

2. 设置步长和迭代次数为了得到较为准确的数值解,我们需要合理选择步长和迭代次数。

在本实验中,我们将步长设置为0.1,迭代次数为10。

3. 迭代计算数值解根据改进欧拉法的迭代公式,我们可以通过编写计算程序来求解微分方程的数值解。

具体计算过程如下:- 初始化:设定初始条件\(y_0 = 1\),并给定步长\(h = 0.1\)。

- 迭代计算:使用改进欧拉法的迭代公式,通过循环计算得到\(y_1, y_2, ...,y_{10}\)。

- 输出结果:将计算得到的数值解输出,并进行可视化展示。

四、实验结果与分析通过以上步骤,我们得到了微分方程的数值解\(y_1, y_2, ..., y_{10}\)。

将这些数值解进行可视化展示,可以更直观地观察到解的变化趋势。

根据实验结果,我们可以发现随着迭代次数的增加,数值解逐渐逼近了真实解。

华工数学实验报告 微分方程

《数学实验》报告学院:电子信息学院专业班级:信息工程电联班学号:姓名:实验名称:微分方程实验日期:2016/04/19M 01. 实验目的了解求微分方程解析解的方法 了解求微分方程数值解的方法 了解 dsolve,ode45 指令的使用方法 2. 实验任务1.用dsolve 函数求解下列微分方程(2)()()2()(0)1,(0)0y x y x y x y y '''=+⎧⎨'==⎩2. 我辑私雷达发现,距离d 处有一走私船正以匀速a 沿直线行驶,缉私舰立即以最大速度(匀速v )追赶。

若用雷达进行跟踪,保持船的瞬时速度方向始终指向走私船,则辑私舰的运动轨迹是怎么的?是否能够追上走私船?如果能追上,需要多长时间?3. 实验过程3.1实验原理 3.1.1任务一dsolve(‘equation ’,’condition ’,’v ’)(1) equation 是方程式,condition 是条件,v 是自变量(缺省为t )(2)若不带条件,则解中带积分常数 (3)如果没有显示解,则系统尝试给出隐式解 (4)如果无隐式解,则返回空符号。

3.1.2任务二以0S 为原点建立坐标系。

设缉私船出发的起点坐标为00(x ,y ),根据题意22200x y d +=,经过时间t ,走私船到达S(at,0),缉私船到达M(x,y),追赶时,缉私船总是向走私船所在的位置追赶,设在t+dt 时刻,缉私船到达'(,)M x dx y dy ++,则M,M ’,S 三点一图2 dt 时刻追击图由图可知,0dy y dx at x-=- (1)即dxyat x dy-=- (2)此即缉私船的追辑模型。

方程(2)两边对y 求导,得22d x dt y a dy dy-= (3)又因为缉私船的速度恒为v ,因此222dy dx v dt dt ⎛⎫⎛⎫=+ ⎪ ⎪⎝⎭⎝⎭(4)即dy dt=(5)把方程(5)代入(3),并结合初始条件:00000()'()x y x x x y y =⎧⎪⎨=⎪⎩,可知,求解模型(2),即求解如下模型0000''()'()yx x y x x x y y ⎧⎪=⎪⎪=⎨⎪⎪=⎪⎩(6)其中ak v=为常数。

微分方程数学模型和数学实验在实际生活中的应用举例

微分方程数学模型和数学实验在实际生活中的应用举例微分方程数学模型和数学实验是数学在实际生活中应用的两种重要方法。

微分方程数学模型是将实际问题转化为微分方程形式,通过求解微分方程来研究问题的性质和解决问题。

数学实验则是通过建立合适的数学模型,并进行相应的实验、观测和数据分析,得出结论和预测。

下面以三个不同领域的实例来阐述微分方程数学模型和数学实验在实际生活中的应用。

1.化学反应动力学模型化学反应动力学研究的是反应速率和反应机理的关系。

数学可以通过建立微分方程数学模型,来描述化学反应过程中物质浓度随时间的变化。

例如,考虑一个简单的一级反应动力学模型,即物质的浓度随时间的变化速率与其本身的浓度成正比。

设化学反应速率为r,物质浓度为C,时间为t,则化学动力学微分方程可以表示为:dC/dt = -kC,其中k为反应速率常数。

通过求解这个微分方程,可以得到物质浓度随时间的变化规律,从而预测反应的进行过程和反应速率的变化。

根据实验测得的浓度数据,可以通过数学实验,进行拟合和参数估计,从而获得更准确的反应动力学模型。

2.疾病传播模型疾病传播是流行病学研究的重要内容之一、数学可以通过建立微分方程数学模型,来描述疾病在人群中的传播过程。

一个常用的模型是SIR模型,即将人群分为易感者(Susceptible),感染者(Infected)和康复者/免疫者(Recovered)三个状态。

设人群总数为N,易感者数量为S,感染者数量为I,康复者数量为R,时间为t,则SIR模型的微分方程可以表示为:dS/dt = -βSI/NdI/dt = βSI/N - γIdR/dt = γI其中β和γ分别表示感染率和康复率。

通过求解这个微分方程,可以得到疾病传播的规律,从而帮助制定合理的防控措施。

通过与实际流行病数据的对比,进行数学实验,可以对感染率和康复率进行估计和优化,从而更好地预测和控制疾病的传播。

3.经济增长模型经济增长是宏观经济学研究的核心问题之一、数学可以通过建立微分方程数学模型,来描述经济增长的动态过程。

《数学实验》实验报告——用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 用拉氏变换解微分方程:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

能不能写成下面形式?
function dy = myfun2(t,x,y,z) dy = zeros(3,1); dy(1) = y * z; dy(2) = -x * z; dy(3) = -0.51 * x * y;
X
说明
odefun 变量属性必须 一一对应!
function dy = myfun2(t,y)
如果是常微分方程组,y 就是列向量! dy 必须是列向量,长度为方程组的个数,通常与y的长度相同! 函数中的输入参数和输出参数是形参,名字可以任意取,但必须 满足上述条件。即输入参数有两个,第一个表示自变量,第二个 是由因变量组成的列向量,输出参数必须是列向量。

例:解初值问题: 1、函数文件 myfun3.m
例:求初值问题
的数值解。
解法一:使用 inline 定义微分方程 odefun
fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1);
注:自变量必须在前面,因变量在后面!
举例说明(单个方程)
解法二:通过函数文件定义微分方程 odefun 1、先编写函数文件 myfun1.m
function dy = myfun1(x,y) dy = -2*y+2*x^2+2*x;
2、编写主文件 main1.m clear; [x,y]=ode23(@myfun1,[0,0.5],1);
或直接在 Matlab 命令窗口输入上面的语句。
举例说明(方程组)
例:求 , , 的数值解。
解:此时只能通过函数文件定义微分方程 odefun 1、先编写函数文件 myfun2.m function dy = myfun2(t,y) dy = zeros(3,1); % dy-y(1)*y(3); ...vector! must be a column dy = [ y(2)*y(3); dy(1) = y(2) * y(3); -0.51*y(1)*y(2)];
function dy = myfun3(t,y) dy = zeros(2,1); dy(1) = y(2) + t; dy(2) = t - 2; function out = myfun3(t,y) out = [y(2) + t; t – 2]; function yprime = myfun3(x,y) yprime = [y(2) + x; x – 2];
dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2);
2、编写主文件 main2.m clear; [T,Y]=ode45(@myfun2,[0,12],[0,1,1]);
思考
1、函数文件 myfun2.m
function dy = myfun2(t,y) dy = zeros(3,1); dy(1) = y(2) * y(3); dy(2) = -y(1) * y(3); dy(3) = -0.51 * y(1) * y(2);
[T,Y] = ode45(odefun,tspan,y0) [T,Y] = ode23(odefun,tspan,y0) ode45、ode23 等函数可用于求解显式常微分方程

是向量函数时,所对应的方程即为微分方程组
odefun
举例说明
odefun 为方程右端项 f(t,y) 可以用 inline 定义(只适合于单个方程的情形) 通过函数文件定义,然后用函数句柄调用(适合所有情形)


2、主文件 main3.m clear; [T,Y]=ode45(@myfun3,[0,10],[1,1]);
高阶常微分方程
高阶常微分方程 变量替换 化为 一阶常微分方程组
例: Van der Pol 初值问题
令 x1 y , x2
dy ,则原方程可化为 dt
参数怎么处理?
用全局变量传递
参数传递
1、函数文件 verderpol.mrpol(t,x) global mu; xprime = [x(2); mu*(1-x(1)^2)*x(2)-x(1)];
2、主文件 vdp1.m
clear; global mu; y0=[1;0]; mu=7; [t,x]=ode45('verderpol',[0,40],y0); % [t,x]=ode45(@verderpol,[0,40],y0); plot(t,x(:,1),'r-', t,x(:,2),'b-');
如何定义函数文件
[T,Y] = ode45(odefun,tspan,y0) [T,Y] = ode23(odefun,tspan,y0)
Oh,I see ode45、ode23 能 那么odefun 解什么样的 ODE? 当 odefun?是函数 就是 向量时呢?
odefun
微分方程组
如何定义函数文件
相关文档
最新文档