内容发布更新时间 : 2025/1/7 16:39:15星期一 下面是文章的全部内容请认真阅读。
六、题目
例5.7试构造Gauss型求积公式
1??1f(x)dx?A0f(x0)?A1f(x1)?A2f(x2)
并由此计算积分
t?0(1?t)2dt
1原理:
在积分区间?a,b?上选取若干节点,依次构造一个逼近被积函数的插值多项式P,进而获得数值求积公式 ()(fx)Nx?f?x?dx??ababNbbaPN?x?dx.
对于积分?f?x?dx我们考虑用Lagrange插值,得到
?f?x?dx??Af?x??R?f?
annNn?0N?N?1?x?其中An??dx,?N?1?x????x?xi?
ax?x???n?N?1?xn?i?0b余项为
R(=?RN?f,x?dx, Nf)abf?????RN?f,x?=?N?1?x?,???a,b?
?N?1?!N?1?若MN?1?maxfx??a,b?N?1?有如下估计式 ?x? ,则余项R(Nf)MN?1bR(??N?1?x?dx Nf)?a?N?1?!16
fx)?xi?i?0,1,2,又若一个求积公式对(,m?能精确成立,但
fx)?xm?1不精确成立,则称该公式具有m次代数精度.具有是对于(2N?1次代数精度的插值型求积公式?f?x?dx??Anf?xn?,称为
an?0bNGauss型求积分公式,其节点?xi?i?0 称为Gauss点.
不失一般性,我们假设公式?f?x?dx??Anf?xn?的积分限为
an?0bNNa??1,b?1,而对于一般情形进行积分变换
2?a?b?x??t??,
b?a?2?那么使得其积分为
?bab?a1?b?aa?b?f?t?dt?fx???dx . ??122??2Gauss型求积公式需要找到Gauss点,为此,我们引入了
Legendre(勒让德)多项式,一个仅以区间[?1,1]上的Gauss点?xi?i?0为零点的N?1 次多项式称为Legendre多项式.
n2??dx?1??1???,n?0,1,2,Pn(x)?n??n2?n!dxnN
程序:
function y=f(x)%定义原函数
y=sqrt(x)/(1+x)^2; end
function P=legendre(n)% n次legendre多项式 syms x;
P=1/(2^n*prod(1:n))*diff((x^2-1)^n,n); end
17
function gauss_quadrature(n,a,b)%确定n次legendre多项式,以及积分区间[a,b] syms x; %求高斯点%
x0=solve(legendre(n),x);%调用legendre函数并求零点 %求高斯系数% for i=1:n p=1.0; for j=1:n if j~=i
p=p*(x-x0(j))/(x0(i)-x0(j)); end end
A(i)=int(p,x,-1,1); end
%积分上下限变换%
t=((b-a)/2)*x+(a+b)/2; for i=1:n
c(i)=(b-a)/2*A(i)*subs(f(t),x,x0(i));%调用f函数 end
% 结果输出%
fprintf(' f(x)=%s在[%g,%g]区间上的积分为 %e\\n',f(x),a,b,sum(c)); end
结果:
18