数值分析与算法变步长梯形求积法计算定积分
数值分析4-4(李查逊外推加速法)

重复同样的手续,依据柯特斯公式的误差阶
为h6,可进一步导出下列龙贝格公式:
64 1 Rn C 2 n C n 63 63
综合上面的加工过程,有
龙贝格公式三步: 对梯形公式加工: 对辛甫生公式加工: 对柯特斯公式加工:
4 1 S n T2 n Tn 3 3 16 1 C n S2n Sn 15 15 64 1 Rn C 2 n C n 63 63
采用变步长 的计算方案
1.定义:变步长求积法 变步长求积法就是在步长逐次分半(即
步长二分)的过程中,反复利用复化求积公式
进行计算,直至所求得的积分值满足精度要求 为止。 下面讨论变步长的梯形法的计算规律。
2. 变步长的梯形法 设将区间[a, b]分为n等份,共有 n+1 个分点
ba 其步长 h ,在每个小区间[xk,xk+1]上 n
实质:将粗糙的梯形公式值逐步加工成精度较 高的公式
现在的问题是:
能否对龙贝格公式再加工 取得较高精度的公式?
李查逊(Richardson)
外推加速法
三、李查逊外推加速法
李查逊外推加速法基于如下原理 定理 设
f ( x ) C [a , b] ,则成立
T ( h) I a1h2 a2 h4 a3 h6 ... ak h2 k ...
变步长的梯形法设将区间ab分为n等份共有n1个分点其步长如果再二分一次则步长减半即h2分点增至2n1个记区间x只需计算新增分点的函数值这里的h是二分前的步长举例计算积分值sindx详见书上本节例2计算时要注意公式中步长的含义
一、梯形法的递推化
前面介绍的复化求积公式对提高精度 是行之有效的,但使用前必须给出合适的 步长h,如何给出? h太小则计算量增加 h太大则精度不满足
变步长辛卜生求积法 高级语言课程设计

高级语言课程设计——simpson积分公式班级:信息与计算科学(2003070201~3)小组成员:宋亚东200307020126周晓春200307020116瞿子易200307020335指导教师:王玉兰2005年1月12日算法原理:辛卜生积分是一个数值积分,所求的值是近似值。
变步长辛卜生(Simpson)积分求积法是计算定积分S=∫a b f(x)dx的经典方法,其计算步骤如下:1)用梯形公式计算T n=h[f(a)+f(b)]/2,其中n=1,h=b-a,且S n=T n。
2)用变步长梯形法则计算T2n=1/2T n+h/2∑f(x k+h/2)3)用辛卜生求积公式计算S2n=(4T2n-T n)/3若|S2n-S n|≧ε,则令2n=n,h/2=h,转到步骤(2)继续进行计算;否则结束,S2n即为所求积分的近似值。
其中ε为事先给定的求积精度。
设计分析:由分析可将程序分为运算函数和数值输入输出两部分,其重点应为辛卜生积分公式的算法实现。
首先建立一个类函数,其中包括函数的运算对象及其基本运算,然后构造关于梯形计算公式的运算函数。
最后构造关于辛卜生计算公式的函数,根据原理中|S2n-S n|与ε的关系(ε为给定的精度),可以确定一个while函数,设计积分数值的精度与给定精度的关系为判断条件。
用for函数计算各部分和,最后求出积分值。
算法实现:#include<iostream>using namespace std;#include<math.h>class simpsonValue{public:double x_lowValue,x_highValue,epsValue;simpsonValue(double x_lowInitialValue,double x_highInitialValue,double epsInitialValue) {x_lowValue=x_lowInitialValue;x_highValue=x_highInitialValue;epsValue=epsInitialValue;}double Func(double x){return 1+x+x*x;}double getResults(){int n,k;n=1;double h,T1,T2,S1,S2,ep,p,xValue;h=x_highValue-x_lowValue;T1=h*(Func(x_lowValue)+Func(x_highValue))/2.0;S1=T1;ep=epsValue+1.0;while(ep>epsValue){p=0.0;for(k=0;k<=n-1;k++){xValue=x_lowValue+(k+0.5)*h;p=p+Func(xValue);}T2=(T1+h*p)/2.0;S2=(4.0*T2-T1)/3.0;ep=fabs(S2-S1);T1=T2;S1=S2;n=n+n;h=h/2.0;}return S2;}};void main(){double x_low,x_high,eps;cout<<"enter the double x_low number:";cin>>x_low;cout<<"enter the double x_high number(the number you enterd should be greater than x_low):";cin>>x_high;cout<<"enter the double-type ε :";cin>>eps;simpsonValue myResult(x_low,x_high,eps);double results=myResult.getResults();cout<<"the result is : "<<results<<" "<<endl;}结果分析:可以改变ε的精度来得到所想要的积分值的精度,同时,可以改变|4T2n-T n|/3为|6T2n-T n|/5,|8T2n-T n|/7……,增加积分值的精度。
(完整word版)《数值分析》matlab实验报告-梯形、辛普森求积公式

