数值分析实验3

合集下载

数值分析实验三 线性方程组的直接接法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 --⎛⎫⎛⎫ ⎪ ⎪== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数值分析实验报告指导老师:宛艳萍姓名:班级:学号:实验三 复化辛卜生法,龙贝格法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.对算法的理解与分析:复化辛卜生公式和龙贝格算法适用于求数值积分,而且都能提高计算积分的精度龙贝格算法其实是在复化辛卜生公式递推的基础之上生成的一种精度高,而且收敛速度也较快的一种算法。

《数值分析实验》实验

《数值分析实验》实验

数值分析实验实验1 方程求根一、实验目的:1.掌握常用的求非线性方程近似根的数值方法,用所学方法求非线性方程满足指定精度要求的数值解,比较各种方法的异同点并进行收敛性分析。

2.通过对二分法与牛顿迭代法作编程练习与上机运算,进一步体会二分法与牛顿迭代法的不同特点。

3.编写割线迭代法的程序,求非线性方程的解,并与牛顿迭代法作比较。

二、实验内容:1.用二分法求方程0104)(23=-+=x x x f 在1.5附近的根。

2.用牛顿迭代法求方程033)(23=--+=x x x x f 在1.5附近的根。

3.用简单迭代法求解非线性方程3sin )1(2=-+x x 的根。

取迭代函数)1sin 3(*5.0)(2x x x --+=ϕ,精度取2101-⨯4.(选做)用牛顿法求下列方程的根: (1)02=-x e x ; (2)01=-x xe ; (3)02lg =-+x x 。

5.(选做)编写一个弦截法程序,求解题目4中的方程。

6.(选做)Matlab 函数fzero 可用于求解非线性方程的根。

例如,fzero(@(x) x^3+4*x^2-10, 1.5)可以求解题目1。

尝试用此方法求解实验中的其他题三、实验要求:1.程序要添加适当的注释,程序的书写要采用缩进格式。

2.程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。

3.程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。

四、实验步骤1.按照实验内容和实验要求编写代码 2.编译并运行代码 3.检查是否发生错误五、实验源代码与实验结果实验1源代码:运行结果:实验2源代码:运行结果:实验3源代码:运行结果:4(1)的源代码:运行结果:4(2)的源代码:运行结果:4(3)的源代码:运行结果:5(3)的源代码:运行结果:六、实验心得体会通过本次实验我加深了对二分法、简单迭代法、牛顿迭代法和弦截法算法思想的了解,并对各个不同方法的优劣有了更深的理解。

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

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

《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期: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 。

数值分析实验3

数值分析实验3

实验三 解线性方程组的迭代法实验目的1. 深入理解Jacobi 迭代法和Gauss-Seide 迭代法2. 通过对两种迭代法的程序设计,提高程序设计能力3. 应用编写的程序解决具体问题,掌握两种基本迭代法的使用,通过结果的分析 了解每一种迭代法的特点实验要求(1) 认识迭代法收敛的含义以及迭代初值和方程组系数矩阵性质对收敛速度的 影响。

(2) 迭代法收敛速度试验、病态的线性方程组的求解实验题目3.1用迭代法求解方程组Ax 二b ,其中A R 20 20,它的每条对角钱元素是常数,(1)选取不同的初始向量x (0)和不同的方程组右端项向量 b ,给定迭代误差要 求,用Jacobi 迭代法和Gauss-Seide 迭代法计算,观测得到的迭代向量序列是否 均收敛?若收敛;记录迭代次数,分析计算结果并得出你的结论;(2)取定右端向量b 和初始向量x (0),将A 的主对角线元素成倍增长若干次, 非主对角线元素不变,每次用Jacobi 迭代法计算,要求迭代误差满足 ||x (k1) -x (k)||L :10°。

比较收敛速度,分析现象并得出你的结论。

(1) 1.选取初始向量为x (0)=zeros(20,1), 右端向量b=o nes(20,1),eps=1.0e-5;①实验程序(Jacobi 迭代法)fun ctio n [x, n]=jacobi(A,b,xO,eps,M) %A 为方程组得系数矩阵 %b 为方程组得右端项-1/2 -1/43 -1/2 -1/4-1/23-1/2++* +-1/4-1/4-1/2 3 -1/2-1/4-1/233 -1/2 -1/4 A =%x0为初始向量%eps为精度要求%册最大迭代次数%x为方程组的解%n为迭代次数eps=1.0e-5; %精度要求M=200; %最大迭代次数A=zeros(20,20);for i=1:1:20A(i,i)=3;endfor i=1:1:20for j=1:1:20if abs(i-j)==1A(i,j)=-1/2;endendendfor i=1:1:20for j=1:1:20if abs(i-j)==2A(i,j)=-1/4;endendendb=o nes(20,1);x0=zeros(20,1);D=diag(diag(A)); %取A 的对角阵L=-tril(A,-1); %取A 的下三角阵U=-triu(A,1); %取A 的上三角阵B=D\(L+U);f=D\b;x=B*xO+f;n=1;disp(['第’,num2str(n),'步求解结果为:’]);disp(x);while no rm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;disp([ '第’,num2str(n),'步求解结果为:’]);disp(x);if (n>=M)disp( 'Warni ng: 迭代次数太多,可能不收敛r);return ;endenddisp('最终结果为:’);disp( 'x=');disp(x);disp([ 'n=' ,nu m2str( n)]);实验结果最终结果为:x=0.48160.57340.63280.65210.66090.66430.66570.66630.66650.66660.66660.66650.66630.66570.66430.66090.65210.63280.57340.4816n=18②实验程序(Gauss-Seide迭代法)function [x,n]=gauseidel(A,b,x0,eps,M)%A为方程组得系数矩阵%b为方程组得右端项%x0为迭代初始向量%eps为精度要求%册最大迭代次数%x为方程组的解%n为迭代次数eps=1.0e-5; %精度要求M=200; %最大迭代次数A=zeros(20,20);for i=1:1:20A(i,i)=3;endfor i=1:1:20for j=1:1:20if abs(i-j)==1A(i,j)=-1/2;endendendfor i=1:1:20for j=1:1:20if abs(i-j)==2A(i,j)=-1/4;endendendb=o nes(20,1);x0=zeros(20,1);D=diag(diag(A)); %取A 的对角阵L=-tril(A,-1); %取A 的下三角阵U=-triu(A,1); %取A 的上三角阵B=D\(L+U);f=D\b;x=B*xO+f;n=1;disp(['第’,num2str(n),'步求解结果为:’]);disp(x);while no rm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;disp([ '第’,num2str(n),'步求解结果为:’]);disp(x);if (n>=M)disp( 'Warning: 迭代次数太多,可能不收敛r );return ;endenddisp('最终结果为:’);disp( 'x=');disp(x);disp([ 'n=' ,nu m2str( n)]);实验结果最终结果为:x=0.48160.57340.63280.65210.66090.66430.66570.66630.66650.66660.66660.66650.66630.66570.66430.66090.65210.63280.57340.4816n=182. 选取初始向量为x(0)=zeros(20,1) ,右端向量b=1.001*ones(20,1),eps=1.0e-5①实验程序(Jacobi迭代法)修改:b=1.001*ones(20,1),其余同上实验结果最终结果为:x=0.48210.57400.63340.65280.66160.66500.66640.66690.66720.66720.66720.66720.66690.66640.66500.66160.65280.63340.57400.4821n=18②实验程序(Gauss-Seide迭代法)同上实验结果最终结果为:x=0.48210.57400.63340.65280.66160.66500.66640.66690.66720.66720.66720.66720.66690.66640.66500.66160.65280.63340.57400.4821n=18(0)3. 选取初始向量为x =ones(20,1) ,右端向量b=ones(20,1),eps=1.0e-5 ;①实验程序(Jacobi迭代法)修改:x(0)= ones(20,1) ,b=ones(20,1),其余同1实验结果最终结果为:x=0.48160.57340.63280.65210.66090.66430.66570.66630.66650.66660.66660.66650.66630.66570.66430.66090.65210.63280.57340.4816n=17②实验程序(Gauss-Seide迭代法)同上实验结果最终结果为:x=0.48160.57340.65210.66090.66430.66570.66630.66650.66660.66660.66650.66630.66570.66430.66090.65210.63280.57340.4816 n=17结果分析:不管用哪种迭代法,改变初始向量,右端向量,用有限的迭代次数,都能得到收敛结果且满足误差要求。

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

1.1.建立 M 文件 function y=f(x) y=sqrt(x)*log(x); 1.2.建立 M 文件 function T_n=F_H_T(a,b,n) h=(b-a)/n; for k=0:n x(k+1)=a+k*h; if x(k+1)==0 x(k+1)=10^(-10); end end T_1=h/2*(f(x(1))+f(x(n+1))); for i=2:n F(i)=h*f(x(i)); end T_2=sum(F); T_n=T_1+T_2;
实验清楚地认识到在同样的等分份数下,复合辛普森公式的近似程度明显优于复合梯形公 式。
内容:先确定方程 x
1 x e 的一个收敛的有根区间[a,b], 然后用不动点迭代 5
步 骤
法求 x
1 x e 在此有根区间的近似根,初值 x0 自己确定,要求根精确到 105 ,并 5
求迭代次数。
ba n ,选取等距
算法原理或计算公式 :设将区间[a,b]划分为 n 等份,步长
n
h
节点 xk a kh 构造出的插值型求积公式
I n (b a) Ck( n ) f ( xk )
k 0
,称为牛顿—柯
特斯公式。由于牛顿—柯特斯公式在 n 8 时具有不稳定性,故不可能通过提高 阶的方法来提高求积精度。 为了提高精度通常可把积分区间分成若干个子区间, 再在子区间上用低阶求积公式。
当 n=1 时,就是我们熟悉的梯形公式 区间
b

b
a
f ( x)dx
ba f (a) f (b) 2 ,在每个子
xk , xk 1
(k=0,1,```,n-1)采用梯形公式,则得
n 1 xk 1
I f ( x)dx
a k 0
xk
ቤተ መጻሕፍቲ ባይዱ
f ( x)dx
实 验 结 果 和 分 析 总 结
通过输入实验数据得到实验结果为:
>> T_1=fht(0,1,2) T_1 = 0.9398 >> vpa(T_1,7) ans = .9397933 分析:本次实验还是比较简单的,在 matlab 中通过编程求出积分。实验看重的是对复合求积公 式的理解与应用。
附 录 程 序
Matlab 软件
已知函数在下列个点的值为
实 验 内 容
xi fi
0.0 2.10
0.2 4.41
0.4 2.50
1.2
0.6 2.61
0.8 2.91
1.0 3.02
1.2 3.46
复合梯形与复合辛普森公式计算
0
f ( x)dx
实验目的:取不同的步长 h,分别用复合梯形及复合辛普森求积公式计算积分,通过这个 算 法 描 述 及 实 验
当 n=2 时,就是辛普森公式如下:
S ba a b f (a ) 4 f ( ) f (b) 6 2
在每个子区间上采用辛普森公式就得:
I f ( x)dx
b a k 0 n 1 xk 1
xk
f ( x)dx
h n1 f ( xk ) 4 f ( xk 1/2 ) f ( xk 1 ) Rn ( f ) 6 k 0
即复合辛普森公式为
Sn
n 1 n 1 h n1 h f ( xk ) 4 f ( xk 1/2 ) f ( xk 1 )) f (a) 4 f ( xk 1/2 ) 2 f ( xk ) f (b) 6 k 0 6 k 0 k 1
h n1 f ( xk ) f ( xk 1 ) Rn ( f ) 2 k 0
即复合梯形公式为
Tn
n 1 h n1 h f ( x ) f ( x ) f ( a ) f ( xk ) f (b) k k 1 2 k 0 2 k 1
重庆科技学院数理学院《计算方法》课程实验报告(三)
课 程 名 称 姓 名 实 验 名 称 实 验 目 的 及 要 求 实 验 环 境 实验日期 计算方法 班级 物联网 1301 2015.11
王凯
学号
2013441527
实验成绩
实验三
数值积分(复合求积公式) (验证性实验)
1、掌握牛顿-科特斯算法程序设计 2、掌握复合梯形与复合辛普森公式
相关文档
最新文档