数值分析实验三

合集下载

数值分析实验三 线性方程组的直接接法2

数值分析实验三  线性方程组的直接接法2

数值分析实验三 线性方程的直接解法组号 班级 学号 姓名 分数一:实验目的1、掌握求解线性方程组的不同方法。

二:实验内容及基本知识介绍本实验中利用高斯消去法和矩阵的直接三角分解法求解线性方程组。

用消去法解方程组的基本思想:是用逐次消去未知数的方法把原方程组Ax=b 化为与其等价的三角形方程组,而求解三角形方程组可用回代的方法求解。

即上述过程就是用行的初等变换将原方程组系数矩阵化为简单形式(上三角矩阵),从而将求解原方程组的问题转化为求解简单方程组问题。

或者说对系数矩阵A 施行一些做变换将其约化为上三角矩阵。

直接三角分解法的原理:在高斯消去法的基础上,高斯消去法实质上产生了一个将A 分解为两个三角形矩阵相乘的因式分解,即矩阵的LU 分解——设A 为n 阶矩阵,如果A 的顺序主子式i D ≠0(i=1,2,…n-1),则A 可分解为一个单位下三角矩阵L 和一个上三角矩阵U的乘积,且这种分解是唯一的。

将高斯消去法改写为紧凑形式,可以直接从矩阵A 的元素得到计算L,U 元素的递推公式,而不需要任何中间步骤,这就是直接三角分解法。