东莞理工学院《数值分析》实验报告实验名称:牛顿插值法系别:计算机学院专业:2013级信息与计算科学班级:1班姓名:学号:实验日期:1、实验内容用不同数值方法计算积分104ln 9x xdx =-⎰。
2、算法说明 梯形求积公式算法:将积分区间[,]a b 划分为n 等份,步长b ah n-=分点为 ,1,2,...,k x a kh k n =+=。
积分10()2nk k k h I x x +==+∑。
辛普森求积公式算法:5(4)012()(4)()390xx h h f x dx y y y f c =++-⎰其中h 为步长。
3、Matlab 软件程序清单梯形求积公式TiXing_quad(a,b,h):function t = TiXing_quad(a,b,h) %a 为积分下界,b 为积分上界,h 为步长。
format long x = a:h:b;y = sqrt(x).*log(x); y(1) = 0;t = 0;for k=1:(b-a)/h,t=t+y(k)+y(k+1);endt=t*h/2;辛普森求积公式Sinpson_quad(a,b,h):function s=Sinpson_quad(a,b,h)format longx=a:h:b;y=sqrt(x).*log(x);z=sqrt(x+h/2).*log(x+h/2);y(1)=0;s=0;for k=1:(b-a)/h,s=s+y(k)+y(k+1)+4*z(k);ends=s*h./6;4、运行结果真值I=-4/9=-0.444444444444444次数I(梯形公式)I(辛普森公式)50 -0.441090226387332 -0.443793798301150100 -0.443117905322695 -0.444194********* 200 -0.443925359444891 -0.4443490454521025、分析与思考“”“”At the end, Xiao Bian gives you a passage. Minand once said, "people who learn to learn are very happy people.". In every wonderful life, learning is an eternal theme. As a professional clerical and teaching position, I understand the importance of continuous learning, "life is diligent, nothing can be gained", only continuous learning can achieve better self. Only by constantly learning and mastering the latest relevant knowledge, can employees from all walks of life keep up with the pace of enterprise development and innovate to meet the needs of the market. This document is also edited by my studio professionals, there may be errors in the document, if there are errors, please correct, thank you!。
变步长辛卜生求积法

算法原理
变步长辛卜生求积法是计算定积分 步骤如下:
b
f (x的)d经x典方法,其 a
1. 用梯形公式计算,Tn h f a f b 2其中
且令
2. 用变步S 长梯n 形法则T计n算
n 1, h b a
3.
用辛卜生S求2n积分1
xk
h 2
S2n 4T2n Tn 3
谢谢观看
若 | S2n | Sn ,则 令 2n n ,h/2 h,转到步骤(2)继续进
行计算;否则结束, 即为S所2n求积分的近似值。其中 为事
先给定的求积精度.
算法实现
根据上述算法,可以实现Cintegrai类变步长辛卜生求积法的函数 GetValueSimpson,其代码如下:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, //变步长辛卜生求积分法 // //调用时,须覆盖计算函数f(x)值的虚函数double Func(double x) // 参数: //1.a – Double型变量,积分下限 //2.b –Double型变量,积分上限,要求b>a //3.esp –Double型变量,积分精度要求 // //返回值:double型,积分值
抽象类只能作为基类来使用其纯虚数的实现由派生类给出2用梯形公式计算其中用辛卜生求积分公式计算变步长辛卜生求积法是计算定积分的经典方法其步骤如下
抽象类的介绍
带有纯虚数的类叫抽象类 抽象类是一种特殊的类,它是为了抽象和设计的目的 而建立的,他处于继承层次结构的较上层。 抽象类的主要的作用是将有关的组织在一个继承层次 结构中,由它来为它们提供一个公共的根,相关的子 类是从这个根派生出来的。 抽象类刻画了一组子类的造作接口的通用语义这些语 义也传给子类。 抽象类只能作为基类来使用,其纯虚数的实现由派生 类给出1
c.2数值积分中复化simpson公式和变步长梯形法内容

