当前位置:文档之家› 数值分析(计算方法)实验一

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

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

《数值分析》 课程实验指导书

实验一 函数插值方法

一、问题提出

对于给定的一元函数)(x f y =的n+1个节点值(),0,1,,j j y f x j n == 。试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。

数据如下:

(1) j x

0.4 0.55 0.65 0.80 0.95 1.05 j y

0.41075 0.57815 0.69675 0.90 1.00 1.25382

求五次Lagrange 多项式5L ()x ,和分段三次插值多项式,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈ )

(2) j x

1 2 3 4 5 6 7 j y 0.368 0.135 0.050 0.018 0.007 0.002 0.001

试构造Lagrange 多项式6L ()x ,计算的(1.8)f ,(6.15)f 值。(提示:结果为(1.8)0.164762f ≈, (6.15)0.001266f ≈ )

二、要求

1、 利用Lagrange 插值公式

00,()n n

i n k k i i k k i x x L x y x x ==≠??-= ?-??∑∏编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式;

3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;

4、 对此插值问题用Newton 插值多项式其结果如何。

四、实验分析:

Lagrange 插值多项式的表达式:

1,,2,1,)()()(,

)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n i j j j i j i n i i i 。

其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。

Newton 插值多项式如下:

10010,()()[,,]()k n n j k k j j k N x f x f x x x x -==≠=+?-∑∏

其中: 00,0()()[,,]k i k i i j j j i k f x x x f x x ==≠-=∑∏

Newton 插值多项式的优点是:当每增加一个节点时,只增加一项多项式。

三、实验程序及注释

1、m 程序:

function [c,l]=lagran(x,y)

% x 为n 个节点的横坐标组成的向量,y 为纵坐标所组成的向量

% c 为所得插值函数的系数所组成的向量

w=length(x);

n=w-1;

l=zeros(w,w);

for k=1:n+1

v=1;

for j=1:n+1

if k~=j

v=conv(v,poly(x(j)))/(x(k)-x(j));

end

end

l(k,:)=v;

end

c=y*l;

function fi=Lagran_(x,f,xi)

fi=zeros(size(xi));

n=length(f);

for i=1:n

z=ones(size(xi));

for j=1:n

if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));

end

end

fi=fi+z*f(i);

end

Return

2、主程序:

对于数据(1),在主窗口输入:

x=[0.4 0.55 0.65 0.80 0.95 1.05]; y=[0.41075 0.57815 0.68675 0.90 1.00 1.25382];

lagran (x,y)

ans =

143.8486 -506.0836 694.2890 -463.5132 151.5174 -18.9859

format long

xi=[0.596,0.990]; yi=Lagran_(x,y,xi)

yi =

0.61916350788547 1.05159915747938

xx=0.3:0.01:1.1

[c,l]=lagran(x,y)

yy= polyval(c,xx)

plot(xx,yy, x,y,'o');

得出在拉格朗日的插值多项式曲线图,如图1-1所示:

图1-1

由此得到所求的lagrange 多项式为:

9859.185174.1515132.4632890.6940836.5068486.143L 23455-+-+-=x x x x x x )

( 对于数据(2),在主窗口输入:

x=[1 2 3 4 5 6 7];

y=[0.368 0.135 0.050 0.018 0.007 0.002 0.001];

lagran (x,y)

ans =

0.0001 -0.0016 0.0186 -0.1175 0.4419 -0.9683 0.9950

xi=[1.8,6.15]; yi=Lagran_(x,y,xi)

yi =

0.16476 0.0012658

xx=0:7

[c,l]=lagran(x,y)

yy= polyval(c,xx)

plot(xx,yy, x,y,'o');

得出在拉格朗日的插值多项式曲线图,如图1-2所示:

图1-2

所以得到所求的lagrange 多项式为:

9950.09683.04419.01175.00186.00016.0001.0L 234566--+-+-=x x x x x x x )

