Matlab数值积分

您所在的位置:网站首页 切比雪夫积分公式 Matlab数值积分

Matlab数值积分

2024-06-02 15:58| 来源: 网络整理| 查看: 265

function [gc,Ak,xk]=guasschebyshev(fun,n)% 高斯-勒让德数值积分%% 参数说明% fun:积分表达式,可以是函数句柄、inline函数、匿名函数、字符串表达式,但是必须可以接受矢量输入% a,b:积分上下限只能[-1 1],故忽略% n:积分阶数,可以任意正整数,但是不建议设置过大,大不一定能得到更好的精度% gc:积分结果% Ak:求积系数% xk:求积节点,满足gc=sum(Ak.*fun(xk))%% 举例说明% fun=@(x)exp(x).*cos(x); % 必须可以接受矢量输入% quadl(fun,-1,1) % 调用MATLAB内部积分函数检验% [gc,Ak,xk]=guasschebyshev(fun,7)%% 高斯积分说明% 1.高斯积分是精度最高的插值型数值积分,具有2n+1阶精度,并且高斯积分总是稳定。一般插值型数值积分精度为至少n阶,且具有高阶不稳定性% 2.高斯求积节点就是对应n阶正交多项式的根,构建首项系数为1的正交多项式% 3.高斯求积系数,可以由Lagrange多项式插值系数进行积分得到% 4.由高斯求积节点为根构成的多项式,与任何不超过n阶的多项式正交%% 勒让德正交多项式说明% 1.区间[-1,1]上关于权rho(x)=1/sqrt(1-x^2)的正交多项式系,满足%                                   |-   pi/2      (i=j≠0)% ∫(Ti(x)*Tj(x)/sqrt(1-x^2),-1,1)= |    pi        (i=j=0)%                                   |-   0         (i≠j)% 2.切比雪夫正交多项式的通式为:T0=1, Tn=cos(n*arcos(x))  (n=1,2,...)% 3.Tn(x)=0在[-1,1]有n个零点xk=cos((2k-1)/(2n)*pi) (k=1,2,...n),%                  有n+1个最值点pk=cos(k*pi/n)  (k=0,2,...,n)% 3.关于高斯-切比雪夫的数值积分的求积系数Ak=pi/(n+1),求积节点xk=cos((2k+1)/(2n+2)*pi)  (k=0,2,...,n)%% 计算求积系数k=0:n;Ak=ones(1,n+1)*pi/(n+1);% 计算求积节点xk=cos((2*k+1)/(2*n+2)*pi);% 计算权函数rho=@(x)sqrt(1-x.^2);% 积分函数有效性检验fun=fcnchk(fun,'vectorize');% 带权的积分函数值fx=fun(xk).*rho(xk);% 计算积分值gc=sum(Ak.*fx);

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3