c.2数值积分中复化simpson公式和变步长梯形法内容1. 引言1.1 概述数值积分是数学领域中重要的计算方法之一,广泛应用于工程、物理、经济学等多个学科。
它通过近似求解定积分来解决无法进行解析求解的复杂函数问题。
在数值积分方法中,复化Simpson公式和变步长梯形法都是常见且有效的技术手段。
1.2 文章结构本文将围绕复化Simpson公式和变步长梯形法展开讨论,并对它们进行比较与选择。
文章主要分为引言、复化Simpson公式、变步长梯形法、两者比较与选择以及结论部分。
1.3 目的本文旨在介绍复化Simpson公式和变步长梯形法这两种数值积分方法,探讨它们的基本原理、方法步骤以及在实际应用中的优势和适用场景。
通过对比与选择这两种方法,可以为读者提供更好地理解和运用数值积分技术的指导,并为未来研究方向和改进空间提供一定参考。
2. 复化Simpson公式:2.1 基本原理:复化Simpson公式是一种数值积分方法,用于近似计算定积分的值。
它基于简单的Simpson公式,并将区间等分为若干子区间,在每个子区间上应用Simpson公式来进行积分计算。
2.2 方法步骤:下面是复化Simpson公式的具体步骤:1. 将要积分的区间[a, b]等分为n个子区间,每个子区间宽度为h。
2. 根据Simpson公式,计算每个子区间的积分值。
3. 将所有子区间的积分值相加,得到整个区间[a, b]上的近似积分值。
具体而言,对于每个子区间[x(i-1), x(i)], i从1到n,使用Simpson公式进行积分近似。
即将该子区间均匀地划分为两部分,并以梯形面积和抛物线面积来逼近曲线下面积。
然后将所有n个子区间的近似积分值相加,得到最终的数值积分结果。
2.3 应用和优势:复化Simpson公式在数学和工程领域中广泛应用于需要进行定积分计算的问题。
它的优势包括:1. 相比于简单的Simpson公式,复化Simpson公式可以更准确地近似计算定积分的值。
高校(理工类)数学变步长的梯形法则教学(课堂讲义)

1 (Tn (h) 2 H n (h)) 3 h 1 h h 所以S 2 n ( ) (T2 n ( ) 2 H 2 n ( )) 2 3 2 2
变步长Simpson求积公 式
程序实现的基本思想: Tn (h) H n (h) S n (h) h h h T2 n ( ) H 2 n ( ) S 2 n ( ) 2 2 2 h h 当 S 2 n ( ) S n (h) 时,取S 2 n ( )为 2 2 定积分的近似值,否则 将分点加密一倍, 重复上述过程。
[例2]
11 1 1 1 I S 5 ( h) [( ) 2 ( 6 5 1 0 11 1 0.2 1 1 1 1 )] 1 0.4 1 0.6 1 0.8 1 1 1 1 1 1 1 1 1 ( 2 ( )) 30 2 1.2 1.4 1.6 1.8 2 0.69315 24 ( 4) 因为 f ( x) 24 5 1 x
变步长Simpson求积算 法
1.输入a, b, , M ; 2. 计算Tn (h), H n (h), S n (h) h( f (a) f (b)) (1) n 1; h b a; T1 ; 2 ab 1 (2) H n hf ( ); S1 (T1 2 H n ); 2 3 h h h 3. 计算T2 n ( ), H 2 n ( ), S 2 n ( ) 2 2 2 1 h (1) T2 (T1 H n ); n 2n; h ; 2 2 n 1 1 (2) H n h f (a ( j )h); S 2 (T2 H n ); 2 3 j 1
复化梯形公式和变步长法的比较
复化梯形法 变步长法
变步长梯形求积法计算定积分(word文档良心出品)

