使用复化梯形公式计算积分,问应至少将区间 等分为多少份,才能使截断误差
1个回答
2016-04-29
展开全部
于无法求得exp(x^2)的原函数,我们只能用数值算法来求解,可以用复化梯形公式、Romberg公式、Gauss公式等,有好多种。我用Matlab编了一个用Gauss公式求解积分的函数。functionS=GaussIntegrate()%运用Gauss求积公式计算数值积分%f为被积函数,Rho为权函数,二者均为符号函数x=sym('x');f=exp(x^2);Rho=1;%a,b分别为求积区间的左界和右界a=1;b=2;%n表示求积结点的个数,是一正整数n=8;%本程序利用线性变换将区间[a,b]变换到[-1.1],%同时令g=f*Rho为被积函数,然后利用%古典的Gauss求积公式进行计算,此时直交多项式即为Legendre多项式ifn=0||n~=floor(n)error('错误,n必须是一个非负整数!');end;ifa>berror('错误,区间的左界a一定不大于右界b!');end;%计算n次Legendre多项式symsx;P=1/(2^n*factorial(n))*diff((x^2-1)^n,n);w=roots(sym2poly(P));%计算数值积分A=zeros(1,n);S=0;fork=1:nA(k)=2/((1-w(k)^2)*(subs(diff(P),w(k))^2));t=a+(b-a)/2*(w(k)+1);g=(b-a)/2*subs(f*Rho,t);S=S+A(k)*g;end;--------------------------------我取了8个结点,计算精度就已经达到了小数点后8位,效率还是很高的。注意:由于Matlab调用Maple的符号计算工具箱,第一次运行时会加载一小会,耐心等待。以后再运行速度就很快了。
图为信息科技(深圳)有限公司
2021-01-25 广告
2021-01-25 广告
边缘计算方案可以咨询图为信息科技(深圳)有限公司了解一下,图为信息科技(深圳)有限公司(简称:图为信息科技)是基于视觉处理的边缘计算方案解决商。作为一家创新企业,多年来始终专注于人工智能领域的发展,致力于为客户提供满意的解决方案。...
点击进入详情页
本回答由图为信息科技(深圳)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询