复化辛普森公式和高斯求积公式方法计算积分matlab程序
一、实验目的及题目
实验目的:掌握利用复化辛普森公式和高斯求积公式方法计算积分,熟悉matlab 的操作。
题目:1.利用复化辛普森公式计算积分:
1、xdx x ln 10?
2.利用高斯求积公式计算积分: 1、xdx x ln 1
0?
2、∫sinx (1+x 2)?10dx
实验步骤:
1.利用复化辛普森公式计算积分:
1.1.建立M 文件
function y=f(x)
y=sqrt(x)*log(x);
1.2.建立M 文件
function T_n=F_H_T(a,b,n)
h=(b-a)/n;
for k=0:n
x(k+1)=a+k*h;
if x(k+1)==0
x(k+1)=10^(-10);
end
end
T_1=h/2*(f(x(1))+f(x(n+1)));
for i=2:n
F(i)=h*f(x(i));
end
T_2=sum(F); T_n=T_1+T_2;
1.3.在命令窗口输入
T_n=F_H_T(0,1,20)
输出结果:
2.利用高斯求积公式计算积分:
2.1.建立M文件
function s=guassl(a,b,n)
h=(b-a)/n;
s=0.0;
for m=0:(1*n/2-1)
s=s+h*(guassf(a+h*((1-1/sqrt(3))+2*m))+guassf(a+h*((1+1/sqrt( 3))+2*m)));
end
s;
I=int('sin(x)',0,1);
c=(I-s)/I;
d=vpa(c,10);
2.2.1.建立M文件
function y=guassf(x)
y=sqrt(x)*log(x);
2.2.2.建立M文件
function y=guassf(x)
y=sinx/(1+x*x);
2.3.运行结果
2.3.1.在命令窗口输入s=guassl(0,1,20)
2.3.2.在命令窗口输入s=guassl(0,1,20)