复化梯形公式和复化辛普森公式的精度比较
分别利用矩形法梯形法辛普森法对定积分进行近似计算并比较计算效果
分别利用矩形法梯形法辛普森法对定积分进行近似计算并比较计算效果定积分是微积分中重要的概念之一,表示在一个区间上函数的面积。
在计算定积分时,有时候我们无法通过解析方法求得精确的结果,这时候可以利用数值方法来进行近似计算。
常见的数值方法包括矩形法、梯形法和辛普森法。
本文将分别对这三种方法进行介绍并进行比较。
1.矩形法(矩形近似法):矩形法是最简单的数值方法之一,它的基本思想是将函数曲线上每个小区间的面积近似为一个矩形的面积,然后将这些矩形的面积相加,即可得到函数曲线下的面积。
根据矩形法的计算公式可以得到:∫f(x)dx ≈ Δx·(f(x₁)+f(x₂)+...+f(xₙ))其中,Δx为区间的长度,f(x)为函数在区间上的值。
2.梯形法(梯形近似法):梯形法同样是利用近似的思想,将函数曲线上每个小区间的面积近似为一个梯形的面积,然后将这些梯形的面积相加,即可得到函数曲线下的面积。
梯形法的计算公式为:∫f(x)dx ≈ (Δx/2)·[f(x₀)+2f(x₁)+2f(x₂)+...+2f(xₙ-1)+f(xₙ)]其中,Δx为区间的长度,f(x)为函数在区间上的值。
3.辛普森法(抛物线近似法):辛普森法是一种基于三次多项式插值的数值积分方法,它通过将函数曲线上每个小区间的面积近似为一个抛物线的面积,然后将这些抛物线的面积相加,即可得到函数曲线下的面积。
辛普森法的计算公式为:∫f(x)dx ≈ (Δx/3)·[f(x₀)+4f(x₁)+f(x₂)+4f(x₃)+...+4f(xₙ-1)+f(xₙ)]其中,Δx为区间的长度,f(x)为函数在区间上的值。
例:计算函数f(x)=√(1+x²)在区间[0,1]上的定积分。
接下来,我们分别利用矩形法、梯形法和辛普森法对这个定积分进行近似计算,并比较计算结果。
1)矩形法:将区间[0,1]平均分为n个小区间,取xᵢ=i/n,其中i=0,1,2,...,n。
(完整版)复合梯形公式与复合辛普森公式对比
SHANGHAI JIAO TONG UNIVERSITY题目名称:复合梯形公式与复合辛普森公式对比学生姓名:学生学号:班级:学院(系):目录1.概述 (3)2.问题提出 (4)3.算法推导 (5)4.算法框图 (6)4.1复合梯形公式算法流程图 (6)4.2 复合辛普森公式算法流程图 (7)5.MATLAB源程序 (8)6.结论与展望 (9)图表目录图4-1 复合梯形公式算法流程图 (6)图4-2 复合辛普森公式算法流程图 (7)图6-1 MATLAB计算结果 (9)表2-1函数计算结果表 (4)1.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。
其中梯形求积公式可表示为由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。
为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。
这种方法称为复合求积法。
本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。
首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。
希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用范围和适用条件。
并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。
同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。
2.问题提出对于函数f(x)=sinxx给出的函数表如下,试用复合梯形公式和复合辛普森公式计算积分I=∫sinxx dx1。
表 2-1函数计算结果表3. 算法推导3.1复合梯形公式根据梯形公式,将区间[a,b]划分为n 等份,分点x k =a +kℎ,h =b−a n,k =0,1,…,n ,在每个子区间[x k ,x k+1](k =0,1,…,n −1)上采用梯形公式,则得:记则T n 为复合梯形公式。
几种数值积分算法的误差分析
Sn
h 6
f
n1
(a) 2
k 1
f
n
(xk ) 4
k 1
f
(
x k
1
)
2
f
(b)
(3)复化Cotes求积公式
h
n1
3
n1
n1
Cn
90
7
f
(a) 32( (
k 0
f
(
x k
1
)
4
f
(xk
4
))
12
k
0
(
x k
1、Newton-Cotes求积公式的误差分析
(1)梯形公式的截断误差 (2)辛普森公式截断误差 (3)柯特斯公式截断误差
RT
f ( ) (b a)3, 12
(a,b)
RS
(b a)5 2880
f
(4) ( ), (a,b)
RC
2(b a) 945
(b
一、几种数值积分的算法
1、Newton-Cotes求积公式
(1)梯形公式(n=1)
b f (x)dx T b af (a) f (b)
a
2
(2)Simpson(辛普森)公式(n=2)
b
f (x)dx S
a
b
6
a
f
(a)
4
f
(a
2
b)
f
(b)
(3)Cotes公式(n=4)
b
数值分析积分实验报告(3篇)
第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
复化梯形公式和复化Simpson公式
一、计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。
1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x %定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。
f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果 Tn=等分数 n=7019已知值与计算值的误差 R=2. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果 Sn=等分数 n=24已知值与计算值的误差 R=用复化梯形公式计算的结果为:,与精确解的误差为:。
球体体积计算-梯形公式与辛普森公式
梯形公式和辛普森公式计算球体体积题目:分别用梯形公式和辛普森公式计算半径为1的球体体积解答:计算积分值:I=梯形公式:I=(b-a)/2*[]组合梯形公式:辛普森公式:I=(b-a)/6*[] 组合辛普森公式:+*(1)梯形公式计算定义函数function y=fx(x) function T_n=fht(a,b,n)源代码:function y=fx(x)y=3.14*(1-x^2);function T_n=fht(a,b,n)h=(b-a)/n;for k=0:nx(k+1)=a+k*h;endT_1=h/2*(fx(x(1))+fx(x(n+1)));for i=2:nF(i)=h*fx(x(i));endT_2=sum(F);T_n=T_1+T_2;(2)辛普森公式计算定义函数function G_n=sps(a,b,n)源代码:function G_n=sps(a,b,n)h=(b-a)/n;for k=0:nx(k+1)=a+k*hx_k(k+1)=x(k+1)+1/2*hendG_1=h/6*(fx(x(1))+fx(x(n+1)));for i=2:nF_1(i)=h/3*fx(x(i));endfor j=1:nF_2(j)=2*h/3*fx(x_k(j));endG_2=sum(F_1)+sum(F_2);G_n=G_1+G_2;结果分析:梯形公式:n=10,100,1000,T_n=fht(-1,1,10) T_n=4.1848T_n=fht(-1,1,100) T_n=4.1862T_n=fht(-1,1,1000) T_n=4.1867辛普森公式:n=10,100,1000G_n=sps(-1,1,10) G_n=4.1867G_n=sps(-1,1,10) G_n=4.1867G_n=sps(-1,1,10) G_n=4.1867通过对比,n值越大,球体体积的计算结果更加准确,并且辛普森公式计算比梯形公式更加准确V-n关系曲线梯形公式V-n曲线代码:辛普森公式V-n曲线代码:图形:。
复合梯形公式和复合辛普森公式例题
复合梯形公式和复合辛普森公式例题复合梯形公式和复合辛普森公式例题数值计算是现代科学技术中重要的研究领域之一,而数值积分是数值计算中的一个重要分支。
数值积分是指在一定区间上用数值方法来逼近求解定积分的过程。
综合考虑精度和效率,梯形公式和辛普森公式是数值积分中比较常用的方法,而复合梯形公式和复合辛普森公式则是对前两种方法的改进和完善。
一、复合梯形公式(一)基本原理梯形公式是数值积分中运用最广泛的一种方法,其基本思想是将被积函数在区间[a,b]上的曲线用若干条梯形逼近,然后计算梯形的面积之和,得到函数曲线下的面积。
若将区间[a,b]分为n个小区间,梯形公式还可以推广为复合梯形公式。
复合梯形公式的基本原理是将整个区间[a,b]等分为n 个小区间,每个小区间的长度为h=(b-a)/n,然后对于每个小区间求出梯形的面积,并将所有梯形面积加起来得到函数曲线下的面积,并作为积分的近似值。
具体地说,复合梯形公式的表达式为:$$\int_a^b f(x)dx \approx \frac{h}{2}[f(a)+2\sum_{i=1}^{n-1} f(x_{i})+f(b)]$$其中,$x_1=a+h,x_2=a+2h,...,x_{i+1}=x_i+h,...,x_{n}=b-h$,h是小区间长度。
(二)例题现在考虑如下的积分:$$I=\int_0^1 e^{x^2} dx$$将整个区间[0,1]等分为4个小区间,得到$h=0.25$,对于每个小区间,可以分别求出梯形的面积,得到:$$\frac{h}{2}[f(0)+2f(0.25)+2f(0.5)+2f(0.75)+f(1)]$$代入函数$f(x)=e^{x^2}$,得到近似积分值为$1.4627$。
使用Matlab代码进行计算,得到具体结果为:>> f=@(x) exp(x.^2); h=0.25; x=0:h:1;I=h/2*(f(x(1))+2*sum(f(x(2:end-1)))+f(x(end))) sprintf('%.5f',I)ans =1.46270可以发现,与精确值$1.46265$相比,误差很小,说明复合梯形公式是一种很有效的近似积分方法。
复化梯形公式和复化辛普生公式
1)复化梯形
#include<iostream.h>
#include<math.h>
class tixing
{
private:
int n,k;//n是等分数,
double h,f;//h步长
double a,b,integral,sum;//a上限,b下限,integral积分值
public:
《数值分析》实验报告
姓名
学号
日期
2012.11.20
实验室
设备编号
实验题目
用复化梯形公式和复化辛普生公式求I=∫01sinx/xdx
一实验目的
1.了解复化梯形公式和复化辛普生公式。
2.用复化梯形公式和复化辛普生公式求I=∫01sinx/xdx。
二实验内容
算法:复化梯形公式是Tn=∑h/2[f(xi)+ f(xi+1)]=(b-a)/2n[f(a)+2∑f(xi)+f(b)]记子段[xi,xi+1]的中点为xi+1/2,则复化Simpson公式为Sn=∑h/6[f(xi)+4f(xi+1/2)+ f(xi+1)]=b-a/6n[f(a)+4∑f(xi+1/2)+2f(xi)+f(b)]
double a,b,f,integral,interval;//a上限,b下限,integral积分值,interval每次应用法则的区间长度(2h)
double sum_odd_terms,x,sum_even_terms;//sum_even_terms偶数结点处的函数值之和,sum_odd_terms奇数结点处的函数值之和
数值分析习 题 五 解 答
习 题 五 解 答1、分别用梯形公式和辛普森公式计算下列积分,并比较结果。
(1)12(8)4x d x n x=+⎰,(2)20sin (8)x xd x n π=⎰(3)21(4)x n =⎰,(4)10(4)xed xn -=⎰指出:教材中梯形公式和抛物线公式是指单一的而非复化的,但应用复化公式才符合多节点情形。
按教材设想,此处应该应用P118公式。
解:(1)n=8,则 10188b a hn--===,应用复化梯形公式得712h (0)2()(1)]0.111402442k k x d x f f x f x==++=+∑⎰[;应用复化抛物线公式得771122h (0)4()2()(1)]0.111571846k k k k x d x f f xf x f x+===+++=+∑∑⎰[如果采用经典方法推导出的抛物线公式,则得12h2461357(0)(1)2(()()()]4(()()()())]0.1115238438888888=+++++++++=+⎰x d x f f f f f f f f f x[可见,两个抛物线公式结果不一样,因为实际上取的节点不一样多。
1*、用矩形公式、梯形公式、抛物线公式计算下列积分,并比较结果。
(1)12(4)4x d x n x=+⎰解:解:将区间[0,1]4等分,5个分点上的被积函数值列表如下(取2位小数)(1)矩形法。
用矩形法公式计算(取2位小数)011()()1(00.060.120.16)0.094b n ab a f x d x y y y n--≈+++=+++≈⎰或者12()()1(0.060.120.160.20)0.144b n ab a f x dx y y y n-≈+++=+++≈⎰(2)梯形法用梯形法公式计算(取2位小数):01211()[())]21[(00.20)0.060.120.16]0.114b n n ab a f x dx y y y y y n --≈+++++=++++≈⎰(3)抛物线法用抛物线法公式计算(取2位小数):2413b-a ()2(4(]3n1[(00.2)20.124(0.060.16)]0.1112b n af x dx y y y y y ≈+++++=++⨯+⨯+≈⎰0n-2n-1[(y )++y )++y )2、用复化梯形公式计算积分841d xx⎰,由此计算ln2(注:841ln 2d x x=⎰),精度要求为410-。
复合梯形公式与复合辛普森公式对比
复合梯形公式与复合辛普森公式对比SHANGHAI JIAO TONG UNIVERSITY题目名称:复合梯形公式与复合辛普森公式对比学生姓名:学生学号:班级:学院(系):目录1.概述 (4)2.问题提出 (5)3.算法推导 (6)4.算法框图 (7)4.1复合梯形公式算法流程图 (7)4.2 复合辛普森公式算法流程图 (7)5.MATLAB源程序 (9)6.结论与展望 (10)图表目录图4-1 复合梯形公式算法流程图 (7)图4-2 复合辛普森公式算法流程图 (9)图6-1 MATLAB计算结果 (10)表2-1函数计算结果表 (5)1.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。
其中梯形求积公式可表示为由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。
为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。
这种方法称为复合求积法。
本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。
首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。
希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用范围和适用条件。
并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。
同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。
2.问题提出对于函数f(x)=sinxx给出的函数表如下,试用复合梯形公式和复合辛普森公式计算积分I=∫sinxx dx1。
表错误!文档中没有指定样式的文字。
-1函数计算结果表3. 算法推导3.1复合梯形公式根据梯形公式,将区间[a,b]划分为n 等份,分点x k =a +kℎ,h =b−a n,k =0,1,…,n ,在每个子区间[x k ,x k+1](k =0,1,…,n −1)上采用梯形公式,则得:记则T n 为复合梯形公式。
复化梯形公式和复化Simpson公式
数值计算方法上机题目3一、计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。
1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。
f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果Tn= 7.3891等分数n=7019已知值与计算值的误差R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果Sn= 7.3891等分数n=24已知值与计算值的误差R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。
复化梯形公式和复化Simpson公式
数值计算方法上机题目3一、计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。
1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。
f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果 Tn= 7.3891等分数 n=7019已知值与计算值的误差 R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果 Sn= 7.3891等分数 n=24已知值与计算值的误差 R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。
数值分析上机试题对应参考答案
一、 问答题1、什么是近似值x * 有效数字?若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n 位,就说x*有n 位有效数字。
它可表示为X=±10m ×(a 1+a 2×10-1+…+a n ×10-(n-1),其中a i (i=1,2,…,n)是0到9中的一个数字,a 1≠0,m 为整数,且︱x -x *︱≠21×10m-n+12、数值计算应该避免采用不稳定的算法,防止有效数字的损失. 因此,在进行 数值运算算法设计过程中主要注意什么? (1)简化计算过程,减少运算次数; (2)避免两个相近的数相减;(3)避免除数的绝对值远小于被除数的绝对值; (4)防止大数“吃掉”小数的现象;(5)使用数值稳定的算法,设法控制误差的传播。
3、写出“n 阶阵A 具有n 个不相等的特征值”的等价条件(至少写3 个)(1)|A|不为零(2)n 阶矩阵A 的列或行向量组线性无关 (3)矩阵A 为满秩矩阵(4)n 阶矩阵A 与n 阶可逆矩阵B 等价4、迭代法的基本思想是什么?就是用某种极限过程去逐步逼近线性方程组精确解得方法。
其基本思想为:先任取一组近似解初值X 0,然后按照某种迭代原则,由X 0计算新的近似解X 1,以此类推,可计算出X 2,X 3,…X K ,。
,如果{X }收敛,则取为原方程组的解。
5、病态线性方程组的主要判断方法有哪些?(1)系数矩阵的某两行(列)几乎近似相关 (2)系数矩阵的行列式的值很小(3)用主元消去法解线性方程组时出现小主元(4)近似解x*已使残差向量r=b-Ax*的范数很小,但该近似解仍不符合问题要求。
6、Lagrange 插值的前提条件是什么?并写出二次Lagrange 插值的基函数。
前提条件是:⎩⎨⎧≠==i j i j x j,,(01)l i .2,1,0,n j i , = 二次Lagrange 插值的基函数:()))(())((2010210x x x x x x x x x l ----=()))(())((2101201x x x x x x x x x l ----= ()))(())((1202102x x x x x x x x x l ----=7、什么是数值积分的代数精度?如果某一个求积公式对于次数不超过m 的多项式均能准确地成立,但对于m+1次多项式就不准确成立,则称该求积公式具有m 次代数精度(或代数精确度)。
数值分析数值微积分实验
实验报告
一、实验目的
复化求积公式计算定积分。
二、实验题目
1.用复化梯形公式、复化辛普森公式求下列定积分,要求绝对误差为3
10-=ε,并将计算结果与精确解进行比较: dx e x e x 232
143
2⎰= 三、实验原理
复化求积公式程序,复化辛普森公式程序。
四、实验内容及结果
五、实验结果分析
实验1中复化梯形公式和复化辛普森公式的比较:
运行复化梯形公式的时候,因为要去找区分精度,所以花的时间比较长,需要将区间分为365份时才能达到规定的误差范围。
而复化辛普森公式则只需要将区间分为12份即可。
说明复化辛普森比较好。
常用的复化求积公式有复化梯形公式和复化辛普森公式。
)
2
k 1
f
( xk ) f
(b)
称为复化辛普森公式。
类似于复化梯形公式余项的讨论,复化辛普森公式的 求积余项为
Rs
b a h4 2880
f
(4) ( )
a,b
显然,复化辛普森公式是收敛且稳定的.
复化求积公式的余项表明,只要被积函数f(x)及所涉及 的各阶导数在[a,b]上连续,那么复化梯形公式、复化辛普
n1
求出积分值Ik,然后将它们累加求和,用 I k 作为所求积分I
的近似值。
k 0
I
b
n1
f ( x)dx
a k0ቤተ መጻሕፍቲ ባይዱ
xk1 f ( x)dx n1 h
xk
k0 2
f ( xk ) f ( xk1)
h 2
f
(
x0
)
2(
f
(
x1
)
f (x2 ) ...
森公式所得近似值 Tn , Sn , Cn 的余项和步长的关系依次 为O(h2 ) 、O(h4 )、O(h6 ) 。因此当h→0 (即n→∞)时,Tn , Sn , Cn
都收敛于积分真值,且收敛速度一个比一个快。
例1 依次用n=8的复化梯形公式、n=4的复化辛普森公式计算
I
1 sin x dx
213等份时,用复化梯形公式计算误差不超过 1 105。
2
由于Tn 的求积系数为正,由定理2知复合梯形公式是稳定的.
4.3.2 复化辛普森公式及其误差
将积分区间[a,b]划分为n等分,记子区间 xk , xk1 的中点
数值分析的实验报告
数值分析的实验报告数值分析的实验报告导言数值分析是一门研究数值计算方法和数值计算误差的学科,它在科学计算、工程技术和社会经济等领域具有广泛的应用。
本实验旨在通过对数值分析方法的实际应用,验证其有效性和可靠性。
实验一:方程求根方程求根是数值分析中的基础问题之一。
我们选取了一个非线性方程进行求解。
首先,我们使用二分法进行求解。
通过多次迭代,我们得到了方程的一个近似解。
然后,我们使用牛顿法进行求解。
与二分法相比,牛顿法的收敛速度更快,但需要选择一个初始点。
通过比较两种方法的结果,我们验证了牛顿法的高效性。
实验二:插值与拟合插值与拟合是数值分析中常用的数据处理方法。
我们选取了一组实验数据,通过拉格朗日插值法和最小二乘法进行插值和拟合。
通过对比两种方法的拟合效果,我们验证了最小二乘法在处理含有噪声数据时的优势。
同时,我们还讨论了插值和拟合的精度与样本点数量之间的关系。
实验三:数值积分数值积分是数值分析中的重要内容之一。
我们选取了一个定积分进行计算。
首先,我们使用复化梯形公式进行积分计算。
通过增加分割区间的数量,我们得到了更精确的结果。
然后,我们使用复化辛普森公式进行积分计算。
与复化梯形公式相比,复化辛普森公式具有更高的精度。
通过比较两种方法的结果,我们验证了复化辛普森公式的优越性。
实验四:常微分方程数值解常微分方程数值解是数值分析中的重要应用之一。
我们选取了一个常微分方程进行数值解的计算。
首先,我们使用欧拉方法进行数值解的计算。
然后,我们使用改进的欧拉方法进行数值解的计算。
通过比较两种方法的结果,我们验证了改进的欧拉方法的更高精度和更好的稳定性。
实验五:线性方程组的数值解法线性方程组的数值解法是数值分析中的重要内容之一。
我们选取了一个线性方程组进行数值解的计算。
首先,我们使用高斯消元法进行数值解的计算。
然后,我们使用追赶法进行数值解的计算。
通过比较两种方法的结果,我们验证了追赶法在求解三对角线性方程组时的高效性。
复化梯形公式和复化Simpson公式
数值计算方法上机题目3一、计算定积分的近似值:221x e xe dx =⎰ 要求:(1)若用复化梯形公式和复化Simpson 公式计算,要求误差限71021-⨯=ε,分别利用他们的余项估计对每种算法做出步长的事前估计;(2)分别利用复化梯形公式和复化Simpson 公式计算定积分;(3)将计算结果与精确解比较,并比较两种算法的计算量。
1.复化梯形公式程序:程序1(求f (x )的n 阶导数:syms xf=x*exp(x) %定义函数f (x )n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n 阶导数结果1输入n=2f2 =2*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(2*exp(x) + x*exp(x))','x') %定义f(x)的二阶导数,输入程序1里求出的f2即可。
f3='-(2*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,以便求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的二阶导数的最小值点,也就是求二阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/12*((b-a)/n)^2*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hTn1=0for k=1:n-1 %求连加和xk=a+k*hTn1=Tn1+f(xk)endTn=h/2*((f(a)+2*Tn1+f(b)))z=exp(2)R=Tn-z %求已知值与计算值的差fprintf('用复化梯形算法计算的结果 Tn=')disp(Tn)fprintf('等分数 n=')disp(n) %输出等分数fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用复化梯形算法计算的结果Tn= 7.3891等分数n=7019已知值与计算值的误差R= 2.8300e-0082. Simpson公式程序:程序1:(求f(x)的n阶导数):syms xf=x*exp(x) %定义函数f(x)n=input('输入所求导数阶数:')f2=diff(f,x,n) %求f(x)的n阶导数结果1输入n=4f2 =4*exp(x) + x*exp(x)程序2:clcclearsyms x%定义自变量xf=inline('x*exp(x)','x') %定义函数f(x)=x*exp(x),换函数时只需换该函数表达式即可f2=inline('(4*exp(x) + x*exp(x))','x') %定义f(x)的四阶导数,输入程序1里求出的f2即可f3='-(4*exp(x) + x*exp(x))'%因fminbnd()函数求的是表达式的最小值,且要求表达式带引号,故取负号,一边求最大值e=5*10^(-8) %精度要求值a=1 %积分下限b=2 %积分上限x1=fminbnd(f3,1,2) %求负的四阶导数的最小值点,也就是求四阶导数的最大值点对应的x值for n=2:1000000 %求等分数nRn=-(b-a)/180*((b-a)/(2*n))^4*f2(x1) %计算余项if abs(Rn)<e %用余项进行判断break% 符合要求时结束endendh=(b-a)/n %求hSn1=0Sn2=0for k=0:n-1 %求两组连加和xk=a+k*hxk1=xk+h/2Sn1=Sn1+f(xk1)Sn2=Sn2+f(xk)endSn=h/6*(f(a)+4*Sn1+2*(Sn2-f(a))+f(b)) %因Sn2多加了k=0时的值,故减去f(a)z=exp(2)R=Sn-z %求已知值与计算值的差fprintf('用Simpson公式计算的结果 Sn=')disp(Sn)fprintf('等分数 n=')disp(n)fprintf('已知值与计算值的误差 R=')disp(R)输出结果显示:用Simpson公式计算的结果Sn= 7.3891等分数n=24已知值与计算值的误差R= 2.7284e-008用复化梯形公式计算的结果为:7.3891,与精确解的误差为:2.8300e-008。
复合梯形和复合辛普森MATLAB程序10页
复合梯形和复合辛普森MATLAB程序10页
复合梯形公式和复合辛普森公式都是数值积分方法中的常用方法。
本文将编写MATLAB 程序来实现这两种方法。
一、复合梯形公式
复合梯形公式是将被积函数在每个小区间内近似为一个梯形,再将这些梯形的面积相
加得到数值积分结果。
具体的,在区间$[a,b]$中,将其分成$n$个小区间,记每个小区间的长度为
$h=\frac{b-a}{n}$,则复合梯形公式的数值积分公式为:
$$
\int_a^bf(x)dx\approx \frac{h}{2}\sum_{i=1}^n(f(x_{i-1})+f(x_i))
$$
其中,$x_i=a+ih$,$i=0,1,\dots,n$。
将以上公式写成MATLAB代码:
function result=composite_trapezoidal(f,a,b,n)%f为被积函数,a,b为积分上下限,n为小区间数
h=(b-a)/n;
result=f(a)+f(b);
for i=1:n-1
x=a+i*h;
result=result+2*f(x);
end
result=result*h/2;
end
上述程序中,首先计算$h$,从而计算出$x_i$,然后使用循环遍历每个小区间内的中
点$x$,计算其所在梯形面积,并将所有梯形面积相加得到最终结果。
二、复合辛普森公式
最后需要指出的是,虽然复合辛普森公式的收敛速度比复合梯形公式快,但是当被积函数存在奇点或者发散点时,复合辛普森公式可能不收敛。
此时需要选择其他的数值积分方法来计算。
梯形公式和辛普森公式例题
梯形公式和辛普森公式例题【原创实用版】目录1.梯形公式和辛普森公式的定义和用途2.梯形公式和辛普森公式的例题及解法3.梯形公式和辛普森公式的优缺点比较正文一、梯形公式和辛普森公式的定义和用途梯形公式和辛普森公式都是计算梯形面积的公式,但它们的应用范围和计算方法有所不同。
梯形公式,也叫梯形面积公式,是一个计算梯形面积的数学公式,它的公式为:(上底 + 下底)×高÷2。
梯形公式广泛应用于各种计算梯形面积的问题中。
辛普森公式,是一个计算梯形面积的近似公式,它的公式为:(上底 + 下底)×高÷2 + (上底 - 下底)×高÷4。
辛普森公式适用于对梯形面积的近似计算。
二、梯形公式和辛普森公式的例题及解法例题 1:一个梯形的上底长为 6cm,下底长为 10cm,高为 4cm,求这个梯形的面积。
解法:使用梯形公式,(6+10)×4÷2=16×4÷2=32(平方厘米),所以这个梯形的面积为 32 平方厘米。
例题 2:一个梯形的上底长为 6cm,下底长为 10cm,高为 4cm,要求梯形面积的近似值。
解法:使用辛普森公式,(6+10)×4÷2 + (6-10)×4÷4=16×4÷2 +4×4÷4=32+1=33(平方厘米),所以这个梯形的面积的近似值为 33 平方厘米。
三、梯形公式和辛普森公式的优缺点比较梯形公式的优点是计算简单,直接,适用于精确计算梯形面积。
缺点是如果梯形的上底和下底差距过大,那么计算结果可能会有较大的误差。
辛普森公式的优点是计算结果更为精确,尤其适用于梯形上底和下底差距较大的情况。
缺点是计算过程较为复杂,需要多出一步计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四、复化梯形公式和复化Simpson公式的精度比较
(2学时)
一、实验目的与要求
1、熟悉复化Simpson公式和复化梯形公式的构造原理;
2、熟悉并掌握二者的余项表达式;
3、分别求出准确值,复化梯形的近似值,复化Simpson的近似值,并比较后两
者的精度;
4、从余项表达式,即误差曲线,来观察二者的精度,看哪个更接近于准确值。
二、实验内容:
对于函数
sin
()
x
f x
x
=,试利用下表计算积分1
sin x
I dx
x
=⎰。
表格如下:
注:分别利用复化梯形公式和复化Simpson公式计算,比较哪个精度更好。
其中:积分的准确值0.9460831
I=。
三、实验步骤
1、熟悉理论知识,并编写相应的程序;
2、上机操作,从误差图形上观察误差,并与准确值相比较,看哪个精度更好;
3、得出结论,并整理实验报告。
四、实验注意事项
1、复化梯形公式,程序主体部分:
for n=2:10
T(n)=*T(n-1)
for i=1:2^(n-2)
T(n)=T(n)+(sin((2*i-1)/2^(n-1))/((2*i-1)/2^(n-1)))/2^(n-1);end
end
2、复化Simpson公式,程序主体部分:
for i=1:10
n=2.^i
x=0:1/n:1
f=sin(x)./x
f(1)=1
s=0
for j=1:n/2
s=s+f(2*j)
end
t=0
for j=1:(n/2-1)
t=t+f(2*j-1)
end
S(i)=1/3/n*(f(1)+4*s+2*t+f(n+1))
end
五.实验内容
复化梯形公式和复化辛普森公式的引入
复化梯形公式:
1
10[(()]2
n n k k k h
T f x f x -+==+∑;
复化辛普森公式:
1
1102
[(4()()]6n n k k k k h
S f x f x f x -++
==++∑;
根据题意和复化梯形公式、复化辛普森公式的原理编辑程序求解代码如下: Matlab 代码 clc
s=quad('sin(x)./x',0,1) p1=zeros(10,1); p2=zeros(10,1); for k=6:15 s1=0; s2=0;
x=linspace(0,1,k); y=sin(x)./x;
z=(1/(2*(k-1))):(1/(k-1)):1; sz=sin(z)./z; y(1)=1; for i=1:(k-1)
s1=s1+*(x(i+1)-x(i))*(y(i)+y(i+1)); end for j=1:(k-1)
s2=s2+(1/6)*(x(j+1)-x(j))*(y(j)+y(j+1)+4*sz(j));
end
p1(k-5)=s1-s;
p2(k-5)=s2-s;
end
p1;
p2;
s1=s+p1(4)
s2=s+p2(4)
format long
for k=1:length(p1)
p1(k)=abs(p1(k));
p2(k)=abs(p2(k));
end
p1
p2
plot(6:1:15,p1,'-r')
hold on
plot(6:1:15,10000*(p2),'-c')
hold off
部分程序结果输出:
s =
s1 =
s2 = 结果分析
根据结果输出可知:积分1
sin()
x I dx x =⎰
的准确值为:I= ; 通过复化梯形公式和复化辛普森公式得到的积分值为: s1 =: s2 =;
相对误差为:
411100
4.1510100S I I
δ--=
⨯=⨯;
822100 1.6210100S I I
δ--=⨯=⨯;
显然,从相对误差可知通过辛普森公式得到的结果误差小精度高。
由于以上的算法只算了结点个数为9的情况,只能横向比较两公式的精确程度,而不能分别比较两公式随节点个数变化精度的变化,故而将以上程序重新编(以上程序为最终程序)可得出两公式随节点个数变化精度的变化情况所取得节点个数为从6到15,共计10种情况对应的误差值如下表:
(表1)
注:由于辛普森公式的精度较高,所得的误差值较小不宜比较,故而将辛普森公式计算出的误差值乘上10000得到以上表1的结果,其相应的曲线图如下(图1)。
(图1:两误差曲线比较)
备注:红色,青色分别比奥斯曲线复化梯形公式和复化辛普森公式的误差值曲线从曲线图可知复化梯形公式和复化辛普森公式的随着节点个数的增加误差值越小即其精度逐渐增大,且复化辛普森公式的精度远高于复化梯形公式的精度。