变步长梯形求积法计算定积分1.原理:变步长求积法的思想是利用若干小梯形的面积代替原方程的积分,当精度达不到要求时,可以通过增加点数对已有的区间再次划分,达到所需精度时即可;其中由于新的式子中有原来n点中的部分项主要公式:T2n=T n/2+(h/2)*Σf(x k+0.5);2.源程序如下:#include"math.h"#include"iostream.h"double f(double x){double s;s=log(x*x);return(s);}double ffts(double a,double b,double eps){int n,k;double fa,fb,h,t1,p,s,x,t;fa=f(a);fb=f(b);n=1;h=b-a;t1=h*(fa+fb)/2;p=eps+1;while(p>=eps){s=0;for(k=0;k<=n-1;k++){x=a+(k+0.5)*h;s=s+f(x);}t=t1/2+h*s/2;p=fabs(t1-t);cout<<"步长n为:"<<n<<"时的"<<"Tn="<<t1<<'\t'<<"T2n="<<t<<'\t'<<"误差变化:"<<p<<endl;t1=t;n=n*2;h=h/2;}return(t);}void main(){double result,a,b,eps;cout<<"需要求解的积分式为f(x)=log(x^2)"<<endl;cout<<"输入边界值a="<<'\t';cin>>a;cout<<"输入边界值b="<<'\t';cin>>b;cout<<"输入误差限"<<'\t';cin>>eps;result=ffts(a,b,eps);cout<<"经过变步长梯形求积法得方程结果为:"<<result<<endl;}3.运行结果:根据程序提示依次输入积分上限和积分下限,然后输入误差限;本程序需要预先在程序中输入需要积分方程的表达式。
变步长梯形积分算法求函数定积分PPT文档共19页

11、用道德的示范来造就一个人,显然比用法律来约束他更有价值。—— 希腊
12、法律是无私的,对谁都一视同仁。在每件事上,她都不徇私情。—— 托马斯
13、公正的法律限制不了好的自由,因为好人不会去做法律不允许的事 情。——弗劳德
14、法律ห้องสมุดไป่ตู้为了保护无辜而制定的。——爱略特 15、像房子一样,法律和法律都是相互依存的。——伯克
66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。——裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭
变步长梯形公式

变步长梯形公式变步长梯形公式是数值积分中一种用于近似计算定积分的方法。
在数学中,定积分是一个数学概念,代表了曲线与坐标轴之间的面积。
然而,有些曲线的积分无法通过解析方法进行求解,因此需要使用数值积分方法进行近似计算。
变步长梯形公式是一种数值积分方法,它通过将被积函数的曲线分割成多个小梯形来近似计算定积分的值。
这个方法的核心思想是将整个积分区间分割成多个小区间,然后在每个小区间内使用梯形公式来计算面积,并将这些面积相加得到最终的近似值。
变步长梯形公式的具体实现步骤如下:1. 将积分区间[a, b]等分为n个小区间,每个小区间的长度为h=(b-a)/n。
2. 在每个小区间内,使用梯形公式来计算面积。
梯形公式可以表示为:S = (f(x[i])+f(x[i+1]))*h/2,其中x[i]和x[i+1]分别表示小区间的左边界和右边界,f(x)表示被积函数。
3. 将每个小区间的面积相加得到整个积分区间的近似值:I ≈(f(a)+2f(x1)+2f(x2)+.+2f(x[n-1])+f(b))*h/2。
4. 如果需要提高计算精度,可以通过增加小区间的数量n来减小步长h,进而得到更精确的近似值。
变步长梯形公式的优点是简单易懂、易于实现,适用于一般的函数。
然而,它也存在一些缺点。
首先,当被积函数在积分区间上的变化较大时,梯形公式可能会产生较大的误差。
其次,该方法对积分区间的分割方式较为敏感,不同的分割方式可能会得到不同的近似值。
因此,在实际应用中,需要根据具体问题选择合适的分割方式和步长。
尽管变步长梯形公式存在一些局限性,但它仍然是一种常用的数值积分方法,广泛应用于科学计算、工程计算等领域。
在实际问题中,可以根据需要选择合适的数值积分方法,以获得更精确的结果。
变步长梯形求积公式