(对于要求(3),在主窗口输入:

x=[0.4,0.65,0.95];

y=[0.41075,0.69675,1.00];

[c,l]=lagran(x,y)

c =

-0.24212121212121 1.39822727272727 -0.10980151515152

xx=04:0.01:1.0

yy= polyval(c,xx)

plot(xx,yy, x,y,'o');

得出在拉格朗日的插值多项式曲线图,如图1-3所示:

图1-3

xi=[0.596,0.990]; yi=Lagran_(x,y,xi)

yi =

0.63753661090909 1.03714048484848

4.1基于Newton插值多项式对插值问题的分析。

function[c,d]=newploy(x,y)

% 这里x为n个节点的横坐标所组成的向量,y为纵坐标所组成的向量% c为所求的Newton插值多项式的系数构成的向量

n=length(x);

d=zeros(n,n);

d(:,1)=y';

for j=2:n

for k=j:n

d(k,j)=(d(k,j-1)-d(k-1,j-1))/(x(k)-x(k-j+1));

end

end

c=d(n,n);

for k=(n-1):-1:1

c=conv(c,poly(x(k)));

m=length(c);

c(m)=c(m)+d(k,k);

end

x=[0.4 0.55 0.65 0.80 0.95 1.05];

y=[0.41075 0.57815 0.68675 0.90 1.00 1.25382];

>> newploy(x,y)

ans =

143.8486 -506.0836 694.2890 -463.5132 151.5174 -18.9859

三、目的和意义

1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;

2、明确插值多项式和分段插值多项式各自的优缺点;

3、熟悉插值方法的程序编制;

4、如果绘出插值函数的曲线,观察其光滑性。

五、实验步骤:

1.进入C或matlab开发环境;

2.根据实验内容和要求编写程序;

3.调试程序;

4.运行程序;

5.撰写报告,讨论分析实验结果.

数值计算方法试题及答案

数值计算方法试题一 一、填空题(每空1分,共17分) 1、如果用二分法求方程在区间内的根精确到三位小数,需对分()次。 2、迭代格式局部收敛的充分条件是取值在()。 3、已知是三次样条函数,则 =( ),=(),=()。 4、是以整数点为节点的Lagrange插值基函数,则 ( ),( ),当时( )。 5、设和节点则 和。 6、5个节点的牛顿-柯特斯求积公式的代数精度为,5个节点的求积公式最高代数精度为。 7、是区间上权函数的最高项系数为1的正交多项式族,其中,则。 8、给定方程组,为实数,当满足,且时,SOR迭代法收敛。 9、解初值问题的改进欧拉法是 阶方法。 10、设,当()时,必有分解式,其中为下三角阵,当其对角线元素满足()条件时,这种分解是唯一的。 二、二、选择题(每题2分) 1、解方程组的简单迭代格式收敛的充要条件是()。(1), (2) , (3) , (4) 2、在牛顿-柯特斯求积公式:中,当系数是负值时,公式的稳定性不能保证,所以实际应用中,当()时的牛顿-柯特斯求积公式不使用。 (1),(2),(3),(4), (1)二次;(2)三次;(3)四次;(4)五次 4、若用二阶中点公式求解初值问题,试问为保证该公式绝对稳定,步长的取值范围为()。 (1), (2), (3), (4)

三、1、 2、(15 (1)(1) 试用余项估计其误差。 (2)用的复化梯形公式(或复化 Simpson公式)计算出该积分的近似值。 四、1、(15分)方程在附近有根,把方程写成三种不同的等价形式(1)对应迭代格式;(2)对应迭代格式;(3)对应迭代格式。判断迭代格式在的收敛性,选一种收敛格式计算附近的根,精确到小数点后第三位。选一种迭代格式建立Steffensen迭代法,并进行计算与前一种结果比较,说明是否有加速效果。 2、(8分)已知方程组,其中 , (1)(1)列出Jacobi迭代法和Gauss-Seidel迭代法的分量形式。 (2)(2)求出Jacobi迭代矩阵的谱半径,写出SOR 迭代法。 五、1、(15分)取步长,求解初值问题用改进的欧拉法求的值;用经典的四阶龙格—库塔法求的值。 2、(8分)求一次数不高于4次的多项式使它满足 ,,,, 六、(下列2题任选一题,4分) 1、1、数值积分公式形如 (1)(1)试确定参数使公式代数精度尽量高;(2)设,推导余项公式,并估计误差。 2、2、用二步法 求解常微分方程的初值问题时,如何选择参数使方法阶数尽可能高,并求局部截断误差主项,此时该方法是几阶的。 数值计算方法试题二 一、判断题:(共16分,每小题2分) 1、若是阶非奇异阵,则必存在单位下三角阵和上三角阵,使唯一成立。()

数值计算方法比较

有限差分方法(FDM:Finite Difference Method)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。有限差分法主要集中在依赖于时间的问题(双曲型和抛物型方程)。有限差分法方面的经典文献有Richtmeyer & Morton的《Difference Methods for Initial-Value Problems》;R. LeVeque《Finite Difference Method for Differential Equations》;《Numerical Methods for C onservation Laws》。 注:差分格式: (1)从格式的精度来划分,有一阶格式、二阶格式和高阶格式。 (2)从差分的空间形式来考虑,可分为中心格式和逆风格式。 (3)考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。 目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。 构造差分的方法: 构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 有限差分法的不足:由于采用的是直交网格,因此较难适应区域形状的任意性,而且区分不出场函数在区域中的轻重缓急之差异,缺乏统一有效的处理自然边值条件和内边值条件的方法,难以构造高精度(指收敛阶)差分格式,除非允许差分方程联系更多的节点(这又进一步增加处理边值条件韵困难)。另外它还有编制不出通用程序的困难。 有限差分法的优点:该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念 直观,表达简单,精度可选而且在一个时间步内,对于一个给定点来说其相关的空间点只是 与该相邻的几点,而不是全部的空间点。是发展较早且比较成熟的数值方法 广义差分法(有限体积法)(GDM:Generalized Difference Method):1953年,Mac—Neal 利用积分插值法(也称积分均衡法)建立了三角网格上的差分格 式,这就是以后通称的不规划网格上的差分法.这种方法的几何误差小,特别是给出了处理自然边值条件(及内边值条件)的有效方法,堪称差分法的一大进步。1978年,李荣华利用有限元空间和对偶单元上特征函数的推广——局部Taylor展式的公项,将积分插值法改写成广义Galerkin法形式,从而将不规则网格差分法推广为广义差分法.其基本思路是,将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有

数值分析(计算方法)总结

第一章绪论 误差来源:模型误差、观测误差、截断误差(方法误差)、舍入误差 是的绝对误差,是的误差,为的绝对误差限(或误差限) 为的相对误差,当较小时,令 相对误差绝对值得上限称为相对误差限记为:即: 绝对误差有量纲,而相对误差无量纲 若近似值的绝对误差限为某一位上的半个单位,且该位直到的第一位非零数字共 有n位,则称近似值有n位有效数字,或说精确到该位。 例:设x==3.1415926…那么,则有效数字为1位,即个位上的3,或说精确到个位。 科学计数法:记有n位有效数字,精确到。 由有效数字求相对误差限:设近似值有n位有效数字,则其相对误差限为 由相对误差限求有效数字:设近似值的相对误差限为为则它有n位有效数字 令 1.x+y近似值为和的误差(限)等于误差(限) 的和 2.x-y近似值为 3.xy近似值为 4. 1.避免两相近数相减 2.避免用绝对值很小的数作除数 3.避免大数吃小数

4.尽量减少计算工作量 第二章非线性方程求根 1.逐步搜索法 设f (a) <0, f (b)> 0,有根区间为 (a, b),从x0=a出发,按某个预定步长(例如h=(b-a)/N)一步一步向右跨,每跨一步进行一次根的搜索,即判别f(x k)=f(a+kh)的符号,若f(x k)>0(而f(x k-1)<0),则有根区间缩小为[x k-1,x k] (若f(x k)=0,x k即为所求根), 然后从 x k-1出发,把搜索步长再缩小,重复上面步骤,直到满足精度:|x k-x k-1|< 为止,此时取 x*≈(x k+x k-1)/2作为近似根。 2.二分法 设f(x)的有根区间为[a,b]= [a0,b0], f(a)<0, f(b)>0.将[a0,b0]对分,中点x0= ((a0+b0)/2),计算f(x0)。 3.比例法 一般地,设 [a k,b k]为有根区间,过(a k, f(a k))、 (b k, f(b k))作直线,与x轴交于一 点x k,则: 1.试位法每次迭代比二分法多算一次乘法,而且不保证收敛。 2.比例法不是通过使求根区间缩小到0来求根,而是在一定条件下直接构造出一个点列(递推公式),使该点列收敛到方程的根。——这正是迭代法的基本思想。 事先估计: 事后估计 局部收敛性判定定理: 局部收敛性定理对迭代函数的要求较弱,但对初始点要求较高,即初始点必须选在精确解的附近 Steffensen迭代格式: Newton法: Newton下山法:是下山因子 弦割法:

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

数值计算方法大作业

目录 第一章非线性方程求根 (3) 1.1迭代法 (3) 1.2牛顿法 (4) 1.3弦截法 (5) 1.4二分法 (6) 第二章插值 (7) 2.1线性插值 (7) 2.2二次插值 (8) 2.3拉格朗日插值 (9) 2.4分段线性插值 (10) 2.5分段二次插值 (11) 第三章数值积分 (13) 3.1复化矩形积分法 (13) 3.2复化梯形积分法 (14) 3.3辛普森积分法 (15) 3.4变步长梯形积分法 (16) 第四章线性方程组数值法 (17) 4.1约当消去法 (17) 4.2高斯消去法 (18) 4.3三角分解法 (20)

4.4雅可比迭代法 (21) 4.5高斯—赛德尔迭代法 (23) 第五章常积分方程数值法 (25) 5.1显示欧拉公式法 (25) 5.2欧拉公式预测校正法 (26) 5.3改进欧拉公式法 (27) 5.4四阶龙格—库塔法 (28)

数值计算方法 第一章非线性方程求根 1.1迭代法 程序代码: Private Sub Command1_Click() x0 = Val(InputBox("请输入初始值x0")) ep = Val(InputBox(请输入误差限ep)) f = 0 While f = 0 X1 = (Exp(2 * x0) - x0) / 5 If Abs(X1 - x0) < ep Then Print X1 f = 1 Else x0 = X1 End If Wend End Sub 例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)

1.2牛顿法 程序代码: Private Sub Command1_Click() b = Val(InputBox("请输入被开方数x0")) ep = Val(InputBox(请输入误差限ep)) f = 0 While f = 0 X1 = x0 - (x0 ^ 2 - b) / (2 * b) If Abs(X1 - x0) < ep Then Print X1 f = 1 Else x0 = X1 End If Wend End Sub 例:求56的值。(ep=10-10)

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和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);

