实验六 数值积分
一、 实验目的
掌握复化梯形公式和复化Simpson公式,会编写程序,上机进行实例计算。
二、 实验内容
ln(1?x)dx?0x计算
1(1)编写复化梯形公式和复化Simpson公式通用子程序,,分别采用4,8,16,32,64等分区间计算。 程序代码如下:
format long
f=inline('log(1+x)./x'); a=10^-8;b=1; for i=2:6 n=2^i; h=(b-a)/n;
x=zeros(n-1);sum=0; for i=1:1:n-1 x(i)=a+i*h; sum=sum+f(x(i)); end
fa=f(a);fb=f(b); T=h/2*(fa+2*sum+fb); n; T end
运行结果为:
(2)使用Romberg求积公式。 程序代码如下:
f=inline('log(1+x)./x'); a=10^-8;b=1;
M=1;h=b-a;J=0;err=1;R=zeros(4,4);eps=10^-8; R(1,1)=h*(f(a)+f(b))/2; while(err>eps) J=J+1; h=h/2; x=a+h:2*h:b-h;
R(J+1,1)=R(J,1)/2+h*sum(f(x)); for K=1:min(3,J)
R(J+1,K+1)= R(J+1,K)+( R(J+1,K)- R(J,K))/(4^K-1); end if(J>3)
err=abs( R(J+1,4)- R(J,4)); end end
S= R(J,4)
运行结果为:
实验七 数值积分
实验内容
利用改进Euler法,经典四级四阶Rung-Kutta方法求其数值解,:
??4x?xy?y?y??y(0)?1?0?x?2
分别取h=0.2,0.1,0.05时数值解。
?xy?4?3e(注:初值问题的精确解)
21、 改进Euler法
(1) 程序代码如下:
x0=0;y0=1;xn=2;
f=inline('4*x./y-x.*y'); H=[0.2 0.1 0.05]; for j=1:3 h=H(j); n=(xn-x0)/h; x=x0;y=y0; for i=1:n
y1=y+h*f(x,y); y2=y+h*f(x+h,y1); y=(y1+y2)/2; x=x+h; Y(j,i)=y; end h Y(j,1:n)
disp('_____________');
(2) 运行结果如下:
2、 经典R-K方法
(1) 程序代码如下:
x0=0;y0=1;xn=2;
f=inline('4*x./y-x.*y'); H=[0.2 0.1 0.05]; for j=1:3 h=H(j); n=(xn-x0)/h; x=x0;y=y0; for i = 1:n K1 = h*f(x,y);
K2 = h*f(x+h/2,y+K1/2); K3 = h*f(x+h/2,y+K2/2); K4 = h*f(x+h,y+K3); y = y+(K1+2*K2+2*K3+K4)/6; x = x+h; Y(j,i)=y; end h