变步长梯形求积公式好的,以下是为您生成的关于“变步长梯形求积公式”的文章:在咱们数学的奇妙世界里,有这么一个厉害的家伙,叫变步长梯形求积公式。
这玩意儿,就像是一把神奇的钥匙,能帮咱们打开求解复杂面积问题的大门。
我记得有一次,给一群高中生讲这个知识点的时候,有个学生瞪着大眼睛问我:“老师,这变步长梯形求积公式到底有啥用啊?感觉好复杂!”我笑着告诉他:“别急,等你明白了它的妙处,就会觉得它像个贴心的小助手。
”咱先来说说这变步长梯形求积公式到底是啥。
其实啊,它就是把一个要计算面积的图形,切成好多小梯形,然后通过计算这些小梯形面积的和来逼近真实的面积。
想象一下,就像是拼图一样,只不过咱们拼的不是图形,而是面积的数值。
比如说,要计算一个曲线和坐标轴围成的面积。
咱先用大步长划分出几个梯形,算出一个大概的面积。
但这还不够精确,对吧?这时候变步长就发挥作用啦,把步长变小,再划分更多更细的梯形,这样算出来的面积就更接近真实值啦。
这就好比你要估算一下自己家花园的面积。
一开始,你粗略地把它分成几个大块,心里有个大概的数。
但要是想知道更准确的,就得把它分成更小的块来计算。
在实际解题中,变步长梯形求积公式可好用了。
比如计算一个函数在某个区间上的定积分。
咱先用大步长试试水,算出一个结果。
然后逐步减小步长,每次计算的结果都会更精确。
我曾经看到过一个题目,要求计算一个复杂函数在[0, 5]区间上的面积。
一开始,用步长为 1 算出来的结果和真实值相差挺大。
然后把步长变成 0.5,再变成 0.1,每一次的改进都让结果更接近标准答案。
这过程就像在打磨一块宝石,越磨越精细,越接近完美。
而且啊,这变步长梯形求积公式不仅仅在数学里有用,在实际生活中也能派上用场呢。
比如说,工程师要计算某个不规则零件的面积,或者经济学家要估算某种商品的需求曲线下的面积,都能靠它来帮忙。
学习这个公式的过程,就像是一场探险。
有时候会遇到难题,就像在森林里迷路了一样。
变步长梯形求积法计算定积分

变步长梯形求积法计算定积分1.原理:变步长求积法的思想是利用若干小梯形的面积代替原方程的积分,当精度达不到要求时,可以通过增加点数对已有的区间再次划分,达到所需精度时即可;其中由于新的式子中有原来n点中的部分项主要公式:T2n=T n/2+(h/2)*Σf(x k+0.5);2.源程序如下:#include"math.h"#include"iostream.h"double f(double x){double s;s=log(x*x);return(s);}double ffts(double a,double b,double eps){int n,k;double fa,fb,h,t1,p,s,x,t;fa=f(a);fb=f(b);n=1;h=b-a;t1=h*(fa+fb)/2;p=eps+1;while(p>=eps){s=0;for(k=0;k<=n-1;k++){x=a+(k+0.5)*h;s=s+f(x);}t=t1/2+h*s/2;p=fabs(t1-t);cout<<"步长n为:"<<n<<"时的"<<"Tn="<<t1<<'\t'<<"T2n="<<t<<'\t'<<"误差变化:"<<p<<endl;t1=t;n=n*2;h=h/2;}return(t);}void main(){double result,a,b,eps;cout<<"需要求解的积分式为f(x)=log(x^2)"<<endl;cout<<"输入边界值a="<<'\t';cin>>a;cout<<"输入边界值b="<<'\t';cin>>b;cout<<"输入误差限"<<'\t';cin>>eps;result=ffts(a,b,eps);cout<<"经过变步长梯形求积法得方程结果为:"<<result<<endl;}3.运行结果:根据程序提示依次输入积分上限和积分下限,然后输入误差限;本程序需要预先在程序中输入需要积分方程的表达式。
第三章 第四节 变步长积分法