数值分析计算方法试题集及答案

数值分析复习试题 第一章 绪论 一. 填空题 1.* x 为精确值 x 的近似值;() **x f y =为一元函数 ()x f y =1的近似值; ()**,*y x f y =为二元函数()y x f y ,2=的近似值,请写出下面的公式:**e x x =-: *** r x x e x -= ()()()*'1**y f x x εε≈? ()() () ()'***1**r r x f x y x f x εε≈ ? ()()()() ()* *,**,*2**f x y f x y y x y x y εεε??≈?+??? ()()()()() ** * *,***,**222r f x y e x f x y e y y x y y y ε??≈ ?+??? 2、 计算方法实际计算时,对数据只能取有限位表示,这时所产生的误差叫 舍入误 差 。 3、 分别用2.718281,2.718282作数e 的近似值,则其有效数字分别有 6 位和 7 位;又取 1.73≈-21 1.73 10 2 ≤?。 4、 设121.216, 3.654x x ==均具有3位有效数字,则12x x 的相对误差限为 0.0055 。 5、 设121.216, 3.654x x ==均具有3位有效数字,则12x x +的误差限为 0.01 。 6、 已知近似值 2.4560A x =是由真值T x 经四舍五入得 到,则相对误差限为 0.0000204 . 7、 递推公式,??? ? ?0n n-1y =y =10y -1,n =1,2, 如果取0 1.41y ≈作计算,则计算到10y 时,误 差为 81 10 2 ?;这个计算公式数值稳定不稳定 不稳定 . 8、 精确值 14159265.3* =π,则近似值141.3*1=π和1415.3*2=π分别有 3

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

