数值分析实验(2)word版本

合集下载

数值分析实验报告2

数值分析实验报告2

实验报告实验项目名称函数逼近与快速傅里叶变换实验室数学实验室所属课程名称数值逼近实验类型算法设计实验日期班级学号姓名成绩512*x^10 - 1280*x^8 + 1120*x^6 - 400*x^4 + 50*x^2 - 1并得到Figure,图像如下:实验二:编写程序实现[-1,1]上n阶勒让德多项式,并作画(n=0,1,…,10 在一个figure中)。

要求:输入Legendre(-1,1,n),输出如a n x n+a n-1x n-1+…多项式。

在MATLAB的Editor中建立一个M-文件,输入程序代码,实现勒让德多项式的程序代码如下:function Pn=Legendre(n,x)syms x;if n==0Pn=1;else if n==1Pn=x;else Pn=expand((2*n-1)*x*Legendre(n-1)-(n-1)*Legendre(n-2))/(n);endx=[-1:0.1:1];A=sym2poly(Pn);yn=polyval(A,x);plot (x,yn,'-o');hold onend在command Windows中输入命令:Legendre(10),得出的结果为:Legendre(10)ans =(46189*x^10)/256 - (109395*x^8)/256 + (45045*x^6)/128 - (15015*x^4)/128 + (3465*x^2)/256 - 63/256并得到Figure,图像如下:实验三:利用切比雪夫零点做拉格朗日插值,并与以前拉格朗日插值结果比较。

在MATLAB的Editor中建立一个M-文件,输入程序代码,实现拉格朗日插值多项式的程序代码如下:function [C,D]=lagr1(X,Y)n=length(X);D=zeros(n,n);D(:,1)=Y';for j=2:nfor k=j:nD(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1));endendC=D(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)));m=length(C);C(m)= C(m)+D(k,k);end在command Windows 中输入如下命令:clear,clf,hold on;k=0:10;X=cos(((21-2*k)*pi)./22); %这是切比雪夫的零点Y=1./(1+25*X.^2);[C,D]=lagr1(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.01:1;z=1./(1+25*xp.^2);plot(xp,z,'r')得到Figure ,图像如下所示:比较后发现,使用切比雪夫零点做拉格朗日插值不会发生龙格现象。

数值分析实验报告--实验2--插值法

数值分析实验报告--实验2--插值法

1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。

显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。

我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。

龙格(Runge )给出一个例子是极著名并富有启发性的。

设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。

实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。

