华南理工大学数学实验上机作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 微分方程

地 点: 计算中心 XXX 房

实验台号: XXX 实验日期与时间: 20XX 年X 月XX 日

评 分: 预习检查纪录: 实验教师:

XX

电子文档存放位置: 电子文档文件名:

XXX.doc

批改意见:

1. 实验目的

- 了解求解微分方程解析解的方法。 - 了解求微分方程数值解的方法。

- 学会建立一些简单的微分方程模型,并能分析解决这些问题。

2. 问题1

用dsolve 函数求解微分方程:⎩⎨⎧==+=0)0(',1)0()

(2)(')(''y y x y x y x y

实验过程:

根据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)(')("x y x y x y +=,初始条件符合,故结果合理,

3

2)(2t

t e e x y +=-

3. 问题2

设河边点O 的正对岸为A ;河宽OA=h ,两岸为水平直线,水流的速度为0.5m/min 。有一只鸭子从点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 fun.m

function [dvar] = fun(~,var)

v_water = 0.5;

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 = [0 1.5];

x0y0 = [0 1];

[t,var] = ode45('fun',tspan,x0y0);

plot(var(:,1),var(:,2))

axis([0 0.25 0 1])

% get the equation

dsolve('Dx=(x/y)-0.5*sqrt((x/y)^2+1)','x(1)=0','y')实验结果:

图3 鸭子轨迹图

输出:

-y*sinh(log(y)/2)

再用以下代码画出轨迹方程的图: y = 0:0.001:1;

plot(-y.*sinh(log(y)/2),y)

解析方程图:

图4 解析方程的图像

所得的方程表达式x = -y*sinh(log(y)/2)即2ln sinh

y y x ⋅-=

结果分析:

鸭子的轨迹为类似于抛物线的形状,大约在x=0.2时,被水流冲走使得

水平位移最大,之后快速回到目标点O 。鸭子成功游到对岸。

得到的解析方程2ln sinh

y

y x ⋅-=形状与求微分方程数值解ode45所画出

的图像形状相同,验证了解析解和数值解均正确。 4. 实验总结和实验感悟

经过此次数学实验,让我们学会了如何使用MATLAB 中的dsolve 和ode45

函数求得微分方程的解析解和数值解。在不能求得微分方程的解析解的时候应当适当转换坐标系,或许就能求得解析解。使用ode45函数求得非刚性微分方程的数值解,这个函数在绝大多数的情况下都适用。

订正:

相关文档
最新文档