数值计算方法》试题集及答案

《计算方法》期中复习试题 一、填空题: 1、已知3.1)3(,2.1)2(,0.1)1(===f f f ,则用辛普生(辛卜生)公式计算求得 ?≈3 1 _________ )(dx x f ,用三点式求得≈')1(f 。 答案:2.367,0.25 2、1)3(,2)2(,1)1(==-=f f f ,则过这三点的二次插值多项式中2 x 的系数为 ,拉 格朗日插值多项式为 。 答案:-1, )2)(1(21 )3)(1(2)3)(2(21)(2--------= x x x x x x x L 3、近似值*0.231x =关于真值229.0=x 有( 2 )位有效数字; 4、设)(x f 可微,求方程)(x f x =的牛顿迭代格式是( ); 答案 )(1)(1n n n n n x f x f x x x '--- =+ 5、对1)(3 ++=x x x f ,差商=]3,2,1,0[f ( 1 ),=]4,3,2,1,0[f ( 0 ); 6、计算方法主要研究( 截断 )误差和( 舍入 )误差; 7、用二分法求非线性方程 f (x )=0在区间(a ,b )内的根时,二分n 次后的误差限为 ( 1 2+-n a b ); 8、已知f (1)=2,f (2)=3,f (4)=5.9,则二次Newton 插值多项式中x 2系数为( 0.15 ); 11、 两点式高斯型求积公式?1 d )(x x f ≈( ?++-≈1 )] 321 3()3213([21d )(f f x x f ),代数精度 为( 5 ); 12、 为了使计算 32)1(6 )1(41310-- -+-+ =x x x y 的乘除法次数尽量地少,应将该表达 式改写为 11 ,))64(3(10-= -++=x t t t t y ,为了减少舍入误差,应将表达式1999 2001-

《数值计算方法》试题及答案

数值计算方法考试试题 一、选择题(每小题4分,共20分) 1. 误差根据来源可以分为四类,分别是( A ) A. 模型误差、观测误差、方法误差、舍入误差; B. 模型误差、测量误差、方法误差、截断误差; C. 模型误差、实验误差、方法误差、截断误差; D. 模型误差、建模误差、截断误差、舍入误差。 2. 若132)(3 56++-=x x x x f ,则其六阶差商 =]3,,3,3,3[6210 f ( C ) A. 0; B. 1; C. 2; D. 3 。 3. 数值求积公式中的Simpson 公式的代数精度为 ( D ) A. 0; B. 1; C. 2; D. 3 。 4. 若线性方程组Ax = b 的系数矩阵A 为严格对角占优矩阵,则解方程组的Jacobi 迭代法和Gauss-Seidel 迭代法 ( B ) A. 都发散; B. 都收敛 C. Jacobi 迭代法收敛,Gauss-Seidel 迭代法发散; D. Jacobi 迭代法发散,Gauss-Seidel 迭代法收敛。 5. 对于试验方程y y λ=',Euler 方法的绝对稳定区间为( C ) A. 02≤≤-h ; B. 0785.2≤≤-h ; C. 02≤≤-h λ; D. 0785.2≤≤-h λ ; 二、填空题(每空3分,共18分) 1. 已知 ? ??? ??--='-=4321,)2,1(A x ,则 =2 x 5,= 1Ax 16 ,=2A 22115+ 2. 已知 3)9(,2)4(==f f ,则 f (x )的线性插值多项式为)6(2.0)(1+=x x L ,且用线性插值可得f (7)= 2.6 。 3. 要使 20的近似值的相对误差界小于0.1%,应至少取 4 位有效数字。 三、利用下面数据表, 1. 用复化梯形公式计算积分 dx x f I )(6 .28 .1? =的近似值; 解:1.用复化梯形公式计算 取 2.048 .16.2,4=-= =h n 1分 分 分分7058337 .55))6.2()2.08.1(2)8.1((22.04)) ()(2)((231 1 1 4=+++=++=∑∑=-=f k f f b f x f a f h T k n k k 10.46675 8.03014 6.04241 4.42569 3.12014 f (x ) 2.6 2.4 2.2 2.0 1.8 x

数值分析实验报告

实验一、误差分析 一、实验目的 1.通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; 2.通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念; 3.通过上机计算,了解舍入误差所引起的数值不稳定性。 二.实验原理 误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。 三.实验内容 对20,,2,1,0 =n ,计算定积分 ?+=10 5dx x x y n n . 算法1:利用递推公式 151--=n n y n y , 20,,2,1 =n , 取 ?≈-=+=1 00182322.05ln 6ln 51dx x y . 算法2:利用递推公式 n n y n y 51511-= - 1,,19,20 =n . 注意到 ???=≤+≤=10 10202010201051515611261dx x dx x x dx x , 取 008730.0)12611051(20120≈+≈y .: 四.实验程序及运行结果 程序一: t=log(6)-log(5);

n=1; y(1)=t; for k=2:1:20 y(k)=1/k-5*y(k-1); n=n+1; end y y =0.0884 y =0.0581 y =0.0431 y =0.0346 y =0.0271 y =0.0313 y =-0.0134 y =0.1920 y =-0.8487 y =4.3436 y =-21.6268 y =108.2176 y =-541.0110 y =2.7051e+003 y =-1.3526e+004 y =6.7628e+004 y =-3.3814e+005 y =1.6907e+006 y =-8.4535e+006 y =4.2267e+007 程序2: y=zeros(20,1); n=1; y1=(1/105+1/126)/2;y(20)=y1; for k=20:-1:2 y(k-1)=1/(5*k)-(1/5)*y(k); n=n+1; end 运行结果:y = 0.0884 0.0580 0.0431 0.0343 0.0285 0.0212 0.0188 0.0169

计算流体力学常用数值方法简介[1]

计算流体力学常用数值方法简介 李志印 熊小辉 吴家鸣 (华南理工大学交通学院) 关键词 计算流体力学 数值计算 一 前 言 任何流体运动的动力学特征都是由质量守恒、动量守恒和能量守恒定律所确定的,这些基本定律可以由流体流动的控制方程组来描述。利用数值方法通过计算机求解描述流体运动的控制方程,揭示流体运动的物理规律,研究流体运动的时一空物理特征,这样的学科称为计算流体力学。 计算流体力学是一门由多领域交叉而形成的一门应用基础学科,它涉及流体力学理论、计算机技术、偏微分方程的数学理论、数值方法等学科。一般认为计算流体力学是从20世纪60年代中后期逐步发展起来的,大致经历了四个发展阶段:无粘性线性、无粘性非线性、雷诺平均的N-S方程以及完全的N-S方程。随着计算机技术、网络技术、计算方法和后处理技术的迅速发展,利用计算流体力学解决流动问题的能力越来越高,现在许多复杂的流动问题可以通过数值计算手段进行分析并给出相应的结果。 经过40年来的发展,计算流体力学己经成为一种有力的数值实验与设计手段,在许多工业领域如航天航空、汽车、船舶等部门解决了大量的工程设计实际问题,其中在航天航空领域所取得的成绩尤为显著。现在人们已经可以利用计算流体力学方法来设计飞机的外形,确定其气动载荷,从而有效地提高了设计效率,减少了风洞试验次数,大大地降低了设计成本。此外,计算流体力学也己经大量应用于大气、生态环境、车辆工程、船舶工程、传热以及工业中的化学反应等各个领域,显示了计算流体力学强大的生命力。 随着计算机技术的发展和所需要解决的工程问题的复杂性的增加,计算流体力学也己经发展成为以数值手段求解流体力学物理模型、分析其流动机理为主线,包括计算机技术、计算方法、网格技术和可视化后处理技术等多种技术的综合体。目前计算流体力学主要向二个方向发展:一方面是研究流动非定常稳定性以及湍流流动机理,开展高精度、高分辩率的计算方法和并行算法等的流动机理与算法研究;另一方面是将计算流体力学直接应用于模拟各种实际流动,解决工业生产中的各种问题。 二 计算流体力学常用数值方法 流体力学数值方法有很多种,其数学原理各不相同,但有二点是所有方法都具备的,即离散化和代数化。总的来说其基本思想是:将原来连续的求解区域划分成网格或单元子区

数值分析2016上机实验报告

序言 数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。 MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录 序言 (1) 问题一非线性方程数值解法 (3) 1.1 计算题目 (3) 1.2 迭代法分析 (3) 1.3计算结果分析及结论 (4) 问题二追赶法解三对角矩阵 (5) 2.1 问题 (5) 2.2 问题分析(追赶法) (6) 2.3 计算结果 (7) 问题三函数拟合 (7) 3.1 计算题目 (7) 3.2 题目分析 (7) 3.3 结果比较 (12) 问题四欧拉法解微分方程 (14) 4.1 计算题目 (14) 4.2.1 方程的准确解 (14) 4.2.2 Euler方法求解 (14) 4.2.3改进欧拉方法 (16) 问题五四阶龙格-库塔计算常微分方程初值问题 (17) 5.1 计算题目 (17) 5.2 四阶龙格-库塔方法分析 (18) 5.3 程序流程图 (18) 5.4 标准四阶Runge-Kutta法Matlab实现 (19) 5.5 计算结果及比较 (20) 问题六舍入误差观察 (22) 6.1 计算题目 (22) 6.2 计算结果 (22) 6.3 结论 (23) 7 总结 (24) 附录

数值计算方法试题及答案

数值计算方法试题一 一、 填空题(每空1分,共17分) 1、如果用二分法求方程043=-+x x 在区间]2,1[内的根精确到三位小数,需对分( )次。 2、迭代格式 ) 2(2 1-+=+k k k x x x α局部收敛的充分条件是α取值在 ( )。 3、已知?????≤≤+-+-+-≤≤=31)1()1()1(2110)(2 33x c x b x a x x x x S 是三次样条函数, 则 a =( ), b =( ), c =( )。 4、)(,),(),(10x l x l x l n Λ是以整数点n x x x ,,,10Λ为节点的Lagrange 插值基函数,则 ∑== n k k x l 0)(( ), ∑== n k k j k x l x 0 )(( ),当2≥n 时 = ++∑=)()3(20 4 x l x x k k n k k ( )。 5、设 1326)(247+++=x x x x f 和节点,,2,1,0,2/Λ==k k x k 则=],,,[10n x x x f Λ 和=?07f 。 6、5个节点的牛顿-柯特斯求积公式的代数精度为 ,5个节点的求积公式最高代数精度为 。 7、{}∞=0)(k k x ?是区间]1,0[上权函数x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0=x ?,则?= 1 4)(dx x x ? 。

8、给定方程组?? ?=+-=-221121b x ax b ax x ,a 为实数,当a 满足 ,且 20<<ω时,SOR 迭代法收敛。 9、解初值问题00 (,)()y f x y y x y '=?? =?的改进欧拉法 ??? ??++=+=++++)],(),([2),(] 0[111] 0[1n n n n n n n n n n y x f y x f h y y y x hf y y 是 阶方法。 10、设 ?? ??? ?????=11001a a a a A ,当∈a ( )时,必有分解式T LL A =,其中L 为下三角阵,当其对角线元素)3,2,1(=i l ii 满足( )条件时,这种分解是唯一的。 二、 二、选择题(每题2分) 1、解方程组b Ax =的简单迭代格式g Bx x k k +=+)() 1(收敛的充要条件是 ( )。 (1)1)(A ρ, (4) 1)(>B ρ 2、在牛顿-柯特斯求积公式: ?∑=-≈b a n i i n i x f C a b dx x f 0 )() ()()(中,当系数 ) (n i C 是负值时,公式的稳定性不能保证,所以实际应用中,当( )时的牛顿-柯特斯求积公式不使用。 (1)8≥n , (2)7≥n , (3)10≥n , (4)6≥n , 3、有下列数表

河南科技大学数值分析(计算方法)期末试卷1及参考答案

7 ,2]= ,2]=8

