《数学实验》报告
实验名称?Mat lab常微分方程的求解?
学 院 计算机与通信工程学院
专业班级? 计1103????????
姓??名????????
学??号???????
??
2013年6 月
【实验目的】
通过练习,熟悉Mat lab的求解常微分方程,函数文件的创建等。了解Mat lab的命令窗口及其基本操作和常用命令。
通过练习,熟悉Mat lab的一些基本操作,掌握符号解法和数值解法,以及其中常用的方法。
【实验任务】
求解微分方程y'=xsin(x)/cos(y)。
用数值方法求解下列微分方程,用不同颜色和线形将y和y'画在同一个图形窗口里:y''+ty'-y=1-2t,初始时间:t0=0;终止时间:tf=π;初始条件:y|t=0=0.1,y'|t=0=0.2。
【实验程序】
题一:
y= dsolve('Dy=x*sin(x)/cos(y)','x')
题二:
令:a=y,b=y'=a',b'=y''则 :
a'=0*a+1*b+0;b'=1*a-t*b+(1-2*t);
[a';b']=[0 1;1 -t][a;b]+[0;1](1-2*t);
故化为一阶微分方程有:
x'=[0 1;1 -t]x+[0;1]u;其中:x'=[a';b'],u=(1-2*t)。
初始条件:当t=0时,a=0.1;b=0.2。
function xd = mainfun( t,x )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
u=1-2.*t;
xd=[0 1;1 -t]*x+[0;1]*u;
end
clf;
t0=0;
tf=pi;
x0t=[0.1;0.2];%初始条件
[t,x]=ode23('mainfun',[t0,tf],x0t)
y=x(:,1);
Dy=x(:,2);
plot(t,y,'g--',t,Dy,'k-.')
xlabel('t轴'),ylabel('Y轴')
legend('原始函数y','一阶导数Dy')
【实验结果】
题一:
y =
asin(C3 + sin(x) - x*cos(x))
题二:
>> fun
t =
0
0.0145
0.0873
0.2014
0.3259
0.4621
0.6121
0.7778
0.9621
1.1482
1.2767
1.4053
1.5188
1.6706
1.8601
2.0891
2.3569
2.6546
2.9687
3.1416
x =
0.1000 0.2000
0.1030 0.2158
0.1214 0.2883
0.1598 0.3798
0.2116 0.4479
0.2756 0.4847
0.3485 0.4813
0.4245 0.4282
0.4939 0.3168
0.5388 0.1599
0.5513 0.0320
0.5466 -0.1069
0.5272 -0.2358
0.4780 -0.4127
0.3788 -0.6347
0.2037 -0.8952
-0.0742 -1.1797
-0.4677 -1.4646
-0.9691 -1.7290
-1.2793 -1.8586
【实验总结】
通过本次实验,熟悉了Mat lab的一些基本操作,通过练习,会求解常微分方程,并熟练掌握符号解法和数值解法,以及其中常用的方法,包括欧拉方法、梯形公式、龙格库塔方法等。
通过练习,熟悉Mat la
3