㈠ MATLAB 利用复合梯形公式求解积分
可以利用matlab的trapz函数命令
x=0:0.00001:1;%x用来储存积分点
y=(x+1).*sin(x);%y用来求解积分点x处的函数值
I=trapz(x,y)
I =
0.7608663730793
验证该问题的解析解
syms x
y=(x+1)*sin(x);%被积函数表达式
II=int(y,0,1)
II =
sin(1) - 2*cos(1) + 1 %II即为该被积函数的解析解
II_E=eval(II)
II_E =
0.760866373071617 %II的数值解
%可以看出梯形求积公式在步长等于0.00001的情况下,数值积分的解与解析解的数值能达到小数点后11位保持一致
㈡ 用复化梯形公式计算积分,使误差小于0.0015
首先,你需提供已知的f(x)函数,再进行数值计算。
利用Matlab软件,使用复化梯形公式计算数值积分的方法如下。
1、自定义复化梯形法函数,traint()
function y = traint(a,b,n,func)
h = (b - a) / n;
x = linspace(a,b,n+1);
y1 = h * feval(func,x);
y1(1) = y1(1) / 2
y1(n+1) = y1(n+1) / 2
y = sum(y1);
end
2、自定义已知的f(x)函数,func()
function y = func(x)
y=f(x) %要具体的函数表达式
end
3、在命令窗口中,输入
a=1.8;b=2.6;n=10; %回车
traint(-1,0,8,f) %回车
㈢ matlab计算复化梯形求积数值解误差分析,要画图,程序如下
这个是三维绘图,构建x-y平面上的“格点”矩阵。即[X,Y]=meshgrid(xjny)你好像差了一个变量,就是变量z,变量z是和变量X,Y有关的,也就是说它是(X,Y)的函数5173之后才能做出来三维图形只有两个变量只能做出二维图形!
㈣ 使用复化梯形公式计算积分,问应至少将区间 等分为多少份,才能使截断误差
于无法求得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的符号计算工具箱,第一次运行时会加载一小会,耐心等待。以后再运行速度就很快了。
㈤ 求复化梯形法计算定积分 c++程序代码
sin(0)/0 =limit (sinx/x,x->0)=1
sin(1)/1=sin(1)
其余的就简单了吧!只是梯形面积公式和求和而已。
㈥ 分别用不同步长的复合梯形公式计算下列定积分: 要求: 分别用步长 h= 0.5;0.1;0.05;0.01;0.005画出函数
数值计算,步数越短越精确喽
不难,就是麻烦
㈦ 基于matlab的变步长复化梯形积分公式
functionT=myInt3(f,a,b,e)
h=b-a;
T1=h*(f(a)+f(b))/2;
T2=T1/2+h/2*f(a+h/2);
n=2;
whileabs(T2-T1)>=e
T1=T2;
S=0;
forj=0:n-1
x=a+(2*j+1)*(b-a)/(2*n);
S=S+f(x);
end
T2=T1/2+S*(b-a)/(2*n);
n=n*2;
end
T=T2;
测试如下:
对函数3*x^2+4*sin(x)在区间[-2,2]上积分
>> f=@(x)(3*x^2+4*sin(x)');
>> myInt3(f,-2,2,1e-4)
ans =
16.0000
㈧ 复化梯形求积
1.复化梯形求积公式
图7-1 复化梯形求积示意图
如图7-1所示,已知f(x)在区间[a,b]上等距的n+1个节点a=x0<x1<x2<…<xn=b的观测值f0,f1,f2,…,fn,相邻点距为h,以相邻节点为端点,将区间[a,b]划分为n个子区间[xi-1,xi](i=1,2,…,n)。在各个子区间[xi-1,xi](i=1,2,…,n)上,我们用一阶的Lagrange插值函数L1(x)来近似代替f(x),根据线性函数的积分公式容易求得在子区间[xi-1,xi]上的数值积分值Ti就是一个梯形面积,即 将各个子区间的积分相加,即可得到f(x)在[a,b]的近似积分值Tn,即
地球物理数据处理基础
式(7-4)即为复化梯形积分公式,其几何意义是用L1(x)与x轴所夹的n块小梯形面积代替f(x)与x轴所夹的面积。
2.求积余项估计
对于子区间[xi-1,xi]的复化梯形积分,其截断误差或求积余项相当于式(6-28)中取n=1的情况,即
地球物理数据处理基础
由于ξ∈(xi-1,xi)与积分变量x相关,故不能简单积出,应用积分中值定理将f″(ξ)从积分中提出,并且注意(x-xi)(x-xi-1)≤0,于是有
地球物理数据处理基础
为了方便求出上面的积分,作变量代换x=xi-1+th,则
地球物理数据处理基础
注意,上式成立的条件是f(x)∈C2[a,b]。
那么,在区间[a,b]上进行复化梯形积分产生的截断误差或求积余项为
地球物理数据处理基础
式中 是不便估计的,但是,应用连续性中值定理,能找到xm和xM,使f″(xm)最小和f″(xM)最大,且各f″(ηi)(i=1,2,…,n)的平均值 满足
地球物理数据处理基础
因此,必存在一点η∈(xm,xM)∈[a,b],使得 那么就称f″(η)为f″(ηi)的中值,从而有
地球物理数据处理基础
亦即R[f,Tn]随n的增大(或h的减小)呈平方关系减小,因而具有平方收敛性,记R[f,Tn]=O(h2)。
3.代数精度
对于复化梯形积分公式来说,由式(7-6)可知,若f(x)仅为不超过一次的多项式时,f″(η)=0,R[f,Tn]=0,即∫baf(x)dx=Tn精确成立,所以Tn的代数精度为1。
4.数值稳定性
设δi=|fi-f(xi)|(i=0,1,2,…,n), 则Tn的舍入误差
地球物理数据处理基础
即E不随所求节点个数的增加而变化,故Tn的数值稳定性良好。
㈨ mathematica中如何使用复合梯形求积公式
使用Integrate或者NIntegrate函数
mathematica有详细的帮助说明文档, 直接在文档中寻找就可以了.
具体实现方法要看算法的实现思路
㈩ 复合梯形公式f(xk)怎么求
复合梯形公式f(xk)求:根据复合梯形公式,可以求得∫1到3 f(x)dx近似值为18/5。
用复合梯形公式去近似一个剧烈震荡的函数,如果步长不能足够小,误差就不能有效的控制在要求范围内。回忆课本中的误差的估计公式,可以发现有一项是f''(s)(f在某点s的二阶导数)。如果f是一个剧烈震荡的函数,那么f''(s)有可能会非常大,从而增大误差。
复化求积公式
(composite integration rule )是一类重要的求积公式。指将求积区间分为m个子区间,对每个子区间应用同一求积公式,所得到的复合数值积分公式。在每个子区间上用低阶的求积公式,然后将所有子区间上的计算结果加起来,这样得出的公式称为复化求积公式。