一旦实现了矩阵A 的LU 分解,那求解Ax=b 的问题就等价于求解两个三角形方程组 ① Ly=b,求y;② Ux=y,求x.其中用直接三角分解法解Ax=b 的分解矩阵A 的计算公式:①111111(1,2,...),/(2,3,...),i i i i i n i n u a l a u ====计算U 的第r 行,L 的第r 列元素(r=2,3,…n ).②11r ri ri rk ki k ua l u -==-∑ (i=r,r+1,…n); ③11)/(r ir ik kr rr ir k a l l u u -==-∑ (i=r+1,…,n;且r ≠n) 三:实验问题及方法、步骤分别用直接三角分解法和高斯消元法解方程组Ax=b,其中 2111339,23353A b --⎛⎫⎛⎫ ⎪ ⎪== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告一、引言数值分析是一门研究如何利用计算机对数学问题进行数值计算和模拟的学科。

在实际应用中,数值分析广泛应用于工程、物理、金融等领域。

本实验旨在通过实际操作,探索数值分析方法在实际问题中的应用,并通过实验结果对比和分析,验证数值分析方法的有效性和可靠性。

二、实验目的本实验的主要目的是通过数值分析方法,解决一个实际问题,并对比不同方法的结果,评估其准确性和效率。

具体来说,我们将使用牛顿插值法和拉格朗日插值法对一组给定的数据进行插值,并对比两种方法的结果。

三、实验步骤1. 收集实验数据:我们首先需要收集一组实验数据,这些数据可以来自实验测量、调查问卷等方式。

在本实验中,我们假设已经获得了一组数据,包括自变量x和因变量y。

2. 牛顿插值法:牛顿插值法是一种基于差商的插值方法。

我们可以通过给定的数据点,构造一个插值多项式,并利用该多项式对其他点进行插值计算。

具体的计算步骤可以参考数值分析教材。

3. 拉格朗日插值法:拉格朗日插值法是另一种常用的插值方法。

它通过构造一个满足给定数据点的多项式,利用该多项式对其他点进行插值计算。

具体的计算步骤也可以参考数值分析教材。

4. 结果比较与分析:在完成牛顿插值法和拉格朗日插值法的计算后,我们将比较两种方法的结果,并进行分析。

主要考虑的因素包括插值误差、计算效率等。

四、实验结果在本实验中,我们选取了一组数据进行插值计算,并得到了牛顿插值法和拉格朗日插值法的结果。

经过比较和分析,我们得出以下结论:1. 插值误差:通过计算插值点与实际数据点之间的差值,我们可以评估插值方法的准确性。

在本实验中,我们发现牛顿插值法和拉格朗日插值法的插值误差都较小,但是拉格朗日插值法的误差稍大一些。

2. 计算效率:计算效率是衡量数值分析方法的重要指标之一。

在本实验中,我们发现牛顿插值法的计算速度较快,而拉格朗日插值法的计算速度稍慢。

五、实验结论通过本实验,我们对数值分析方法在实际问题中的应用有了更深入的了解。

数值分析积分实验报告(3篇)

数值分析积分实验报告(3篇)

第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。

通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。

二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。

实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。

2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。

实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。

3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。

实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。

4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。

它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。

实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。

三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。

2. 选取几个不同的函数,对积分区间进行划分。

3. 使用不同方法计算积分近似值,并与实际积分值进行比较。

4. 分析不同方法的精度和效率。

四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。

2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。

3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。

4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。

数值分析实验报告心得(3篇)

数值分析实验报告心得(3篇)

第1篇在数值分析这门课程的学习过程中,我深刻体会到了理论知识与实践操作相结合的重要性。

通过一系列的实验,我对数值分析的基本概念、方法和应用有了更加深入的理解。

以下是我对数值分析实验的心得体会。

一、实验目的与意义1. 巩固数值分析理论知识:通过实验,将课堂上学到的理论知识应用到实际问题中,加深对数值分析概念和方法的理解。

2. 培养实际操作能力:实验过程中,我学会了使用Matlab等软件进行数值计算,提高了编程能力。

3. 增强解决实际问题的能力:实验项目涉及多个领域,通过解决实际问题,提高了我的问题分析和解决能力。

4. 培养团队协作精神:实验过程中,我与同学们分工合作,共同完成任务,培养了团队协作精神。

二、实验内容及方法1. 实验一:拉格朗日插值法与牛顿插值法(1)实验目的:掌握拉格朗日插值法和牛顿插值法的原理,能够运用这两种方法进行函数逼近。

(2)实验方法:首先,我们选择一组数据点,然后利用拉格朗日插值法和牛顿插值法构造插值多项式。

最后,我们将插值多项式与原始函数进行比较,分析误差。

2. 实验二:方程求根(1)实验目的:掌握二分法、Newton法、不动点迭代法、弦截法等方程求根方法,能够运用这些方法求解非线性方程的根。

(2)实验方法:首先,我们选择一个非线性方程,然后运用二分法、Newton法、不动点迭代法、弦截法等方法求解方程的根。

最后,比较不同方法的收敛速度和精度。

3. 实验三:线性方程组求解(1)实验目的:掌握高斯消元法、矩阵分解法等线性方程组求解方法,能够运用这些方法求解线性方程组。

(2)实验方法:首先,我们构造一个线性方程组,然后运用高斯消元法、矩阵分解法等方法求解方程组。

最后,比较不同方法的计算量和精度。

4. 实验四:多元统计分析(1)实验目的:掌握多元统计分析的基本方法,能够运用这些方法对数据进行分析。

(2)实验方法:首先,我们收集一组多元数据,然后运用主成分分析、因子分析等方法对数据进行降维。

河北工业大学数值分析实验三实验四实验报告

河北工业大学数值分析实验三实验四实验报告

数值分析实验报告指导老师:宛艳萍姓名:班级:学号:实验三 复化辛卜生法,龙贝格法1.实验名称:复化辛卜生法,龙贝格法2.实验目的1)通过实际计算体会各种方法的精确度。

2)会编写用复化辛卜生、龙贝格算法求定积分的程序。

