数值分析实验三
数值分析实验三 线性方程组的直接接法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篇)
第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
数值分析实验报告心得(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
实验报告一、实验名称 线性方程组迭代法 二、实验目的及要求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
实验三 解线性方程组的迭代法实验目的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结果分析:不管用哪种迭代法,改变初始向量,右端向量,用有限的迭代次数,都能得到收敛结果且满足误差要求。
数值分析实验报告三
grid
[k,x,wuca,yx]=erfen (﹣1,1,10^-5)
2)运行结果
ans =
0 -1.0000 1.0000 0 1.0000 -11.6321 10.7183 -1.0000
ans =
1.0000 0 1.0000 0.5000 0.5000 -1.0000 10.7183 4.6487
ans =
11.0000 0.0898 0.0908 0.0903 0.0005 -0.0076 0.0033 -0.0021
ans =
12.0000 0.0903 0.0908 0.0906 0.0002 -0.0021 0.0033 0.0006
ans =
13.0000 0.0903 0.0906 0.0905 0.0001 -0.0021 0.0006 -0.0008
ans =
7.0000 0.1256 0.0008 0.0033 0.0262
ans =
8.0000 0.1240 0.0002 0.0016 0.0129
ans =
9.0000 0.1233 0.0000 0.0007 0.0056
ans =
9.0000 0.1233 0.0000 0.0007 0.0056
(2)、Use the iteration method ,the initial value .
2、The equation has two roots near 0.1.
Determine them by means ofNewton’s method.
(with accuracy )
3、用迭代法求方程 附近的一个根。方程写成下
k = 9
数值分析实验 实验报告
数值分析实验实验报告数值分析实验实验报告引言在现代科学与工程领域,数值分析是一项重要的技术手段。
通过数值方法,我们可以利用计算机模拟和解决各种实际问题,如物理、化学、生物、经济等领域中的方程求解、优化问题、数据拟合等。
本实验旨在通过实际案例,探讨数值分析的应用和效果。
实验一:方程求解首先,我们考虑一个简单的方程求解问题。
假设我们需要求解方程f(x) = 0的根,其中f(x)是一个在给定区间[a, b]上连续且单调的函数。
为了实现这个目标,我们可以采用二分法、牛顿法、弦截法等数值方法。
在本实验中,我们选择使用二分法来求解方程f(x) = 0。
这种方法的基本思想是通过不断缩小区间[a, b]的范围,直到找到一个近似的根。
我们首先选取一个中间点c,计算f(c)的值,然后根据f(c)与0的关系,将区间[a, b]分成两部分。
重复这个过程,直到找到满足精度要求的根。
实验二:数据拟合接下来,我们考虑一个数据拟合的问题。
假设我们有一组离散的数据点,我们希望找到一个函数,使得该函数与这些数据点的拟合误差最小。
为了实现这个目标,我们可以采用最小二乘法等数值方法。
在本实验中,我们选择使用最小二乘法来进行数据拟合。
这种方法的基本思想是通过最小化数据点与拟合函数之间的误差平方和,来确定拟合函数的参数。
我们首先选择一个拟合函数的形式,如线性函数、多项式函数等。
然后,通过最小化误差平方和的方法,计算出拟合函数的参数。
实验三:优化问题最后,我们考虑一个优化问题。
假设我们需要在给定的约束条件下,找到一个使得目标函数取得最大或最小值的变量。
为了实现这个目标,我们可以采用梯度下降法、遗传算法等数值方法。
在本实验中,我们选择使用梯度下降法来解决优化问题。
这种方法的基本思想是通过迭代的方式,不断调整变量的取值,直到找到一个满足约束条件的最优解。
我们首先计算目标函数关于变量的梯度,然后根据梯度的方向和大小,更新变量的取值。
通过不断迭代,我们可以逐步接近最优解。
《数值分析》实验报告书
N4(0.895) function [y,R]= newcz(X,Y,x,M) x=0.895; M=4; X=[0.4,0.55,0.65,0.8,0.9]; Y=[0.41075,0.57815,0.69675,0.88811,1.02652];
n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1; 运行结果: ans = 1.0194
实验三、解线性方程组的直接法
解线性方程组的直接法是指经过有限步运算后能求得方程组精确解
的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法 也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形, 即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计 算过程中舍入误差的增长,减少舍入误差的影响。一般说来,列主元消 去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算 量不大和算法组织容易等优点,是目前计算机上解中、小型稠密矩阵方 程组可靠而有效的常用方法。
Y=[0.82741,0.82659,0.82577,0.82495]; n=length(X); m=length(x); for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1.0; c1=1.0; for j=1:n if j~=k p=p*(z-X(j))/(X(k)-X(j)); end q1=abs(q1*(z-X(j))); c1=c1*j; end s=p*Y(k)+s; end y(i)=s; end R=M.*q1./c1; 运行结果: ans = 0.8261 2. N3(0.596) function [y,R]= newcz(X,Y,x,M) x=0.596; M=3;
数值分析 实验三Newton插值多项式
数学与软件科学学院实验报告学期:至第学期年月日课程名称:___计算机数值方法_ 专业:信心与计算科学 08 级 6班实验编号:3 实验项目Newton插值多项式指导教师__张莉_姓名:田文晓学号:2008060632 实验成绩:一、实验目的及要求实验目的:掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。
实验要求:1. 给出Newton插值算法2. 用C语言实现算法二、实验内容1. 用下列插值节点数据,构造Newton插值多项式,并计算2. 用下列插值节点数据,构造一个三次Newton插值多项式,并计算f(1.2)的值。
三、实验步骤(该部分不够填写.请填写附页)步骤1:算法描述:输入n值,及(x_i,y_i),i=0,1,2,…n;记f(x_i)=y_i;For i=0,1,2…n计算差商f[x0,x1,x2,…x_k]=(f[x1,x2,…x_k]-f[x0,x1,x_k-1])/(x_k-x0) 其中 f[x_i]=f(x_i);对给定的x ,由N_n(x)=f(x0)+(x-x0)f[x0,x1]+(x-x0)(x-x1)f[x0,x1.x2]+...(x-x0)(x-x 1)(x-x2)...(x-x_n-1)f[x0,x1,...x_n]计算出N_n(x)的值输出N_n(x)的值步骤2:程序代码如下:#include<stdio.h>#define MAX_N 30typedef struct tagPOINT /*the structer of point */{double x;double y;}POINT;int main(){int n,i,j;POINT points[MAX_N+1];double tmp,newton=0;double diff[MAX_N+1];double x;clrscr();printf("\nInput n value :"); /*the number of the points inserted*/scanf("%d",&n);if(n>MAX_N){printf("The input n is larger than MAX_N,please redefine the MAX_N.\n");return 1;}if(n<=0){printf("Please input a number between 1 and %d.\n",MAX_N);return 1;}printf("Now input the (x_i,y_i),i=0,...%d:\n",n);for(i=0;i<=n;i++)scanf("%lf %lf",&points[i].x,&points[i].y);printf("Now input the x value:"); /*the value of x*/scanf("%lf",&x);for(i=0;i<=n;i++) diff[i]=points[i].y;for(i=0;i<n;i++){for(j=n;j>i;j--){diff[j]=(diff[j]-diff[j-1])/(points[j].x-points[j-1-i].x); }}tmp=1;newton=diff[0];for(i=0;i<n;i++){tmp=tmp*(x-points[i].x);newton=newton+tmp*diff[i+1];}printf("newton(%f)=%f\n",x,newton);return 0;}四,实验结果与分析:当输入x=0.9时,利用牛顿二次插值得到结果如下:Input n value :2Now input the (x_i,y_i),i=0,...2:0 11 22 19Now input the x value:0.9newton(0.900000)=1.180000当输入x=0.9时,利用牛顿三次插值得到结果如下:Input n value :3Now input the (x_i,y_i),i=0,...3:-2 170 12 191 2Now input the x value:0.9newton(0.900000)=1.303750输入当x=1.2时,得到结果如下:Input n value :3Now input the (x_i,y_i),i=0,...3:-1.00 3.002.00 5.003.00 7.004.005.00Now input the x value:1.2newton(1.200000)=2.401600注:实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。
《数值分析》_实验
( )
( )
4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系
第5页
数值分析实验,宋伦继
6
实验四 数值积分与数值微分
一、问题提出 选用复合梯形公式,复合 Simpson 公式,Romberg 算法,计算
x
*
⎡ 0 ⎤ ⎢ −6 ⎥ ⎥ ⎢ ⎢ 20 ⎥ ⎥ ⎢ ⎢ 23 ⎥ ⎢ 9 ⎥ ⎥ ⎢ ⎢− 22⎥ ⎢ − 15 ⎥ ⎥ ⎢ ⎥ ⎢ 45 ⎦ ⎣
=
( 1,
-1,
0,
2,
1,
-1,
0,
2)
T
第7页
数值分析实验,宋伦继
8
3、三对角形线性方程组
⎡ 4 − 1 0 0 0 0 0 0 0 0 ⎤ ⎡ x1 ⎤ ⎡ 7 ⎤ ⎢− 1 4 − 1 0 0 0 0 0 0 0 ⎥ ⎢ x ⎥ ⎢ 5 ⎥ ⎥ ⎢ 2⎥ ⎥ ⎢ ⎢ ⎢ 0 − 1 4 − 1 0 0 0 0 0 0 ⎥ ⎢ x3 ⎥ ⎢ − 13⎥ ⎥⎢ ⎥ ⎥ ⎢ ⎢ ⎢ 0 0 − 1 4 − 1 0 0 0 0 0 ⎥ ⎢ x4 ⎥ ⎢ 2 ⎥ ⎢ 0 0 0 − 1 4 − 1 0 0 0 0 ⎥ ⎢ x5 ⎥ ⎢ 6 ⎥ ⎥⎢ ⎥ = ⎢ ⎥ ⎢ ⎢ 0 0 0 0 − 1 4 − 1 0 0 0 ⎥ ⎢ x6 ⎥ ⎢− 12⎥ ⎢ 0 0 0 0 0 −1 4 −1 0 0 ⎥ ⎢ x ⎥ ⎢ 14 ⎥ ⎥ ⎢ 7⎥ ⎥ ⎢ ⎢ ⎢ 0 0 0 0 0 0 − 1 4 − 1 0 ⎥ ⎢ x8 ⎥ ⎢−4⎥ ⎢ 0 0 0 0 0 0 0 − 1 4 − 1⎥ ⎢ x ⎥ ⎢ 5 ⎥ ⎥ ⎢ 9⎥ ⎥ ⎢ ⎢ ⎥ ⎥⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0 −1 4 ⎦ ⎢ −5⎦ ⎣ ⎣ ⎣ x10 ⎦
数值分析(第三章)实验报告
L0 ( x)
( x 0.6)( x 0.9) (50*(x - 3/5)*(x - 9/10))/27 (0 0.6)(0 0.9) ( x 0)( x 0.9) -(50*x*(x - 9/10))/9 (0.6 0)(0.6 0.9)
L1 ( x)
end end t=t+u*y(j); end s(m)=t; end return 保存后在命令窗口中输入 >> x=[1940 1950 1960 1970 1980 1990] x= 1940 1950 1960 1970 1980 1990
>> y=[132165 151326 179323 203302 226542 249633] y= 132165 151326 >> Lagrange(x,y,1930) ans = 169649 >> Lagrange(x,y,1965) ans = 1.9177e+005 >> Lagrange(x,y,2010) ans = 171351 179323 203302 226542 249633
3/5))/3799912185593856 - (38513478438976075*x*(x - 9/10))/10133099161583616
P2 (0.45) 0.4546
f (0.45) P2 (0.45) 0.0285
24、
Year 1940 1950 1960 1970 1980 1990 Population(in thousands) 132,165 151,326 179,323 203,302 226,542 249,633
L2 ( x)
数值分析的实验报告
数值分析的实验报告数值分析的实验报告导言数值分析是一门研究数值计算方法和数值计算误差的学科,它在科学计算、工程技术和社会经济等领域具有广泛的应用。
本实验旨在通过对数值分析方法的实际应用,验证其有效性和可靠性。
实验一:方程求根方程求根是数值分析中的基础问题之一。
我们选取了一个非线性方程进行求解。
首先,我们使用二分法进行求解。
通过多次迭代,我们得到了方程的一个近似解。
然后,我们使用牛顿法进行求解。
与二分法相比,牛顿法的收敛速度更快,但需要选择一个初始点。
通过比较两种方法的结果,我们验证了牛顿法的高效性。
实验二:插值与拟合插值与拟合是数值分析中常用的数据处理方法。
我们选取了一组实验数据,通过拉格朗日插值法和最小二乘法进行插值和拟合。
通过对比两种方法的拟合效果,我们验证了最小二乘法在处理含有噪声数据时的优势。
同时,我们还讨论了插值和拟合的精度与样本点数量之间的关系。
实验三:数值积分数值积分是数值分析中的重要内容之一。
我们选取了一个定积分进行计算。
首先,我们使用复化梯形公式进行积分计算。
通过增加分割区间的数量,我们得到了更精确的结果。
然后,我们使用复化辛普森公式进行积分计算。
与复化梯形公式相比,复化辛普森公式具有更高的精度。
通过比较两种方法的结果,我们验证了复化辛普森公式的优越性。
实验四:常微分方程数值解常微分方程数值解是数值分析中的重要应用之一。
我们选取了一个常微分方程进行数值解的计算。
首先,我们使用欧拉方法进行数值解的计算。
然后,我们使用改进的欧拉方法进行数值解的计算。
通过比较两种方法的结果,我们验证了改进的欧拉方法的更高精度和更好的稳定性。
实验五:线性方程组的数值解法线性方程组的数值解法是数值分析中的重要内容之一。
我们选取了一个线性方程组进行数值解的计算。
首先,我们使用高斯消元法进行数值解的计算。
然后,我们使用追赶法进行数值解的计算。
通过比较两种方法的结果,我们验证了追赶法在求解三对角线性方程组时的高效性。
工程数值分析实验报告(3篇)
第1篇一、实验目的本次实验旨在通过数值分析的方法,对工程实际问题进行建模、求解和分析。
通过学习数值方法的基本原理和算法,提高解决实际工程问题的能力。
二、实验内容1. 线性方程组的求解2. 矩阵特征值与特征向量的计算3. 函数插值与曲线拟合4. 数值微分与积分三、实验步骤1. 线性方程组的求解(1)编写程序实现高斯消元法、克劳斯消元法和列主元素法(2)设计输入界面,用户输入增广矩阵的行和列,填写系数及常数项(3)分别运用三种方法求解线性方程组,比较求解结果的正确性、数值稳定性和计算效率2. 矩阵特征值与特征向量的计算(1)编写程序实现幂法、QR算法和逆幂法(2)设计输入界面,用户输入矩阵的行和列,填写矩阵元素(3)分别运用三种方法计算矩阵的特征值与特征向量,比较求解结果的准确性和计算效率3. 函数插值与曲线拟合(1)编写程序实现拉格朗日插值、牛顿插值和样条插值(2)设计输入界面,用户输入函数的自变量和函数值,选择插值方法(3)分别运用三种方法进行函数插值,比较插值结果的准确性和光滑性4. 数值微分与积分(1)编写程序实现有限差分法、龙格-库塔法和辛普森法(2)设计输入界面,用户输入函数的导数或积分的上下限,选择数值方法(3)分别运用三种方法进行数值微分和积分,比较求解结果的准确性和计算效率四、实验结果与分析1. 线性方程组的求解通过实验,我们发现列主元素法在求解线性方程组时具有较好的数值稳定性,计算效率也较高。
而高斯消元法和克劳斯消元法在处理大型稀疏矩阵时存在一定的困难。
2. 矩阵特征值与特征向量的计算实验结果表明,QR算法和逆幂法在计算矩阵特征值与特征向量时具有较高的准确性和计算效率。
幂法在处理大型稀疏矩阵时表现出较好的性能。
3. 函数插值与曲线拟合在函数插值和曲线拟合实验中,样条插值方法具有较好的准确性和光滑性。
拉格朗日插值和牛顿插值方法在处理简单函数时表现良好,但在处理复杂函数时可能存在精度问题。
《数值分析》课程实验报告范文
《数值分析》课程实验报告范文《数值分析》课程实验报告姓名:学号:学院:机电学院日期:2022年某月某日目录实验一函数插值方法1实验二函数逼近与曲线拟合5实验三数值积分与数值微分7实验四线方程组的直接解法9实验五解线性方程组的迭代法15实验六非线性方程求根19实验七矩阵特征值问题计算21实验八常微分方程初值问题数值解法24实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。
试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。
实验二函数逼近与曲线拟合一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。
在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t的拟合曲线。
t(分)051015202530354045505501.272.162.863.443.874.154.374.51 4.584.024.64二、要求1、用最小二乘法进行曲线拟合;2、近似解析表达式为;3、打印出拟合函数,并打印出与的误差,;4、另外选取一个近似表达式,尝试拟合效果的比较;5、某绘制出曲线拟合图。
三、目的和意义1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系四、实验步骤:第一步先写出线性最小二乘法的M文件functionc=lpoly(某,y,m)n=length(某);b=zero(1:m+1);f=zero(n,m+1); fork=1:m+1f(:,k)=某.^(k-1);enda=f'某f;b=f'某y';c=a\b;c=flipud(c);第二步在命令窗口输入:>>lpoly([0,5,10,15,20,25,30,35,40,45,50,55],[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64],2)回车得到:an=-0.00240.20370.2305即所求的拟合曲线为y=-0.0024某2+0.2037某+0.2305在编辑窗口输入如下命令:>>某=[0,5,10,15,20,25,30,35,40,45,50,55];>>y=-0.0024某某.^2+0.2037某某+0.2305;>>plot(某,y)命令执行得到如下图五、实验结论分析复杂实验数据时,常采用分段曲线拟合方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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七、总结知识掌握不牢固。
操作生疏,八、附录(源程序清单)。