-- 参考答案 一.填空 1. 舍入误差 2. 115,1,0 3. (1)(1)011() () ()()() ().(()())(1)! (1)! n n n n f f R x x x x x x x orR x w x n n ξξ+++=---=++ 4. 1 5. 22 11()()()2()()2k k k k k k k k k k k k x f x f x x x x orx x x f x f x x ++--=-=-''-- 6. 有 7. 1 8. 112121 2213k k k k x x x x ++?=-??=-?? 二.计算 1.解:构造差商表:

-- 所以, 22()2H x x x =+ 证明:设2()()()R x f x H x =- 22 2(0)(0),(0)(0),(1)(1)f H f H f H ''=== (0)(0)(1)0R R R '∴=== 所以,可设2()()(1)R x k x x x =- 构造函数:22()()()()(1)t f t H t k x t t ?= --- 显然()(0)(0)(1)0x ????'==== 因为函数()t ?在所给的插值区间至少有4个根且函数()t ?'''存在, 所以函数()t ?'''在所给的插值区间至少有1个根,即存在一点ξ,满足: ()0?ξ'''= 又 ()()3!()t f t k x ?''''''=- () ()()3!()0()3! f f k x k x ξ?ξξ'''''''''∴=-=?=

数值分析计算方法

《计算方法》实验内容 一.实验一:用两种不同的顺序计算 644834.110000 1 2 ≈∑=-n n ,分析其误差的变化。 1.实验目的:通过正序反序两种不同的顺序求和,比较不同算法的误差;了解在 计算机中大数吃小数的现象,以后尽量避免;体会单精度和双精度数据的差别。 2.算法描述:累加和s=0; 正序求和: 对于n=1,2,3,......,10000 s+=1.0/(n*n); 反序求和: 对于n=10000,9999,9998,.....,1 s+=1.0/(n*n); 3.源程序: #双精度型# #includec void main() { double s=0; int n; for(n=1;n<=10000;n++) s+=1.0/(n*n); printf("正序求和结果是:%lf\n",s); s=0; for(n=10000;n>=1;n--) s+=1.0/(n*n); printf("反序求和结果是:%lf\n",s); } #单精度型# #include void main() { float s=0; int n; for(n=1;n<=10000;n++) s+=1.0/(n*n); printf("正序求和结果是:%f\n",s); s=0; for(n=10000;n>=1;n--) s+=1.0/(n*n); printf("反序求和结果是:%f\n",s); }