3.算法描述1)用复化辛卜生法计算积分 dxx I ⎰+=12)1/(1算法:复化辛卜生公式为S n =h/6∑∑+-=+++)]()2/(4)([11k k kn k x f h x f xf ,计算过程为:1.令,/)(n a b h -= ),2/(1h a f s +=;02=s2.对1,,2,1-=n k计算),2/(11h kh a f s s +++=)(22kh a f s s ++=3.))(24)((6/21b f s s a f h s +++= 。

2)龙贝格算法计算dxxI ⎰+=102)1/(156e ε=-算法)((12/12∑-=++=n k k n n n x f h T T ;/)(n a b h n -= n k h k x )2/1(2/1+=+)(3/122n n n n T T T S -+= )_(15/122n n n n S S S C +=)(63/122n n n n C C C R -+=用事后估计法控制精度2|5e -6n n R R -< 。

4.源程序:1)/* 用复化辛卜生公式求积分 */ #include "stdio.h" float fx(float x){double f;f=1.0/(1.0+x*x); return f; } double fs(int n){double a=0.0,b=1.0,h,s,s1,s2=0; int i;h=(b-a)/n; s1=fx(a+h/2); for(i=1;i<n;i++){s1=s1+fx(a+i*h+h/2); s2=s2+fx(a+i*h);}s=(h/6.0)*(fx(a)+fx(b)+4*s1+2*s2);return s;}void main(){printf("实验三复化辛卜生法计算机112 耿向飞学号:112434\n");printf("s(2)=%lf\ns(4)=%lf\ns(8)= %lf",fs(2),fs(4),fs(8));}2)/* 龙贝格法 */#include "stdio.h"#include "math.h"#define E 2.71828182//被积函数f(x)double fx(double x){double f;f=1/(1+x*x);return f;}//梯形公式求tndouble tx(int n){double s3=0.0,h,t,b=1.0,a=0.0;int i;h=(b-a)/n;for(i=1;i<n;i++)s3=s3+fx(i*h);t=(h/2)*(fx(a)+fx(b)+2*s3);return t;} double s(int n){double s;s=tx(2*n)+(1.0/3.0)*(tx(2*n)-tx(n ));return s;}double c(int n){double c;c=s(2*n)+(1.0/15.0)*(s(2*n)-s(n)) ;return c;}double r(int n){double r;r=c(2*n)+(1.0/63.0)*(c(2*n)-c(n)) ;return r;}void main(){double rr,pp;int n=1;rr=r(n);pp=r(2*n)-r(n);printf("实验三龙贝格法计算机112 耿向飞学号:112434\n");printf("结果为:%.15lf 误差小于等于: %.15lf",rr,pp);}5.运行结果1)复化辛卜生公式2)龙贝格算法6.对算法的理解与分析:复化辛卜生公式和龙贝格算法适用于求数值积分,而且都能提高计算积分的精度龙贝格算法其实是在复化辛卜生公式递推的基础之上生成的一种精度高,而且收敛速度也较快的一种算法。

《数值分析》课程实验报告数值分析实验报告

《数值分析》课程实验报告数值分析实验报告

《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期:20__ 年 _ 月_ 日目录实验一函数插值方法 1 实验二函数逼近与曲线拟合 5 实验三数值积分与数值微分 7 实验四线方程组的直接解法 9 实验五解线性方程组的迭代法 15 实验六非线性方程求根 19 实验七矩阵特征值问题计算 21 实验八常微分方程初值问题数值解法 24 实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

数据如下:(1) 0.4 0.55 0.65 0.80 0.95 1.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。

(提示:结果为, )(2) 1 2 3 4 5 6 7 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange多项式,计算的,值。

(提示:结果为, )二、要求 1、利用Lagrange插值公式编写出插值多项式程序;2、给出插值多项式或分段三次插值多项式的表达式;3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;4、对此插值问题用Newton插值多项式其结果如何。

Newton 插值多项式如下:其中:三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;2、明确插值多项式和分段插值多项式各自的优缺点;3、熟悉插值方法的程序编制;4、如果绘出插值函数的曲线,观察其光滑性。

四、实验步骤(1) 0.4 0.55 0.65 0.80 0.951.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。

数值分析实验报告高斯消元法和列主消元法

数值分析实验报告高斯消元法和列主消元法

《计算方法》实验指导书 实验三、高斯消元法和列主消元法一、实验目的:1. 通过matlab 编程解决高斯消元发和列主消元发来解方程组的问题, 加强编程能力和编程技巧,要熟练应用matlab 程序来解题,练习从数值分析的角度看问题进而来解决问题。

更深一步体会这门课的重要性,练习动手能力,同时要加深对数值问题的理解,要熟悉matlab 编程环境。

二、实验要求:用matlab 编写代码并运行高斯消元法和列主消元发来解下面的方程组的问题,并算出结果。

三、实验内容:用高斯消元法和列主消元法来解题。

1.实验题目:用高斯消元法和列主消元法来解下列线性方程组。

⎪⎪⎩⎪⎪⎨⎧−=+−−−=+−−=+−−=−+−.142,16422,0,13143214321432432x x x x x x x x x x x x x x x 2.实验原理高斯消元法:就是把方程组变成上三角型或下三角形的解法。

上三角形是从下往上求解,下三角形是从上向下求解,进而求得结果。

而列主消元法是和高斯消元法相类似,只不过是在开始的时候找出x1的系数的最大值放在方程组的第一行,再化三角形再求解。

3.设计思想高斯消元法:先把方程组的第一行保留,再利用第一行的方程将其余几行的含有x1的项都消去,再保留第二行,同理利用第二行的方程把第二行以下的几行的含有x2项的都消去,以此类推。

直到最后一行只含有一个未知数,化为上三角形,求得最后一行的这个未知数的值,再回带到倒数第二个方程求出另一个解,再依次往上回带即可求出这个方程组的值。

而列主消元法与高斯消元法类似,只不过在最开始时找出x1项系数的最大值与第一行交换再进行与高斯算法相似的运算来求出方程组的解。

4.源代码高斯消元法的程序:f unction [RA,RB,n,X]=gaus(A,b)B=[A b]; n=length(b); RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica>0,disp('请注意:因为RA~=RB,所以此方程组无解.')returnendif RA==RBif RA==ndisp('请注意:因为RA=RB=n,所以此方程组有唯一X=zeros(n,1); C=zeros(1,n+1);for p= 1:n-1for k=p+1:nm= B(k,p)/ B(p,p);B(k,p:n+1)= B(k,p:n+1)-m*B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);for q=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')endend在工作窗口输入程序:A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1];b=[1;0; -1;-1]; [RA,RB,n,X] =gaus (A,b)请注意:因为RA=RB=n,所以此方程组有唯一解.运行结果为:RA =4RB =4n =4X =-0.50000.5000.列主消元发的程序:function [RA,RB,n,X]=liezhu(A,b)B=[A b]; n=length(b); RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica>0,disp('请注意:因为RA~=RB,所以此方程组无解.')returnendif RA==RBif RA==ndisp('请注意:因为RA=RB=n,所以此方程组有唯一解.')X=zeros(n,1); C=zeros(1,n+1);for p= 1:n-1[Y,j]=max(abs(B(p:n,p))); C=B(p,:);B(p,:)= B(j+p-1,:); B(j+p-1,:)=C;for k=p+1:nm= B(k,p)/ B(p,p);B(k,p:n+1)= B(k,p:n+1)-m*B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);for q=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')endend在工作窗口输入程序:A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1];b=[1;0; -1;-1]; [RA,RB,n,X]=liezhu(A,b)请注意:因为RA=RB=n,所以此方程组有唯一解.运行结果为:RA =4RB =4n =4X =-0.50000.5000实验体会:通过这次实验我了解了高斯消元法和列主消元方法的基本思想,虽然这两个程序的编写是有点困难的,但运行起来还是比较容易的,解决了不少实际问题的计算。

