数值分析实验3

合集下载

数值分析上机实验报告3

数值分析上机实验报告3

实验报告三题目:函数逼近——曲线拟合目的:掌握曲线拟合基本使用方法数学原理:[P,S]=polyfit(x,y,3)其中x,y为取样值,3为得出的结果的最高次数。

P为对应次数的系数,S为误差值向量,其中x,y是等长的向量,P是一个长度为m+1的向量。

结果分析和讨论:23.观察物体的运动,得出时间t与距离s的关系如表,求运动方程。

t=[0,0.9,1.9,3.0,3.9,5.0];s=[0,10,30,50,80,110];[P,S]=polyfit(t,s,5)P =-0.5432 6.4647 -26.5609 46.1436 -13.2601 -0.0000S =R: [6x6 double]df: 0normr: 1.2579e-012所以得到方程为:-13.2601x46.1436x-26.5609x6.4647x-0.5432x2345++24.在某化学反应堆里,根据实验所得分解物的质量分数y与时间t的关系,用最小拟合求y=F(t);>> x=0:5:55;y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.62,4.64];>> [P,S]=polyfit(x,y,5)P =0.0000 -0.0000 0.0002 -0.0084 0.2851 0.0082S =R: [6x6 double]df: 6normr: 0.0487所以得到方程为:0082.02851.00084.00002.023++-xxx结论:在23题中计算的结果误差为4.5769,而在24中计算的结果误差为0.0487,说明对于曲线拟合来说,总会有误差,因为取样点并不是都过拟合的曲线的。

数值分析实验三 线性方程组的直接接法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. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。

数值分析实验报告心得(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多项式,和分段三次插值多项式,计算, 的值。

数值分析实验报告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 。

数值分析实验报告三

数值分析实验报告三

-0.3105 -0.1375 -0.0509 -0.0076 -0.0076 -0.0076 -0.0021 -0.0021 -0.0008 -0.0001 -0.0001 -0.0001
0.0358 0.0358 0.0358 0.0358 0.0141 0.0033 0.0033 0.0006 0.0006 0.0006 0.0002 0.0001
3.0037 0.7752 0.1972 0.0497 0.0125 0.0031 0.0008 0.0002 0.0000 0.0000
0.1777 0.0967 0.0508 0.0260 0.0132 0.0066 0.0033 0.0016 0.0007 0.0007
0.5515 0.4287 0.2903 0.1751 0.0973 0.0514 0.0262 0.0129 0.0056 0.0056
6.0000 ans = 7.0000 ans = 8.0000 ans = 9.0000 ans = 10.0000 ans = 11.0000 ans = 12.0000 ans = 13.0000 ans = 14.0000 ans = 15.0000 ans = 16.0000 ans = 17.0000
实验步骤: 1) 2) 实验编程 运行结果 二分法 1) 实验编程
1. 新建 M 文件 newtonqx.m 输入: function [k,x,wuca,yx]=erfen(a,b,abtol) a(1)=a; b(1)=b; ya=fun(a(1)); yb=fun(b(1)); %程序中调用的fun.m 为函数 if ya* yb>0, disp('注意:ya*yb>0,请重新调整区间端点a和b.'), return end max1=-1+ceil((log(b-a)- log(abtol))/ log(2)); % ceil(u)是大于u的最小 取整数 for k=1: max1+1 a;ya=fun(a); b;yb=fun(b); x=(a+b)/2; yx=fun(x); wuca=abs(b-a)/2; k=k-1; [k,a,b,x,wuca,ya,yb,yx] if yx==0 a=x; b=x; elseif yb*yx>0 b=x;yb=yx; else a=x; ya=yx; end if b-a< abtol , return, end end k=max1; x; wuca; yx=fun(x);

数值分析实验报告5篇

数值分析实验报告5篇

误差分析实验1.1(问题)实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。

对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。

通过本实验可获得一个初步体会。

数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。

病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。

