实验三 微分方程
地 点:
计算中心
XXX房
实验台号:
XXX
实验日期与时间:
20XX年X月XX日
评 分:
预习检查纪录:
实验教师:
XX
电子文档存放位置:
电子文档文件名:
批改意见:
实验目的
了解求解微分方程解析解的方法。
了解求微分方程数值解的方法。
学会建立一些简单的微分方程模型,并能分析解决这些问题。
问题1
用dsolve函数求解微分方程:
实验过程:
根据dsolve格式,微分方程为D2y = Dy + 2y,初始条件为y(0) = 1,Dy(0) = 0,将其带入dsolve函数可得到方程字符串y = (2*exp(-t))/3 + exp(2*t)/3,再用函数ezplot即可画出该函数图像。
y = dsolve('D2y=Dy+2*y', 'y(0)=1,Dy(0)=0');
hold on;
t = [0, 3];
set(ezplot(diff(diff(y)), t),'Color','k');
set(ezplot(diff(y), t),'Color','b ');
set(ezplot(y, t),'Color','y');
legend('y''''', 'y''', 'y', 0)
实验结果:
图1 曲线各阶图像
结果分析:
经验证 ,初始条件符合,故结果合理,
问题2
设河边点O的正对岸为A;河宽OA=h,两岸为水平直线,。有一只鸭子从点A游向点O,设鸭子在静水中的游动速度为1m/min,且鸭子的游动方向始终朝着点O,求鸭子游过的轨迹方程,用MATLAB求解,并做出轨迹图。
实验过程:
图2 受力分析图
如图2,我们进行受力分析。水流方向向右边,鸭子的坐标为xi+yj。
鸭子水平速度为vi = v_water-v_duck*cos(theta)
鸭子垂直速度为vj = -v_duck*sin(theta)
其中cos(theta) = x/sqrt(x^2+y^2), sin(theta) = y/sqrt(x^2+y^2)
所以速度表达式:
dy/dt = -v_duck*y/sqrt(x^2+y^2)
dx/dt = v_water-v_duck*x/sqrt(x^2+y^2)
相除并化简得到:
dx/dy = (x/y) – (v_water/v_duck)*sqrt((x/y)^2+1)
用MATLAB编程得到的代码为:
% save as
function [dvar] = fun(~,var)
v_water = ;
v_duck = 1;
dvar = zeros(size(var));
dvar(1) = (-v_duck*var(1))./norm(var)+v_water;
dvar(2) = (-v_duck*var(2))./norm(var);
end
% press F5 to run
tspan =
华南理工大学数学实验上机作业 来自淘豆网m.daumloan.com转载请标明出处.