数值分析实验报告3

数值分析实验报告3

实验报告一、实验名称 线性方程组迭代法 二、实验目的及要求1.掌握用迭代法求解线性方程组的基本思想和计算步骤;提高Matlab 编程能力; 2.能熟练地写出Jacobi 迭代法的迭代格式的分量形式,并能比较它们的各自特点及误差估计;3.理解迭代法的基本原理及特点,并掌握Jacobi 迭代和Gauss-Seidel 迭代的分量形式矩阵形式及其各自的特点。

三、实验环境计算机,MATLAB 软件 四、实验内容用迭代法分别对n=10解方程组Ax=b ,其中⎛⎫-- ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪---- ⎪ ⎪ ----⎪ ⎪ ⎪----⎪ ⎪ ⎪---- ⎪ ⎪ ⎪----⎪ ⎪ ⎪---- ⎪ ⎪--- ⎪ ⎪ ⎪-- ⎪⎝⎭114351114335111145335111145335111145335111145335111145335111145335111453311453⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭1232112102 五、算法描述及实验步骤1.迭代法求线性方程组的基本思想和基本步骤 举例了解迭代法的基本思想。

如下例。

求解线性方程组⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧=++=+=+3612x 3x 6x 33x -11x 4x 202x 3x -8x 321321321(1.1)记Ax =b ,其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=12361114238A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=321x x x x ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=363320b 此方程组的精确解是x *=(3,2,1)T .现将线性方程组(1.1)改写为⎪⎪⎪⎭⎪⎪⎪⎬⎫⎪⎪⎪⎩⎪⎪⎪⎨⎧+-=++=+-=36)3x (-6x 121x 33)x (-4x 111x 20)2x 3x (81x 213312321 (1.2) 或写为x =B 0x +f ,其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=012/312/611/1011/48/28/300B ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=12/3611/338/20f 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州师范大学数学与计算机科学学院学生实验报告课程名称: 数值分析 班级: 12级信本 实验日期: 2014年 11月5日 学 号: 120703010031 姓名: 李盼 指导教师: 实验成绩:一、实验名称实验三:数值积分二、实验目的及要求1. 让学生掌握复化梯形法, 复化Simpson 法和Romberg 公式以及变步长梯形法,变步长Simpson 法2. 让学生能够用这些方法解决一些具体问题三、实验环境每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0).四、实验内容1.要求:分别用复合梯形法,复合Simpson 法和 Romberg 公式计算.2.给定积分dx x ⎰311, 分别用下列方法计算积分值要求准确到510-, 并比较分析计算时间. 1) 变步长梯形法;2) 变步长 Simpson 法.五、算法描述及实验步骤1复合梯形法输入:被积函数数据点t,a ;输出:积分值n T 。

