1.实验原理及实验内容:
对微分方程描述的控制系统,利用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法分别编写M文件,进行数值计算和作图。
1.分别用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法求下面系统的输出响应y(t)在0≤t≤1上,h=0.1时的数值解。
要求保留4位小数,并将三种方法的结果与真解进行比较。
2. 若为如何编程计算?
2.实验仪器:
计算机Matlab软件
3.实验数据记录:
程序一:
disp('欧拉算法');
y=1;
h=0.1;
for i=0:0.1:1
disp(y);
y=y+h*(-2*y);
end
disp('欧拉算法');
y
disp('精确解');
yy=exp(-2*t)
h=0.1;
disp('函数的2阶数值解为');
disp('y=');
y=1;
for t=0:h:1;
disp(y);
k1=-2*y;
k2=-2*(y+k1*h);
y(i+1)=y(i)+(k1+k2)*h*1/2;
end
h=0.1;
disp('函数的4阶数值解为');
disp('y=');
y=1;
for t=0:h:1;
disp(y);
k1=-2*y;
k2=-2*(y+k1*h*1/2);
k3=-2*(y+k2*h*1/2);
k4=-2*(y+k3*h);
y=y+h*1/6*(k1+2*k2+2*k3+k4);
end
>>程序2:
t=0:0.1:1;
n=length(t);
y(1)=1;
h=0.1;
for i=1:n-1
y(i+1)=y(i)+h*(y(i)*y(i));
end
disp('欧拉算法');
y
disp('精确解');
yy=exp(-2*t)
h=0.1;
disp('函数的2阶数值解为');
disp('y=');
y=1;
for t=0:h:1;
disp(y);
k1=y*y;
k2=(y+k1*h)^2;
y=y+(k1+k2)*h*1/2;
end
h=0.1;
disp('函数的4阶数值解为');
disp('y=');
y=1;
disp(y);
k1=y*y;
k2=(y+k1*h*1/2)^2;
k3=(y+k2*h*1/2)^2;
k4=(y+k3*h)^2;
y=y+h*1/6*(k1+2*k2+2*k3+k4);
end