实验三 常微分方程数值解
姓名 xx 学号xxxxxxx
实验目的:
用MATLAB软件掌握求微分方程数值解的欧拉方法和龙格—库塔方法。
通过实例学习用微分方程模型解决简化的实际问题。
实验内容:
海上缉私的问题中若走私船与正东方向成一定角度的直线行驶,自行设定速度等参数,求数值解。
问题解答:
本题可通过设定某一时刻走私船的位置和走私船的位置建立微分方程组。走私船的初始位置为(0,0),走私船的位置为(c,0)。走私船的速度为a,走私船的速度为b。其中在时刻t时,缉私船位置为P(x,y),走私船的位置为Q(c+atcosθ,atsinθ),其中θ为走私船行驶路线的斜率。直线PQ与缉私船路线相切,设切线与x轴正向夹角为α,则有缉私船在x,y方向上的速度分别是和,由此得到微分方程为
初值条件x(0)=0,y(0)=0
现设定a=20,b=40,c=15,θ=pi/3
matlab程序如下:
函数文件
function dx = jisi(t,x)
a = 20;
b = 40;
c = 15;
k = pi/3;
s = sqrt( (c+a*t*cos(k) - x(1) )^2+( a*t*sin(k)-x(2) )^2 );
dx = [ b*(c+a*t*cos(k)-x(1))/s ; b*(a*t*sin(k)-x(2))/s ];
运行文件
ts = 0::;
c = 15;
xline = 0::25;
yline = tan(pi/3)*a-tan(pi/3)*c;
x0 = [0,0];
[t,x] = ode45(***@jisi,ts,x0);
[t,x]
subplot(1,2,1);
plot(t,x);
grid on;
subplot(1,2,2);
plot(x(:,1),x(:,2));
hold on;
plot(xline,yline);
axis([0,25,0,12]);
grid on;
计算结果:
ans =
0 0 0
数学实验实验报告 来自淘豆网m.daumloan.com转载请标明出处.