4.运行结果: 双精度型运行结果: 单精度型运行结果: 5.对算法的理解与分析:舍入误差在计算机中会引起熟知的不稳定,算法不同,肯结果也会不同,因此选取稳定的算法很重要。选取双精度型数据正反序求和时结果一致,但选用单精度型数据时,求和结果不一致,明显正序求和结果有误差,所以第一个算法较为稳定可靠。 二.实验二: 1、拉格朗日插值 按下列数据 x i -3.0 -1.0 1.0 2.0 3.0 y i 1.0 1.5 2.0 2.0 1.0 作二次插值,并求x 1=-2,x 2 =0,x 3 =2.75时的函数近似值 2牛顿插值 按下列数据 x i 0.30 0.42 0.50 0.58 0.66 0.72 y i 1.04403 1.08462 1.11803 1.15603 1.19817 1.23223 作五次插值,并求x 1=0.46,x 2 =0.55,x 3 =0.60时的函数近似值. 1.实验目的:通过拉格朗日插值和牛顿插值的实例,了解两种求解方法,并分析各自的优缺点。 2.算法描述: 3.源程序: 拉格朗日插值: #include #define k 2 void main() {

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=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 =

数值分析实验报告77712

《数值分析》 实验报告 学院:计算机科学与软件学院姓名:XXX 班级:计算机XX班 学号:XXXXXX 实验一:舍入误差与数值稳定性

