资源描述
数值计算第三次大作业
1. Euler法
functiony=euler(x)
%实现euler法
%输入值x代表x=x0时,y0旳值
x1=x(1);
y1=x(2);
h=1E-2;
n=1;
u(1)=y1;
forx=x1+h:h:2*pi
n=n+1;
y2=y1+h*fx(x);
u(n)=y2;
y1=y2;
end
y=y2;
%绘图
x=x1:h:2*pi;
plot(x,u);
gridon
xlabel('角度/°');
ylabel('函数值');
title('Euler法');
成果为:y=5.0000
2. 梯形法
functionu=tixingfa(x)
%实现euler法
%输入值x代表x=x0时,y0旳值
x1=x(1);
y1=x(2);
h=1E-2;
n=1;
y(1)=y1;
forx=x1+h:h:2*pi
y(n+1)=y(n)+h/2*(fx(x)+fx(x+h));
n=n+1;
end
u=y(n);
x=x1:h:2*pi;
plot(x,y);
gridon
xlabel('角度/°');
ylabel('函数值');
title('梯形法');
成果为:y=4.9999
3. 龙格库塔法
functionu=runger_kuta(x)
%实现龙格库塔法
%采用四阶龙格库塔
x1=x(1);
y1=x(2);
h=1E-2;
n=1;
y(1)=y1;
%
forx=x1+h:h:2*pi
k1=fx(x,y(n));
k2=fx(x+h/2,y(n)+h*k1/2);
k3=fx(x+h/2,y(n)+h*k1/2);
k4=fx(x+h/2,y(n)+h*k3);
y(n+1)=y(n)+h/6*(k1+2*k2+2*k3+k4);
n=n+1;
end
u=y(n);
x=x1:h:2*pi;
plot(x,y);
gridon
xlabel('角度/°');
ylabel('函数值');
title('龙格库塔法');
成果为:y=5.0000
4、fx函数
%函数fx
functiony=fx(x,y)
x=mod(x,pi);
ifx<=pi/2
y=sin(2*x);
else
y=-sin(2*x);
end
展开阅读全文