复合Simpson输入:被积函数)(x f ,积分区间[a,b]和n,输出:复合Simpson 积分值n S 。

步1 :b a h n-⇐; (a)(b)n S f f ⇐-;x a ⇐. 步2:对k=1,2,…,n 执行;4();;2().22n n n n h h x x S S f x x x S S f x ⇐+⇐-⇐+⇐-步3:*6n n h S S ⇐。

步4:输出n S 。

Romberg 公式根据已知数据对其进行多项式拟合得出p(x);()()f x p x ⇐。

输入 :被积函数)(x f ,积分区间端点a,b,允许误差ε,输出:Romberg 积分值2n R 。

步1:a b h -⇐;));()((21b f a f h T +⇐.0;0;0;0111⇐===k R C S 步2:反复执行步3-步9步3:.2;0h a x S +⇐⇐ 步4:反复执行步5-步6步5:.);(h x x x f S S +⇐+⇐步6:若b x ≥,则退出本层循环。

步7:执行 ;3134;2212212T T S S h T T -⇐+⇐.6316364;1511516122122C C R S S C -⇐-⇐ 步8:执行.1;;;;;2|;|2121212112+⇐⇐⇐⇐⇐⇐-⇐k k R R C C S S T T h h R R e步9:若ε≤e 且5≥k ,则退出循环。

步10:.22R R n ⇐2:变步长梯形法功能 求积分dx x ⎰311,允许误差为ε。

输入 被积函数)(x f ,a,b,ε.步1:a b h -⇐。

步2:)).()((21b f a f h T +⇐ 步3:反复执行步4--步10.步4:.2;0h a x S +=⇐步5:反复执行步6--步7步6:.);(h x x x f S S +⇐+⇐步7:若b x ≥,则退出本层循环。

步8:.2212S h T T ⨯+⇐ 步9:.;2|;|2121T T h h T T e ⇐⇐-⇐ 步10:若ε≤e ,则退出循环。

步11:22T T n =.步12:输出n T 2。

变步长 Simpson 法.输入:被积函数)(x f ,积分区间[a,b]和n,输出:复合Simpson 积分值n S 。

步1 :b a h n-⇐; (a)(b)n S f f ⇐-;x a ⇐. 步2:对k=1,2,…,n 执行 ;4();;2().22n n n n h h x x S S f x x x S S f x ⇐+⇐-⇐+⇐- 步3:*6n n h S S ⇐。

步4:输出n S 。

六、调试过程及实验结果复合梯形法:>> a=[30.00 31.63 33.44 35.47 37.75 40.33 42.39 46.69 50.67]; >> h=10;>> v0=0;>> v50=v0+(h/2)*(a(1)+2*(a(2)+a(3)+a(4)+a(5))+a(6))v50 =1.7345e+003>> v80=v0+(h/2)*(a(1)+2*(a(2)+a(3)+a(4)+a(5)+a(6)+a(7)+a(8))+a(9))v80 =3.0803e+003复合Simpson 法:>> a=[30.00 31.63 33.44 35.47 37.75 40.33 42.39 46.69 50.67];>> h=20;>> v0=0;>> v80=v0+(h/6)*(a(1)+4*(a(2)+a(4)+a(6)+a(8))+2*(a(3)+a(5)+a(7))+a(9))v80 =3.0810e+003>> x=[0 10 20 30 40 50];>> y=[30.00 31.63 33.44 35.47 37.75 40.33];>> p=polyfit(x,y,2);>> poly2sym(p);>> x=[5 15 25 35 45];>> q=polyval(p,x);>> a=[30.00 q(1) 31.63 q(2) 33.44 q(3) 35.47 q(4) 37.75 q(5) 40.33]; >> h=10;>>v50=v0+(h/6)*(a(1)+4*(a(2)+a(4)+a(6)+a(8)+a(10))+2*(a(3)+a(5)+a(7)+a(9 ))+a(11))v50 =1.7336e+003Romberg公式function R2n=Romberg(f,a,b,tol)h=b-a;T1=(h/2)*(feval(f,a)+feval(f,b));S1=0;C1=0;R1=0;k=0;while 1S=0;x=a+h/2;while 1S=S+feval(f,x);x=x+h;if x>=bbreadendendT2=T1/2+(h/2)*S;S2=(4/3)*T2-(1/3)*T1;C2=(16/15)*S2-(1/15)*S1;R2=(64/63)*C2-(1/63)*C1;e=abs(R2-R1);h=h/2;T1=T2;S1=S2;C1=C2;R1=R2;k=k+1;if e<=tol&k>=5breakendendR2n=R2;function y=f(x)y=(5930286613325939*x^3)/295147905179352825856 - (6590784751299553*x ^2)/9223372036854775808 + (3387527922312091*x)/18014398509481984 + 74033/2475>> x=[0:10:80]x = 0 10 20 30 40 50 60 70 80>> y=[30.00,31.63,33.44,35.47,37.75,40.33,42.39,46.69,50.67]y =30.0000 31.6300 33.4400 35.4700 37.7500 40.3300 42.3900 46. 6900 50.6700>> p=polyfit(x,y,3);>> y=poly2sym(p);>> v80=Romberg('f',0,80,0.000005)v80 =3.0785e+003>> v50=Romberg('f',0,50,0.000005)v50 =1.7323e+0031)2:变步长梯形法:程序:function T2n=vsm(f,a,b,tol)h=b-a;T1=(h/2)*(feval(f,a)+feval(f,b));S=0;x=a+h/2;while 1S=S+feval(f,x);x=x+h;if x>=bbreakendendT2=T1/2+(h/2)*S;e=abs(T2-T1);h=h/2;T1=T2;if e<=tolbreakendendT2n=T2;定义被积函数:function y=f(x)y=1/x;>> a=1;b=3;tol=0.000005; >> I=vsm('f',a,b,tol)I =1.0986调试结果:>> Tn=tixing('f',1,3,30)Tn =1.09892)变步长 Simpson 法:程序:function Sn=Simpson(f,a,b,n) h=(b-a)/n;x=a;S=feval(f,a)-feval(f,b);x=x+h/2;S=S+4*feval(f,x); x=x+h/2;S=S+2*feval(f,x); endSn=h/6*S;function y=f(x)y=1/x;调试结果:>> Sn=Simpson('f',1,3,20)Sn =1.0986七、总结知识掌握不牢固。

操作生疏,八、附录(源程序清单)。

相关文档
最新文档