(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。

(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。

1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。

1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。

Matlab 脚本文件为Experiment2_1_1fx.m 。

可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。

数值分析实验报告二

数值分析实验报告二

数值实验报告二一、实验名称解线性方程组的列主元素高斯消去法和LU 分解法二、实验目的通过数值实验,从中体会解线性方程组选主元的必要性和LU 分解法的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。

三、实验内容解下列两个线性方程组(1) ⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--11134.981.4987.023.116.427.199.103.601.3321x x x (2) ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----15900001.582012151526099999.23107104321x x x x 四、算法描述1、 列主元素高斯消去法记: ij ij a a =1)( (i, j = 1,2,3n )i i b b =1)( (i = 1,2,3n )消元过程:对于k = 1,2,3n(1) 选行号k i ,使)()(max k i ni k k k i k k a a ≤≤=。

(2) 交换)(k kj a 与)(k j i k a (j = k, k+1,k+2n )以及)()(k i k k k b b 与所含的数值。

(3)对于i = k, k+1,k+2n ,计算)()(k kkk ik ik a a m =)()()1(k kj ik k ij k ij a m a a -=+ (j = k, k+1,k+2n ))()()1(k k ik k i k i b m b b -=+回代过程:)(n nnn n a b x = )()1)()(/(k kk j n k j k kj k k k a x a a x ∑+=-= (k = n-1, n-2, n-3 1 )在此算法中的)(k k i k a 称为第k 个列主元素,它的数值总要被交换到第k 个主对角线元素的位置上。

2、 LU 分解法通过MATLAB 自有的函数,把系数矩阵A 分解成A=LU ,其中:L 是下三角矩阵,U 是上三角矩阵,这时方程组Ax=b 就可以分解成两个容易求解的三角形方程组Ly=b ,Ux=y 。

数值分析实验二

数值分析实验二

内江师范学院数值分析实验报告册编制张莉审定牟廉明专业:班级:级班学号:姓名:数学与信息科学学院2013年9月说明一、学生在做实验之前必须要准备实验,主要包括预习与本次实验相关的理论知识,熟练与本次实验相关的软件操作,收集整理相关的实验参考资料,要求学生在做实验时能带上充足的参考资料;若准备不充分,则学生不得参加本次实验,不得书写实验报告;二、要求学生要认真做实验,主要是指不得迟到、早退和旷课,在做实验过程中要严格遵守实验室规章制度,认真完成实验内容,极积主动地向实验教师提问等;三、各个实验按照学生水平分别设置了A、B、C、D四个等级,其中对应的难度系数为1、0.8、0.7、0.6,也可根据实际完成情况制定相应地的难度系数,但总体保证难度排序为A级难度最大,B级次之,C级较易,D级最简单。

四、学生可以根据自己对各个实验涉及到的知识点掌握的程度自由选取A、B、C、D等级的实验题目。

五、学生要认真工整地书写实验报告,实验报告的内容要紧扣实验的要求和目的,不得抄袭他人的实验报告;四、根据实验准备、实验态度、实验报告的书写、实验报告的内容进行综合评定,并给出实验成绩评定分。

实验名称: 实验二 插值与拟合 指导教师: 吴开腾 张莉 实验时数: 4 实验设备:安装了Matlab 、C ++、VF 软件的计算机 实验日期:2013年 10 月 23、30 日 实验地点: 第五教学楼北902 实验目的:1. 掌握插值方法的基本思想和基本步骤,能够根据实际问题选用适当地插值方法进行数值实验,并从实验过程中理解各类插值方法之间的了解与区别。

2. 理解各类插值方法优缺点,并能自行编程求解。

3. 理解插值方法与数据拟合的区别,掌握数据拟合方法解决实际问题的基本步骤和求解理论,并能通过数值实验进行验证。

实验准备:1. 在开始本实验之前,请回顾教科书的相关内容;2. 需要一台准备安装Windows XP Professional 操作系统和装有数学软件的计算机。

数值分析实验报告二2汇总

数值分析实验报告二2汇总
legend('数据点(xi,yi)','牛顿插值曲线y=f(x)');xlabel('x');ylabel('y');
title('数据点(xi,yi)和牛顿插值曲线y=f(x)的图形')
运行结果:
实验结果分析:
最小二乘法拟合的曲线误差最小。
也可以得到三图合一的图像:
在以上命令的基础上
运行命令plot(x1,y1,'r*',x,y,'b-',t,p1,'k-',x,P2,'y-')
% f积分函数
% a/b:积分上下限
% tol:积分误差
% R:Romberg积分值
% k:二分次数
k=1;
h=b-a;
%第一步
T(k,1)=h/2*(f(a)+f(b));
err=1;
whileerr>=eps
T(k,k)= Tห้องสมุดไป่ตู้k,1);
h=h/2;
%第二步求梯形值T0
temp=0;
i=1;
whilei<2^k
实验结果分析:
本题用了三种方法计算,虽然三种方法的结果差别不大,但得到结果的过程不同,每个方法都有其优缺点。
成绩评定
签字:年月日
-3002399751579999/9007199254740992*x^3-311/1125899906842624*x^2+4128299658423301/562949953421312*x-2533274790396013/281474976710656
拉格朗日插值
实验步骤:

11级数值分析2实验项目

11级数值分析2实验项目

数值分析2实验项目实验一 简单迭代法与加速方法一、目的与要求:1、掌握求解非线性方程实根的简单迭代法的编程运算2、会分析迭代步数,设计容许误差二、实验内容:1、方程324100x x +-=可以等价化成以下三种形式:(i) 1/210(4)x x x =- (ii) 1/210()4x x =+ (iii) 32241038x x x x x x+-=-+ 针对三种等价形式给出三种不同的简单迭代格式并使用每种格式计算方程在区间[1,2]上的解,初值选为1.5,容许误差选为1.0E-5,即510-;分析每种格式的收敛性;分析收敛格式的迭代步数与计算时间.2、结合上述问题中(ii)相应的迭代格式,利用Stenffenson 迭代法求原方程的解。

初值选为1.5,容许误差选为1.0E-5,分析迭代步数与计算时间,并与上述简单迭代法作比较.实验二 Newton 迭代法一、目的与要求:掌握求解非线性方程实根的Newton 切线法的编程运算二、实验内容:1、用Newton 切线法求xx e -=在0.5附近的根,2、用Newton 切线法求方程310x x --=在1.5附近的一个根. (选做)3、用Newton 切线法计算3k =,4k =时,方程2((3)0k x x -=在1.3附近的根以及2.5附近的根,比较计算两根时的迭代次数,并与理论结论作比较. 实验三 Newton 下山法与重根加速法一、目的与要求:掌握求解非线性方程实根的Newton 下山法与重根加速法的编程运算二、实验内容:1、分别使用Newton 切线法与Newton 下山法求解方程310x x --=在 1.5x =附近的根,但是初值选为0.6x =,根据计算结果,验证下山法在初值选取范围上的优越性。

2、分别使用Newton 切线法与重根加速法计算3k =,4k =时,方程2((3)0k x x -=在1.3附近的根,在相同的容许误差下,比较两种方法的计算时间与迭代次数.实验四 解非线性方程组的Newton 迭代法一、目的与要求:掌握求解非线性方程方程组的Newton 迭代法编程运算二、实验内容:使用Newton 迭代法求解非线性方程组122212230450x x x x +-=⎧⎨+-=⎩,容许误差选为1.0E-5,给出初值分别选取为(1.5,1.0),(2.0,2.0),(1000,1000)时迭代步数,并分析迭代步数之间差别的原因.实验五 Euler 方法和梯形方法一、目的与要求:掌握求解一阶常微分方程初值问题Euler 方法和梯形方法编程运算二、实验内容:1. 分别使用Euler 方法、梯形方法和预估-校正方法在步长选为1/10时计算一阶常微分方程初值问题⎪⎩⎪⎨⎧=<<++-=1)0(110,1y x y y dx d (该问题的精确解为x e x y x +=-)(), 将误差(精确解与数值解的差)列表, 并画出精确解与数值解的函数图象.2. 使用Euler 方法和梯形方法在步长选为1/8,1/16,1/32时分别计算下述一阶常微分方程初值问题'()4(0,1](0)1y x x y ⎧=∈⎪⎨=⎪⎩(该问题的精确解为22()(1)y x x =+) 给出(1)y 的近似值与误差,将误差(精确解与数值解的差)列表,并画出精确解与数值解的函数图象.(选作)实验六 经典Runge-kutta 方法一、目的与要求:掌握求解一阶常微分方程初值问题经典Runge-kutta 方法编程运算二、实验内容:1.用经典Runge-kutta 方法在步长选为1/10时计算一阶常微分方程初值问题⎪⎩⎪⎨⎧=<<++-=1)0(110,1y x y y dx d (该问题的精确解为x e x y x +=-)(), 将误差(精确解与数值解的差)列表, 并画出精确解与数值解的函数图象. 实验七 四阶Adama 显式和隐式方法一、目的与要求:掌握求解一阶常微分方程初值问题四阶Adama 显式和隐式方法编程运算二、实验内容:1.分别用四阶Adama 显式和隐式方法在步长选为1/10时计算一阶常微分方程初值问题⎪⎩⎪⎨⎧=<<++-=1)0(110,1y x y y dx d (该问题的精确解为x e x y x +=-)(), 将误差(精确解与数值解的差)列表, 并画出精确解与数值解的函数图象. 实验八 计算矩阵主特征值及主特征向量(选作)一、目的与要求:掌握求解矩阵主特征值及主特征向量的改进幂法编程运算二、实验内容:用改进幂法求解矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1634310232的主特征值及主特征向量,并列表.。

数值分析实验(2.3.5章)

数值分析实验(2.3.5章)

试验2.1 多项式插值的振荡现象实验目的:观察多项式插值的振荡现象,了解多项式的次数与逼近效果的关系。

实验内容:问题提出:考虑在一个固定的区间上用插值逼近一个函数。

显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。

我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。

Runge 给出的一个例子是极著名并富有启发性的。

设区间[-1,1]上的函数225x11)x (+=f ,考虑区间[-1,1]上的一个等距划分,分点为n2i 1x i +-=,i=0,1,2,…,n则拉格朗日插值多项式为:)x (l 25x11)x (Ln i ni 2i∑=+=,其中的)x (l i ,i=0,1,2,…,n 是n 次拉格朗日插值基函数。

实验要求:1、选择不断增大的分点数目n=2,3,………,画出原函数)x (f 及插值多项式函数)x (Ln 在[-1,1]上的图像,比较并分析试验结果。

2、选择其他的函数,例如定义在区间[-5,5]上的函数4()1x h x x=+,()arctan g x x =,重复上述的实验看其结果如何。

实验步骤及结果分析:1、选择不断增大的分点数目n=2,3,4,5,6,7,8,9,10做)x (f 的拉格朗日插值多项式)x (Ln ,并与原函数值做比较,如下图所示。

观察图像可知:n=2,3时插值函数和原函数差别很大,n=4,5,6时插值函数与原函数的逼近程度相对较好,继续增加插值次数n ,插值函数在插值区域的中间部分收敛,而在这区间外是发散的,此外,n=7,9时在插值中间区域逼近效果不好。

因此,适当提高插值多项式次数,可以提高逼近的精度,但是次数太高反而产生相反的效果。

2、选择其他的函数进行插值。

原函数4()1x h x x=+,区间[-5,5],插值结果如下图:观察图像可知:低次插值时,插值效果不好。

n=7,8,9,10时,在区间[-2,2],插值函数与原函数逼近程度好,但在区间外插值函数发散。

数值分析实验报告模板

数值分析实验报告模板

数值分析实验报告模板篇一:数值分析实验报告(一)(完整)数值分析实验报告12345篇二:数值分析实验报告实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。

本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。

利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。

即若x0 偏离所求根较远,Newton法可能发散的结论。

并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。

前言:(目的和意义)掌握二分法与Newton法的基本原理和应用。

掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收敛,但精度不够。

熟悉Matlab语言编程,学习编程要点。

体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。

数学原理:对于一个非线性方程的数值解法很多。

在此介绍两种最常见的方法:二分法和Newton法。

对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk)产生逼近解x*的迭代数列{xk},这就是Newton法的思想。

当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。

另外,若将该迭代公式改进为xk?1?xk?rf(xk) 'f(xk)其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。

程序设计:本实验采用Matlab的M文件编写。

其中待求解的方程写成function的方式,如下function y=f(x);y=-x*x-sin(x);写成如上形式即可,下面给出主程序。

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

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

《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期: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多项式,和分段三次插值多项式,计算, 的值。

数值分析实验二

数值分析实验二
b=polyfit(x,y,4);
x1=0.0:0.05:1.00;
>> y1=a(4)+a(3)*x1+a(2)*x1.^2+a(1)*x1.^3;
y2=b(5)+b(4)*x1+b(3)*x1.^2+b(2)*x1.^3+b(1)*x1.^4;
>> plot(x,y,'*');
>> hold on;
(1)掌握曲线拟合的最小二乘法;
(2)将函数逼近方法与插值法进行比较。
2.实验要求(由课任教师于实验开始前公布,不低于2行,不超过3行,由学生负责填写;5号字,行距20):
3.实验内容(由课任教师指明,由学生填写,不超出本页本栏):
1.对于给函数 在区间[-1,1]上取 =-1+0.2i(i=0,1,……,10),试求3次曲线拟合,试画出拟合曲线并打印出方程,与用插值法的结果比较。
>> plot(x1,y1,'-r')
>> y2=newton(x,y,x1);
>> hold on;
>> plot(x1,y2,'-')
2.>> y=[1.00 0.41 0.50 0.61 0.91 2.02 2.16];
>> x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];
>> a=polyfit(x,y,3);
2.由实验给出数据表
x
0.0
0.1
0.2
0.3
0.5
0.8
1.0
y
1.0
0.41

《数值分析》实验研究报告

《数值分析》实验研究报告

《数值分析》实验报告册
姓名:
学号:
专业:
年级:
武汉科技大学理学院
信息与计算科学系
学年第学期
说明:
1、实验目的要写清楚为什么要做这个实验,其目的是什么,做完这个实验要达到什么
结果,实验的注意事项是什么等;
2、实验题目一栏要填写清楚具体的实验题目;
3、实验原理要将实验所涉及的基础理论、算法原理详尽列出;
4、实验内容列出实验的实施方案、步骤、数据准备、算法流程图以及可能用到的实验
设备(硬件和软件);
5、实验结果应包括实验的原始数据、中间结果及最终结果,复杂的结果可用表格或图
形形式实现,较为简单的结果可以与实验结果分析合并出现;
6、实验结果分析要对实验的结果进行认真的分析,进一步明确实验所涉及的算法的优
缺点和使用范围,要求实验结果应能在计算机上实现或演示,由实验者独立编程实现,程序清单以附录的形式给出;
7、报告填写用“宋体”(小四)格式字体。

实验一
实验二
实验三
实验四
1111
4
5335 111⎥⎥⎥
----⎥


实验五 14114⎥⎥--⎥⎥-⎦ 55⎥⎥⎥⎥⎦。

《数值分析》实验报告书

《数值分析》实验报告书

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;

《数值分析》实验报告2

《数值分析》实验报告2

《数值分析》实验报告一、问题的提出求解线性方程组的迭代法,即是用某种极限过程去逐步逼近线性方程组的精确解的过程,迭代法是解大型稀疏矩阵方程组的重要方法。

二、实验名称运用MATLAB编程实现雅可比(Jacobi)迭代和高斯-赛德尔(Gauss-Seidel)迭代。

三、实验目的1、熟悉了解雅可比(Jacobi)迭代和高斯-赛德尔(Gauss-Seidel)迭代的算法。

2、学习MATLAB软件的功能。

四、基本原理五、实验环境操作环境:Windows10实验平台:Matlab7.1软件六、试验设计1、jacobi迭代法(1)算例:课本p54页例1(2)程序清单Jacobi迭代法的MATLAB函数文件Jacobi.m如下:function [y,n]=jacobi(A,b,x0,eps)if nargin==3eps=1.0e-6;elseif nargin<3errorreturnendD=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵B=D\(L+U);f=D\b;y=B*x0+f;n=1; %迭代次数while norm(y-x0)>=epsx0=y;y=B*x0+f;n=n+1;end(3)实验结果及分析:>> A=[8,-3,2;4,11,-1;6,3,12];>> b=[20,33,36]';>> [x,n]=jacobi(A,b,[0,0,0]',1.0e-6)x =3.00002.00001.0000n =162、Gauss-seidel迭代法(1)算例:课本p54页例1(2)程序清单:Gauss-Serdel迭代法的MATLAB函数文件gauseidel.m如下:function [y,n]=gauseidel(A,b,x0,eps)if nargin==3eps=1.0e-6;elseif nargin<3errorreturnendD=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1; %迭代次数while norm(y-x0)>=epsx0=y;y=G*x0+f;n=n+1;end(3)实验结果及分析:>> A=[8,-3,2;4,11,-1;6,3,12];>> b=[20,33,36]';>> [x,n]=gauseidel(A,b,[0,0,0]',1.0e-6)x =3.00002.00001.0000n =9七、结果说明:高斯-赛德尔迭代法比雅可比迭代法收敛得快一些(达到相同精度所需迭代次数较少)。