问题提出:考虑一个高次的代数多项式)1.1()()20()2)(1()(201∏=-=---=k k x x x x x p显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。

现考虑该多项式的一个扰动)2.1(0)(19=+x x p ε其中ε是一个非常小的数。

这相当于是对(1.1)中19x 的系数作一个小的扰动。

我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。

实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。

roots(a)u =其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。

设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程01121=+++++-n n n n a x a x a x a的全部根;而函数poly(v)b =的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。

可见“roots ”和“poly ”是两个互逆的运算函数。

;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =))20:1((ve poly roots +上述简单的Matlab 程序便得到(1.2)的全部根,程序中的“ess ”即是(1.2)中的ε。

实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。

数值分析实验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结果分析:不管用哪种迭代法,改变初始向量,右端向量,用有限的迭代次数,都能得到收敛结果且满足误差要求。

数值分析实验 实验报告

数值分析实验 实验报告

数值分析实验实验报告数值分析实验实验报告引言在现代科学与工程领域,数值分析是一项重要的技术手段。

通过数值方法,我们可以利用计算机模拟和解决各种实际问题,如物理、化学、生物、经济等领域中的方程求解、优化问题、数据拟合等。

本实验旨在通过实际案例,探讨数值分析的应用和效果。

实验一:方程求解首先,我们考虑一个简单的方程求解问题。

假设我们需要求解方程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;

数值分析实验

数值分析实验

数值分析实验3(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--贵州师范大学数学与计算机科学学院学生实验报告课程名称: 数值分析 班级: 信本班 实验日期: 2013 年 9 月 3日学 号: 姓名: 孙泽香 指导教师: 实验成绩:一、实验名称实验一:递推法的稳定性,秦九韶算法二、实验目的及要求1. 熟悉数值稳定的概念, 通过上机计算,了解舍入误差所引起的数值不稳定性.2. 培养Matlab 编程与上机调试能力.三、实验环境每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、(或。

四、实验内容1.教材例中,取16位数字计算,并分析、比较计算结果.2.设100999832()101100994321f x x x x x x x =+++++++,用秦九韶算法编程计算()f x 在1,2,3,4x =上的值.五、算法描述及实验步骤1. 设(1)从0I 尽可能精确的近似值出发,利用递推公式:115(1,2,,14)n n I I n n -=-+=, 计算从1I 到14I 的近似值;(2)从15I 较粗糙的估计值出发,用递推公式:111(15,14,,3,2)55n n I I n n -=-+=计算从1I 到14I 的近似 .2. 秦九韶算法给定n 次多项式Pn (x )=a(n)x^n+a(n-1)x^(n-1)+…+a(1)x+a(0).要计算Pn(x)在x 处的值。

今考虑n 次多项式Pn (x ),用V(k)表示第k 层的值(从里面数起),依次计算 V (1)=a(n)x+a(n-1) V(2)=V(1)x+a(n-2) … V(n)=V(n-1)x+a(0). 显然V (n )=Pn (x ).记a(n)=V(0),上述计算过程可写成:V(0)=a(n)V(k)=V(k-1)*x+a(n-k),(k=1,2,…,n).六、调试过程及实验结果算法一:>> format long e>> syms x;>> fun=inline('1./(x+5)');>> I(1)=quad(fun,0,1);>> for n=1:14I(n+1)=1/n-5*I(n);end>> II =Columns 1 through 3Columns 4 through 6Columns 7 through 9Columns 10 through 12Columns 13 through 15算法二:>> format long e>> syms x;>> fun=inline('x.^14./(x+5)');>> I(15)=quad(fun,0,1);>> for n=14:-1:1I(n)=1/(5*n)-I(n+1)/5;end>> II =Columns 1 through 3Columns 4 through 6Columns 7 through 9Columns 10 through 12Columns 13 through 15设f(x)=101x^100+100x^99+…+3x^2+2x+1,用秦九韶算法编程计算f(x)在x=1,2,3,4上的值。

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

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

第1篇一、实验目的本次实验旨在通过数值分析方法对一组已知数据点进行拟合,掌握线性插值、多项式插值、样条插值等方法的基本原理和实现过程,并学会使用MATLAB进行数值拟合。

二、实验内容1. 线性插值线性插值是一种简单的插值方法,适用于数据点分布较为均匀的情况。

其基本原理是通过两个相邻的数据点,利用线性关系拟合出一条直线,然后通过该直线来估算未知的值。

2. 多项式插值多项式插值是一种较为精确的插值方法,通过构造一个多项式函数来逼近已知数据点。

其基本原理是利用最小二乘法求解多项式的系数,使得多项式在已知数据点上的误差最小。

3. 样条插值样条插值是一种更灵活的插值方法,通过构造一系列样条曲线来逼近已知数据点。

其基本原理是利用最小二乘法求解样条曲线的系数,使得样条曲线在已知数据点上的误差最小。

三、实验步骤1. 线性插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`linspace`生成插值点:xi = linspace(1, 5, 100);(3)使用MATLAB内置函数`interp1`进行线性插值:yi = interp1(x, y, xi, 'linear');(4)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');2. 多项式插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`polyfit`求解多项式系数:p = polyfit(x, y, 3);(3)使用MATLAB内置函数`polyval`进行多项式插值:yi = polyval(p, xi);(4)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');3. 样条插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`spline`进行样条插值:yi = spline(x, y, xi);(3)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');四、实验结果与分析1. 线性插值线性插值方法简单易行,但精度较低,适用于数据点分布较为均匀的情况。

数值分析(第三章)实验报告

数值分析(第三章)实验报告

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篇)

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

贵州师范大学数学与计算机科学学院学生实验报告
课程名称: 数值分析 班级: 信本班 实验日期: 2013 年 9 月 3日
学 号: 110703010038 姓名: 孙泽香 指导教师: 实验成绩:
一、实验名称
实验一:递推法的稳定性,秦九韶算法
二、实验目的及要求
1. 熟悉数值稳定的概念, 通过上机计算,了解舍入误差所引起的数值不稳定性.
2. 培养Matlab 编程与上机调试能力.
三、实验环境
每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0)。

四、实验内容
1.教材例1.13中,取16位数字计算,并分析、比较计算结果.
2.设100999832()101100994321f x x x x x x x =+++
++++,用秦九韶算法编程计
算()f x 在1,2,3,4x =上的值.
五、算法描述及实验步骤
1. 设
(1)从0I 尽可能精确的近似值出发,利用递推公式:
115(1,2,,14)n n I I n n -=-+=, 计算从1I 到14I 的近似值;
(2)从15I 较粗糙的估计值出发,用递推公式:
111(15,14,,3,2)55n n I I n n -=-+=
计算从1I 到14I 的近似 .
2. 秦九韶算法
给定n次多项式
Pn(x)=a(n)x^n+a(n-1)x^(n-1)+…+a(1)x+a(0).
要计算Pn(x)在x处的值。

今考虑n次多项式Pn(x),用V(k)表示第k层的值(从里面数起),依次计算 V(1)=a(n)x+a(n-1) V(2)=V(1)x+a(n-2) … V(n)=V(n-1)x+a(0).
显然V(n)=Pn(x).记a(n)=V(0),上述计算过程可写成:
V(0)=a(n)
V(k)=V(k-1)*x+a(n-k),(k=1,2,…,n).
六、调试过程及实验结果
1.12 算法一:
>> format long e
>> syms x;
>> fun=inline('1./(x+5)');
>> I(1)=quad(fun,0,1);
>> for n=1:14
I(n+1)=1/n-5*I(n);
end
>> I
I =
Columns 1 through 3
1.823215568047383e-001 8.839221597630853e-002
5.803892011845735e-002
Columns 4 through 6
4.313873274104657e-002 3.430633629476715e-002
2.846831852616427e-002
Columns 7 through 9
2.432507403584530e-002 2.123177267791634e-002
1.884113661041828e-002
Columns 10 through 12
1.690542805901971e-002 1.547285970490148e-002
1.354479238458353e-002
Columns 13 through 15
1.560937141041567e-002 -1.123780129001425e-003
7.704747207357855e-002
算法二:
>> format long e
>> syms x;
>> fun=inline('x.^14./(x+5)');
>> I(15)=quad(fun,0,1);
>> for n=14:-1:1
I(n)=1/(5*n)-I(n+1)/5;
end
>> I
I =
Columns 1 through 3
1.823215567939547e-001 8.839221603022675e-002
5.803891984886631e-002
Columns 4 through 6
4.313873408900180e-002 3.430632955499104e-002
2.846835222504479e-002
Columns 7 through 9
2.432490554144271e-002 2.123261514992931e-002
1.883692425035346e-002
Columns 10 through 12
1.692648985934385e-002 1.536755*********e-002
1.407133739268709e-002
Columns 13 through 15
1.297664636989789e-002 1.203984507358747e-002
1.122934606063409e-002
1.13 设f(x)=101x^100+100x^99+…+3x^2+2x+1,用秦九韶算法编程计算f(x)在x=1,2,3,4上的值。

>> syms x;
>> a=101:-1:1;
>> x=[1,2,3,4];
>> V=a(1);
>> for k=1:100
V=V.*x+a(k+1);
end
>> V
V =
Columns 1 through 3
5.151000000000000e+003 2.535301200456459e+032
7.769316125035074e+049
Column 4
2.156867952738734e+062
即:[f(1),f(2),f(3),f(4)]=[ 5.151000000000000e+003
2.535301200456459e+032 7.769316125035074e+049
2.156867952738734e+062]
七、总结
对于问题1.12,同样是用递推法,但从结果来看,不同的递推顺序对结果的影响不同,第一个算法还存在负数,这明显误差太大导致出错了。

但算法二的结果精确度更高,更接近准确值。

对于问题1.13,对于一些高次的多项式,采用秦九韶算法编程可以减少大量的时间开销,去计算多项式函数在某些点处的函数值时既简单又方便。

八、附录(源程序清单)
>> format long e
>> syms x;
>> fun=inline('1./(x+5)');
>> I(1)=quad(fun,0,1);
>> for n=1:14
I(n+1)=1/n-5*I(n);
end
>> I
>> format long e
>> syms x;
>> fun=inline('x.^14./(x+5)');
>> I(15)=quad(fun,0,1);
>> for n=14:-1:1
I(n)=1/(5*n)-I(n+1)/5;
end
>> I
>> syms x;
>> a=101:-1:1;
>> x=[1,2,3,4];
>> V=a(1);
>> for k=1:100
V=V.*x+a(k+1);
end
>> V。

相关文档
最新文档