wuhaoshrek
2009-11-07, 22:29
RT~
小弟刚学数值分析,自己编的matlab程序,复合-3点高斯-勒让德求积公式,代码见下面!为什么计算pi总是不对啊?pi=4/(1+x^2),0~1积分。是这样的,这个程序要用很大很大的n才能算稍微准确一点,但是用其他自己编的辛普森公式之类的,只用几段就可以算出来了,应该高斯公式是精度最高的啊?哪位达人抽点时间帮我看一下代码程序?有什么问题啊??谢谢啦!金币相送!!
function I=fguass(fh,a,b,n)
%fh:输入一个函数
%a:积分下限,b:积分上限,n:积分区间区间的分段数
h=(b-a)/n;
x=a:h:b;
x1=0.5*h-sqrt(15)/10*h+x;
x2=0.5*h+x;
x3=0.5*h+sqrt(15)/10*h+x;
fx1=5/9*fh(x1);
fx2=8/9*fh(x2);
fx3=5/9*fh(x3);
fx=h/2*(fx1+fx2+fx3);
I=sum(fx);
小弟刚学数值分析,自己编的matlab程序,复合-3点高斯-勒让德求积公式,代码见下面!为什么计算pi总是不对啊?pi=4/(1+x^2),0~1积分。是这样的,这个程序要用很大很大的n才能算稍微准确一点,但是用其他自己编的辛普森公式之类的,只用几段就可以算出来了,应该高斯公式是精度最高的啊?哪位达人抽点时间帮我看一下代码程序?有什么问题啊??谢谢啦!金币相送!!
function I=fguass(fh,a,b,n)
%fh:输入一个函数
%a:积分下限,b:积分上限,n:积分区间区间的分段数
h=(b-a)/n;
x=a:h:b;
x1=0.5*h-sqrt(15)/10*h+x;
x2=0.5*h+x;
x3=0.5*h+sqrt(15)/10*h+x;
fx1=5/9*fh(x1);
fx2=8/9*fh(x2);
fx3=5/9*fh(x3);
fx=h/2*(fx1+fx2+fx3);
I=sum(fx);