(完整word版)数值分析报告-二分法和牛顿法方程求根(word文档良心出品)

(完整word版)数值分析报告-二分法和牛顿法方程求根(word文档良心出品)

《数值分析》实验报告一**: **学号: PB********实验一一、实验名称方程求根二、实验目的与要求:通过对二分法和牛顿法作编程练习和上机运算,进一步体会它们在方程求根中的不同特点;比较二者的计算速度和计算精度。

三、实验内容:通过对二分法和牛顿迭代法作编程练习和上机运算,进一步体会它们在方程求根中的不同特点 。

(一)二分法算法:给定区间[a,b],并设f (a )与f (b )符号相反,取δ为根的容许误差,ε为值的容许误差。

(1)令c=(a+b)/2(2)如果(c-a)< δ或)(c f <ε,则输出c ,结束;否则执行(3)(3)如果f(a)f(c)<0,则令)()(,c f b f c b ←←;否则,则令)()(,c f a f c a ←←,重复(1),(2),(3)。

(二)牛顿迭代法:给定初值0x ,ε为根的容许误差,η为)(x f 的容许误差,N 为迭代次数的容许值。

(1)如果)(x f <η或迭代次数大于N ,则算法结束;否则执行(2)。

(2)计算)('/)(0001x f x f x x -=(3)若 < 或 < ,则输出 ,程序结束;否则执行(4)。

(4)令 = ,转向(1)。

四、实验题目与程序设计1、二分法3.1.1、用二分法求方程a. f(x)= x x tan 1--在区间[0,π/2]上的根,c. f(x)=6cos 22-++-x e x x 在区间[1,3]上的根。

源程序:3.1.1.a#include<stdio.h>#include<math.h>void main(){float a,b;double c,y,z;printf("plese input two number a and b:\n");scanf("%f%f",&a,&b);c=(a+b)/2;y=1/c-tan(c);printf("a=%f,b=%f,b-a=%f,c=%f,f(c)=%f\n",a,b,b-a,c,y);while(fabs(b-a)>0.00001|| fabs(y)>0.00001){z=1/a-tan(a);if(z*y<0)b=c;elsea=c;c=(a+b)/2;y=1/c-tan(c);printf("a=%f,b=%f,b-a=%f,c=%f,f(c)=%f\n",a,b,b-a,c,y);}x x 01-ε)(1x f ηx 1x 0x 1}输入0 1.5707563( /2~1.5705563)得到下表:由上表可以看出刚开始时f(c)取值幅度很大,但是经过一段历程之后,幅度变得平缓甚至基本接近与零,我们认为,x=0.8603是方程的根,结果与实际想要得到的值相当接近。

数值分析(计算方法)实验二

数值分析(计算方法)实验二

《数值分析》课程实验指导书实验二函数逼近与曲线拟合一、问题提出二、实验程序及结果分析:先写出线性最小二乘法的M文件function c=lspoly(x,y,m)% x是数据点的横坐标组成的向量,y是纵坐标组成的向量% m是要构成的多项式的次数,c是多项式由高次到低次的系数所组成的向量n=length(x);b=zeros(1:m+1);f=zeros(n,m+1);for k=1:m+1f(:,k)=x.^(k-1);enda=f'*f;b=f'*y';c=a\b;c=flipud(c);方法一:近似解析表达式为:y(t)=a1t+a2t2+a3t3第二步在命令窗口输入:lspoly([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)回车得到:ans =0.0000-0.00520.26340.0178即所求的拟合曲线为y=-0.0052t2+0.2634t+0.0178在编辑窗口输入如下命令:>>x=[0,5,10,15,20,25,30,35,40,45,50,55];y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4 .64];>> t=0:0.1:55;>> z=-0.0052*t.^2+0.2634*t+0.0178;>> plot(x,y,'ro',t,z);grid命令执行得到如下图(图2-1)0102030405060图2-1 拟合多项式与数据点的关系方法二:假设近似表达式为:y(t)=c0+c1t+c2t2第一步在命令窗口输入:>>lspoly([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)回车得到:ans =-0.00240.20370.2305即所求的拟合曲线为y=-0.0024t2+0.2037t+0.2305在编辑窗口输入如下命令:>>x=[0,5,10,15,20,25,30,35,40,45,50,55];y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4. 58,4.02,4.64];>> t=0:0.1:55;>> z=-0.0024*t.^2+0.2037*t+0.2305;>> plot(x,y,'ro',t,z);grid命令执行得到如下图(图2-2)图2-2 拟合多项式与数据点的关系三、实验结论在利用数据的最小二乘法求拟合曲线时,选取合适的近似表达式很重要,应通过不断的试验找出较为合适的近似表达式,这样才能尽可能的提高拟合精度。

数值分析实验报告

数值分析实验报告

数值分析实验报告一、实验目的数值分析是一门研究用计算机求解数学问题的数值方法及其理论的学科。

本次实验的目的在于通过实际操作和编程实现,深入理解和掌握数值分析中的常见算法,提高运用数值方法解决实际问题的能力,并对算法的精度、稳定性和效率进行分析和比较。

二、实验环境本次实验使用的编程语言为 Python,使用的开发工具为 PyCharm。

实验所依赖的主要库包括 NumPy、Matplotlib 等。

三、实验内容(一)函数逼近与插值1、拉格朗日插值法通过给定的离散数据点,构建拉格朗日插值多项式,对未知点进行函数值的估计。

2、牛顿插值法与拉格朗日插值法类似,但采用了不同的形式和计算方式。

(二)数值积分1、梯形公式将积分区间划分为若干个梯形,通过计算梯形面积之和来近似积分值。

2、辛普森公式基于抛物线拟合的方法,提高积分近似的精度。

(三)线性方程组求解1、高斯消元法通过逐行消元将线性方程组化为上三角形式,然后回代求解。

2、 LU 分解法将系数矩阵分解为下三角矩阵 L 和上三角矩阵 U,然后通过两次前代和回代求解。

(四)非线性方程求解1、二分法通过不断将区间一分为二,逐步缩小根所在的区间,直到满足精度要求。

2、牛顿迭代法利用函数的切线来逼近根,通过迭代逐步收敛到根的近似值。

四、实验步骤(一)函数逼近与插值1、拉格朗日插值法定义计算拉格朗日基函数的函数。

根据给定的数据点和待求点,计算插值多项式的值。

输出插值结果,并与真实值进行比较。

2、牛顿插值法计算差商表。

构建牛顿插值多项式。

进行插值计算和结果分析。

(二)数值积分1、梯形公式定义积分区间和被积函数。

按照梯形公式计算积分近似值。

分析误差。

2、辛普森公式同样定义积分区间和被积函数。

运用辛普森公式计算积分近似值。

比较与梯形公式的精度差异。

(三)线性方程组求解1、高斯消元法输入系数矩阵和右端项向量。

进行消元操作。

回代求解方程。

输出解向量。

2、 LU 分解法对系数矩阵进行 LU 分解。

数值实验二实验报告

数值实验二实验报告

贵州师范大学数学与计算机科学学院学生实验报告课程名称: 数值分析 班级:数学专业2班 实验日期: 2013年 9月 26 日 学 号: 110701020016 姓名: 指导教师: 杨 一 都 实验成绩:一、实验名称实验二: Lagrange 插值与曲线拟合的最小二乘法 二、实验目的及要求1.让学生掌握Lagrange 插值与曲线拟合的最小二乘法2.让学生能够用这些方法解决一些实际问题 三、实验环境每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0). 四、实验内容 题1: 对函数211)(x x f +=,取n+1个等距分布的插值节点,取不同的n ,作n 次Lagrange 插值,把)(x f 和插值多项式的图象绘制在同一张图上进行比较. 题曲线拟合较好?为什么?你能找出更好的拟合曲线吗? 提示:用残差平方的大小来判断拟合的优劣,越小越好. 五、算法描述及实验步骤 1.(1)算法描述:画出211)(xx f +=的原函数图像与它的Lagrange 多项式插值图像在同一 图上进行比较。

(2)实验步骤:①.在M-file 编辑窗口编辑Lagrange 插值M 文件; ②.画出f(x)原函数图像;③.在命令窗口调用Lagrange 插值取n=10画拟合图像; ④.观察比较两个图像。

2.(1)算法描述:分别用一次、二次、和三次多项式曲线,以及最小二乘法拟合这些数据点, 找出哪一种曲线拟合较好。

(2)实验步骤:①. 在M-file 编辑窗口编辑函数式M 文件konghaijun.m ;②.在MATLAB命令窗口中调用konghaijun.m函数运行即可;六、调试过程及实验结果grange插值2.曲线拟合的最小二乘法由图像可得三次多项式曲线拟合较好,七、总结1、通过这次实验,我初步掌握了Lagrange插值与曲线拟合的最小二乘法及用这些方法解决一些实际问题。

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

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

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

数值分析实验(2)
实验二 插值法 P50
专业班级:信计131班 姓名:段雨博 学号:2013014907 一、实验目的
1、熟悉MATLAB 编程;
2、学习插值方法及程序设计算法。

二、实验题目
1、已知函数在下列各点的值为
试用4次牛顿插值多项式()4P x 及三次样条函数()S x (自然边界条件)对数据进行插值用图给出(){},,0.20.08,0,1,11,10i i i x y x i i =+=,()4P x 及()S x 。

2、在区间[]1,1-上分别取10,20n =用两组等距节点对龙格函数()2
1125f x x =
+作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。

3、下列数据点的插值
可以得到平方根函数的近似,在区间[]0,64上作图 (1)用这9个点作8次多项式插值()8L x (2)用三次样条(第一边界条件)程序求()S x
从得到结果看在[]0,64上,哪个插值更精确;在区间[]0,1上,两种插值哪个更精确?
三、实验原理与理论基础
1、拉格朗日差值公式
)()(111k k
k k
k k x x x x y y y x L ---+
=++ 点斜式
k
k k
k k k k k
x x x x y x x x x y x L --+--=++++11111)( 两点式
2、n 次插值基函数
....,2,1,0,)()(0n j y x l y x L i j n
k k k j n ===∑=
n k x x x x x x x x x x x x x l n k n k k k k k ,...,1,0,)
()
(...
)
()
(...
)
()
()(1100=------=
--
3、牛顿插值多项式
...))(](,,[)](,[)()(102100100+--+++=x x x x x x x f x x x x f x f x P n ))...(](,...,[100---+n n x x x x x x f
)(],...,,[)()()(10x x x x f x P x f x R n n n n +=-=ω
4、三次样条函数
若函数],,[)(2b a C x S ∈且在每个小区间],[1+j j x x 上是三次多项式,其中,
b x x x a n =<<<=...10是给定节点,则称)(x S 是节点n x x x ,...,,10上的三次样条函数。

若在节点j x 上给定函数值),,...,2,1,0)((n j x f y j i ==并成立,,...,2,1,0,)(n j y x S i j ==则称)(x S 为三次样条插值函数。

5、三次样条函数的边界条件
(1)0)()(''''''00''====n n f x S f x S (2)'''00')(,)(n n f x S f x S == 四、实验内容 1、M 文件:
function [p]=Newton_Polyfit(X,Y) format long g r=size(X); n=r(2);
M=ones(n,n); M(:,1)=Y'; for i=2:n
for j=i:n
M(j,i)=(M(j,i-1)-M(j-1,i-1))/(X(j)-X(j-i+1));
end
end
p0=[zeros(1,n-1) M(1,1)];p=p0;
for i=1:n-1
p1=M(i+1,i+1).*poly(X(1:i));
p0=[zeros(1,n-i-1) p1];
p=p+p0;
end
3、M文件:
function f=Language(~,~,~)
%%求已知数据点的拉格朗日插值多项式
%%已知数据点的x坐标向量:x
%%已知数据点的y坐标向量:y
%%插值点的x坐标:x0
%%解得的拉格朗日插值多项式f
x=[0.0 0.4 0.8 1.2 1.6];
y=[0 0.428392 0.722101 0.910314 0.970348];
x0=[0.3 0.5];
syms t l;
if(length(x)==length(y))
n=length(x);
else
disp('x,y维数不一样');
return;
end
p=sym(0);
for i=1:n
l=sym(y(i));
for k=1:i-1
l=l*(t-x(k))/(x(i)-x(k));
end
for k=i+1:n
l=l*(t-x(k))/(x(i)-x(k));
end
p=p+1;
end
simplify(p);
f=subs(p,'t',x0);
f=vpa(f,6);
end
五、实验结果
1、
>> X=[0.2 0.4 0.6 0.8 1.0];
>> Y=[0.98 0.92 0.81 0.64 0.38];
>> [p]=Newton_Polyfit(X,Y);
>> Y2=polyval(p,X);
>> X1=0:0.01;1;
>> Y3=interp1(X,Y,X1,'spline');
>> plot(X,Y,'o',X,Y2,'r',X1,Y3,'g')图像:
2、
>> X=-1:0.01:1;
>> Y=1./(1+25*X.^2);
>> X1=-1:0.2:1;
>> Y1=1./(1+25*X1.^2);
>> Y2=interp1(X1,Y1,X,'linear');
>> Y3=interp1(X1,Y1,X,'spline');
>> subplot(211)
>> plot(X,Y,X,Y2,'r-',X,Y3,'g-')
图像:
3、
>> x=[0;1;4;9;16;25;36;49;64];
>> y=0:1:8;
>> x0=0:0.1:64;
>> f=Language(x,y,x0);
>> Y=interp1(x,y,x0,'spline');
>> Y1=sqrt(x0);
>> plot(x0,Y1,x0,f,'g',x0,Y,'r')
图像:
六、实验结果分析与小结
1、通过这次实习,我学会了用matlab设计程序并运行绘制出图形。

根据已知的点的信息用牛顿插值法、三次样条插值法、拉格朗日插值法等插值方法来求
得近似函数,在运行出图形时可以很直观地看出近似函数的精确度哪个更好。

使用matlab来处理数学问题确实很方便,使我对matlab的很多功能也有了不少的了解,知道了最基本最常用的术语怎么来表达,同时让我对这几个插值方法的算法更熟悉。

2、不过,使用matlab进行程序设计对我来说确实有点难度,不太会编写函数,特别是涉及到专门的函数,matlab中已有的函数,不太会调用,查一下资料看到别人如何表示我也不是太懂,现在用matlab写作业需要很长时间,而且还参考别人是如何写函数的,自己只是稍作修改来运行,出现问题也不太会修改。

以后实习多练习,学会编写程序,学会调用matlab内部函数,了解更多。

相关文档
最新文档