一、引言
变步长积分法
二、以梯形公式为例来介绍这一算法
一、引言
利用复化梯形公式和复化Simpson公式来进行定积 分的近似计算既简便, 又可以达到满意的计算精度。
但是为了确定把积分区间 a, b 分成多少个子区间,即 n
取多大, 则需依据误差表达式作事先估计, 就要Байду номын сангаас析
被积函数的高阶导数,而这是很困难的。
S2n Sn
(4.4)
来控制计算过程。
2n
k 0
f k f x dx
b a
则得到
I Tn 4 I T2 n
I T2 n
1 T2 n Tn 3
(4.3)
这说明,若用不等式(4.1)来控制计算过程。则 T2n 与积 分精确值之差大约是允许误差的三分之一,因此计算可 以至此为止。误差的这种估计法称为后天估计(或事后 估计)。 对于 Simpson 公式, 也可以同样进行区间逐次分 半,并可由不等式
T n
1 ba T E2 n f I T2 n 12 2n
3 2 n 1 k 0
f
k
将两式相除并注意当 n 充分大时
b a n 1
n
f
k 0 k
b
a
f x dx
b a 2 n 1
T2n Tn
(取绝对误差)
(4.1)
T2 n Tn T2 n
(取相对误差)
(4.2)
是否满足,如果满足,则取 T2n 为所求定积分之近似 值,否则区间继续分半,重复上述过程直至条件满足。
现在我们来分析为什么可以通过(4.1)式来控制 计算过程。由(3.2)式可知
变步长的梯形积分方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告变步长的梯形积分方法的应用一、问题背景实际问题当中常常需要计算积分,有些数值方法,如微分方程和积分方程的求解,也都和积分计算相关联。
依据人们所熟知的微积分基本定理,对于积分()dx x f I a ⎰=b, 只要找到被积分函数()x f 的原函数()x F ,便有下列牛顿-莱布尼茨(Newton-Leibniz )公式:()()()a F b F dx x f b-=⎰a . 但实际使用这种求积分方法往往有困难,因为大量的被积函数,诸如()0sin ≠x xx ,2x e -等,其原函数不能用初等函数表达,故不能用上述公式计算。
即使能求得原函数的积分,有时计算也十分困难。
例如对于被积函数()611x x f +=,其原函数 ()C x x x x x x x x F ++-+++⎪⎭⎫ ⎝⎛-+=1313ln 3411arctan 61arctan 3122, 计算()a F ,()b F 仍然很困难,另外,当()x f 是由测量或数值计算给出的一张数据表时,牛顿-莱布尼茨公式也不能直接运用。
因此有必要研究积分的数值计算问题。
二、数学模型由于牛顿-科特斯积分公式在8≥n 时不具有稳定性,故不能通过提高阶数的方法来提高求积精度。
为了提高精度通常可以把积分区间划分成若干的子区间(通常是等分),再在每个子区间上用低阶求积公式。
这种方法称为复合求积法。
复合梯形法虽然方法简单,但是却不能估计积分精度,这有时候是很不方便的。
要想控制积分精度,可以采用如下的方法,设积分区间已经划分为n 个子区间,这时再把区间划分更细,给出新的积分结果,如果前后两次积分的差比给定的误差容限小的话,则停止细华否则继续增加积分区间。
这种方法原理很简单也 容易实现,但是实际计算中一般采用的比较少,因为这种方法比较机械效率不是太高,实际上采用比较多的通常是Romberg 方法。
数值分析高斯—勒让德积分公式