实验目的: 1、 通过上机编程,复习巩固以前所学程序设计语言; 2、 通过上机计算,了解舍入误差所引起的数值不稳定性。 3、 通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。 实验内容:用两种不同的顺序计算644834.1100001 2≈∑=-n n ,分析其误差 的变化。 实验流程图: 实验源程序:

#include #include void main() { int i; float s1=0,s2=0,d1,d2; for (i=1;i<=10000;i++) s1=s1+1.0f/(i*i); for (i=10000;i>=1;i--) s2=s2+1.0f/(i*i); d1=(float)(fabs(1.644834-s1)); d2=(float)(fabs(1.644834-s2)); printf("正向求和结果为%f\n 误差为%f\n\n",s1,d1); printf("反向求和结果为%f\n 误差为%f\n\n",s2,d2); if(d1

实验分析:第一次做数值实验,又一次使用C语言编程,没有了刚学习C语言的艰难,能够将实验步骤转换成流程图并编写出完整的实验代码,在经过多次调试、改正后得到正确的程序和结果。这个实验较简单,计算误差时如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是稳定的,否则称此算法是数值不稳定的,减少运算次数可以减小舍入误差。在运算中,如果参加运算的数的数量级相差很大,而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,进而影响计算结果的可靠性,所以计算过程中要注意运算次序,避免出现这种现象。 实验二:拉格朗日插值法和牛顿插值法 实验目的:分别用拉格朗日差值和牛顿插值解决数学问题,并比较各方法的优略。 1、拉格朗日插值 实验内容: x i -3.0-1.0 1.0 2.0 3.0 y i 1.0 1.5 2.0 2.0 1.0 作二次插值,并求x 1=-2,x 2 =0,x 3 =2.75时的函数近似值。

相关主题
文本预览
相关文档 最新文档