高斯—勒让德积分公式摘要:高斯—勒让德积分公式可以用较少节点数得到高精度的计算结果,是现在现实生活中经常运用到的数值积分法。
然而,当积分区间较大时,积分精度并不理想。
T he adva ntage of Gauss-Legendre integral formula is tend to get high-precision calculational result by using fewer Gauss—points, real life is now often applied numerical integration method。
But the precision is not good when the length of integral interval is longer.关键字:积分计算,积分公式,高斯—勒让德积分公式,MATLABKeyword:Integral Calculation , Integral formula ,Gauss-Legendre integral formula, Matlab 引言:众所周知,微积分的两大部分是微分与积分.微分实际上是求一函数的导数,而积分是已知一函数的导数,求这一函数.所以,微分与积分互为逆运算。
实际上,积分还可以分为两部分。
第一种,是单纯的积分,也就是已知导数求原函数,称为不定积分。
相对而言,另一种就是定积分了,之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数.计算定积分的方法很多,而高斯—勒让德公式就是其中之一.高斯积分法是精度最高的插值型数值积分,具有2n+1阶精度,并且高斯积分总是稳定。
而高斯求积系数,可以由Lagrange多项式插值系数进行积分得到。
高斯—勒让德求积公式是构造高精度差值积分的最好方法之一。
他是通过让节点和积分系数待定让函数f(x)以此取i=0,1,2。
.。
n次多项式使其尽可能多的能够精确成立来求出积分节点和积分系数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
变步长梯形求积法计算定积分
1.原理:
变步长求积法的主要思想是利用若干小梯形的面积代替原方程的积分,当精度达不到要求时,可以通过增加点数对已有的区间再次划分,达到所需精度时即可;其中由于新的式子中有原来n点中的部分项,故可以省略一些计算,符合了计算机计算存储的思想。
主要公式:T2n=T n/2+(h/2)*Σf(x k+;
2.C++语言实现方式:
通过每次的T n值和新增的函数值点计算T2n,再通过判断|T n-T2n|的大小来判断是否达到精度要求。
3.源程序如下:
#include""
#include""
double f(double x)//预先输入的待积分函数
{
double s;
s=log(x*x);
return(s);
}
double ffts(double a,double b,double eps)
{
int n,k;
double fa,fb,h,t1,p,s,x,t;
fa=f(a);
fb=f(b);
n=1;
h=b-a;
t1=h*(fa+fb)/2;
p=eps+1;
while(p>=eps)
{
s=0;
for(k=0;k<=n-1;k++)
{
x=a+(k+*h;
s=s+f(x);
}
t=t1/2+h*s/2;
p=fabs(t1-t);
cout<<"步长n为:"<<n<<"时的"<<"Tn="<<t1<<'\t'<<"T2n="<<t<<'\t'<<"误差变化:"<<p<<endl;
t1=t;
n=n*2;
h=h/2;
}
return(t);
}
void main()
{
double result,a,b,eps;
cout<<"需要求解的积分式为f(x)=log(x^2)"<<endl;
cout<<"输入边界值a="<<'\t';
cin>>a;
cout<<"输入边界值b="<<'\t';
cin>>b;
cout<<"输入误差限"<<'\t';
cin>>eps;
result=ffts(a,b,eps);
cout<<"经过变步长梯形求积法得方程结果为:"<<result<<endl;
}
4.程序运行结果:
根据程序提示依次输入积分上限和积分下限,然后输入误差限;本程序需要预先在程序中输入需要积分方程的表达式。
程序运行的结果如下图所示:
5.实验小结:
通过本次实验,我学会了变步长梯形求积法的实现方式。
其本质在于通过增加函数值点来获得精度的提高。
而定积分的实质就是面积的计算,这样就可以利用若干小梯形来代替原来的函数。
但缺点是函数必须是符号单一的,否则无法获得准确的积分值。
同样,本次实验用到的积分式必须预先给定。