当前位置:文档之家› 数值计算方法教案_插值方法

数值计算方法教案_插值方法

数值计算方法教案_插值方法
数值计算方法教案_插值方法

复习:

1.数值计算方法的含义 2.误差及误差限 3.误差与有效数字

4.数值计算中应注意的问题

第二章 插值方法

一.插值的含义 问题提出:

已知函数()y f x =在n+1个点01,,,n x x x 上的函数值01,,,n y y y ,求任意一点x '的函数值()f x '。

说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。

解决方法:

构造一个简单函数()P x 来替代未知(或复杂)函数()y f x =,则用()P x '作为函数值

()f x '的近似值。

二、泰勒(Taylor )插值 1.问题提出:

已知复杂函数()y f x =在0x 点的函数值()0f x ,求0x 附近另一点0x h +的函数值

()0f x h +。

2.解决方法:

构造一个代数多项式函数()n P x ,使得()n P x 与()f x 在0x x =点充分逼近。 泰勒多项式为:

()()()()()()()()()200000002!!

n

n n f x f x P x f x f x x x x x x x n '''=+-+-++-

显然,()n P x 与()f x 在0x x =点,具有相同的i 阶导数值(i=0,1,…,n )。 3.几何意义为:

()n P x 与()f x 都过点()()00,x f x ;

()n P x 与()f x 在点()()00,x f x 处的切线重合; ()n P x 与()f x 在点()()00,x f x 处具有相同的凹凸性;

其几何意义可以由下图描述,显然函数()3f x 能相对较好地在0x 点逼近()f x 。

x 0

f(x)

f1(x)f3(x)f2(x)

4.误差分析(泰勒余项定理):

()()()()()()1

101!

n n n f P x f x x x n ξ++-=-+,其中ξ在0x 与x 之间。

5.举例:

已知函数()f x x =,求()115f 。

分析:本题理解为,已知“复杂”函数()f x x =在0x =100点的函数值为()010f x =,求0x 的附近一点0x +15的函数值()015f x +。

解:

(1)构造1次泰勒多项式函数()1P x :()()()()1000P x f x f x x x '=+-。

其中()()010010f x f ==,()1

212

f x x -'=,()()0110020f x f ''==,则有:

()150.05P x x =+

故有()()111511510.75f P ≈= 误差分析:

()()()()2

1

1151151151002!

f P f ξ''-=-

函数()f x ''在[100,115]区间绝对值的极大值为()4100 2.510f -''=?, 则有:

()()11151150.0281250.05P f -≤<

于是近似值10.75有三位有效数字。

几何意义:显然,()1P x 也过点(100,10),且()1P x 就是函数()f x x =在点(100,10)处的切线,如下图所示。

(2)构造2次泰勒多项式函数()2P x :

()()()()()()2

0200002!

f x P x f x f x x x x x '''=+-+

-。 把()10010f =,()1

10020

f '=

及()4100 2.510f -''=?代入,有 ()()211511510.721875f P ≈=。 分析误差

()()()()321151151151003!

f P f ξ'''-=-

函数()f x '''在[100,115]区间绝对值的极大值为()6100 3.7510f -'''=?,则有

()()21151150.002109375<0.005P f -≤

于是近似值10.721875有四位有效数字。 运行文件taylor.m :

%已知函数f(x)=x^(1/2),求f(115) %一次泰勒插值 subplot(1,2,1); f=inline('x^(1/2)'); p1=inline('5+0.05*x'); fplot(f,[-50,300]); hold on

fplot(p1,[-50,300]); plot(115,10.75,'*')

line([115,115],[0,10.75])

%二次泰勒插值 subplot(1,2,2);

p2=inline('10+1/20*(x-100)-1/4000/2*(x-100)^2'); fplot(f,[-30,300]); hold on

fplot(p2,[-30,300]); plot(115,10.72,'*') line([115,115],[0,10.72]) 可以得到以下图形:

6.泰勒插值存在的问题:

1.函数()f x 必须存在n+1阶导函数,即使存在n+1阶导数,计算的工作量也比较大;

2.要求h 为个小量,若h 较大,则计算的误差就很大。

三.拉格朗日(Lagrange )插值 1.问题提出:

已知函数()y f x =在n+1个点01,,,n x x x 上的函数值01,,,n y y y ,求任意一点x '的函数值()f x '。

说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。

2.解决方法:

构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则用()n P x '作为函数值()f x '的近似值。

设()2012n

n n P x a a x a x a x =++++ ,构造()n P x 即是确定n+1个多项式的系数

012,,,,n a a a a 。

3.构造()n P x 的依据:

当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组:

20102000

20112111

2012n n n

n n n n n n n

a a x a x a x y a a x a x a x y a a x a x a x y ?++++=?++++=??

?

?++++=? 其系数矩阵的行列式D 为范德萌行列式:

()20

0021

110

2111n n

i j n i j n

n

n n x x x x x x D x x x x x ≥>≥=

=-∏

故当n+1个点的横坐标01,,,n x x x 各不相同时,方程组系数矩阵的行列式D 不等于零,故方程组有唯一解。即有以下结论。

结论:当已知的n+1个点的横坐标01,,,n x x x 各不相同时,则总能够构造唯一的n 次多项式函数()n P x ,使()n P x 也过这n+1个点。

4.几何意义

f(x)P 5(x)

5.举例:

已知函数()f x x =,求()115f 。

分析:本题理解为,已知“复杂”函数()f x x =,当x=81,100,121,144时,其对应的函数值为:y=9,10,11,12,当x=115时,求函数值()115f 。

解:

(1)线性插值:过已知的(100,10)和(121,11)两个点,构造1次多项式函数()1P x ,于是有

()1121100

1011100121121100

x x P x --=

?+?--

()()111511510.71428571428572f P ≈=。

(2)抛物插值:构造2次多项式函数()2P x ,使得它过已知的(100,10)、(121,11)和(144,12)三个点。于是有2次拉格朗日插值多项式:

()()()()()()()()()()()()()

2121144100144100121101112100121100144121100121144144100144121x x x x x x P x ------=?+?+?------

则有

()()2115115f P ≈=10.72275550536420 6.拉格朗日n 次插值多项式公式:

()()()()()()()()()()()()()()()()()()()12001020021

10121011011n n n n n n n

n n n n x x x x x x P x y x x x x x x x x x x x x y x x x x x x x x x x x x y x x x x x x -----=------+

---+---+

---

()()()()()00110

n n n n k k k P x l x y l x y l x y l x y ==+++=∑

其中()k l x 称为基函数(k=0,1,….,n ),每一个基函数都是关于x 的n 次多项式,其表达式为:

()0

n

j k j k j

j k

x x l x x x =≠-=-∏

拉格朗日公式特点:

1.把每一点的纵坐标k y 单独组成一项;

2.每一项中的分子是关于x 的n 次多项式,分母是一个常数;

3.每一项的分子和分母的形式非常相似,不同的是: 分子是()x - ,而分母是()k x - 7.误差分析(拉格朗日余项定理)

()()()()()()1

1!n n

n k k f P x f x x x n ξ+=-=-+∏, 其中ξ在01,,,,n x x x x 所界定的范围内。 针对以上例题的线性插值,有

()()()()()11151151151001151212!

f P f ξ''-=

-- 函数()f x ''在[100,115]区间绝对值的极大值为()4100 2.510f -''=?, 则有:

()()11151150.011250.05P f -≤<

于是近似值()()111511510.71428571428572f P ≈=有三位有效数字。 针对以上例题的抛物线插值,有

()()()

()()()21151151151001151211151443!

f P f ξ'''-=

--- 函数()f x '''在[100,115]区间绝对值的极大值为()6100 3.7510f -'''=?,则有

()()21151150.00163125<0.005P f -≤

于是近似值()()2115115f P ≈=10.72275550536420有四位有效数字。 8.拉格朗日插值公式的优点

公式有较强的规律性,容易编写程序利用计算机进行数值计算。 9. 拉格朗日插值通用程序 程序流程图如下:

开始

输入 n

x[i],y[i],(i=0,1,n)

t(即插值点x)

p=0,k=0

k<=n l=1,j=0

j

j=j+1

j<=n l=l*(t-x[j])/(x[k]-x[j])

j=j+1

j=k+1

p=p+l*y[k]k=k+1

输出p 结束

y

y

y

y

n

n

n

开始

输入 n

x[i],y[i],(i=0,1,n)

t(即插值点x)

p=0,k=0

k<=n 计算l(k)p=p+l*y[k]

k=k+1

输出p 结束

y

y n

l=1,j=0

j

j=j+1

j<=n l=l*(t-x[j])/(x[k]-x[j])

j=j+1

j=k+1

y

y

n

n

文件lagrange.m如下:

%拉格朗日插值

close all

n=input('已知的坐标点数n=?');

x=input('x1,x2,...,xn=?');

y=input('y1,y2,...,yn=?');

xx=input('插值点=?');

syms t %定义t为符号量

p=0;

for k=1:n

l=1;

for j=1:k-1

l=l*(t-x(j))/(x(k)-x(j));

end

for j=k+1:n

l=l*(t-x(j))/(x(k)-x(j));

end

p=p+l*y(k);

end

p=inline(p); %把符号算式p变为函数形式fplot(p,[min(min(x),xx)-1,max(max(x),xx)+1]); %画多项式函数

hold on

p(xx) %显示插值点

plot(x,y,'o',xx,p(xx),'*'); %画已知点和插值点

在MATLAB命令窗口输入:

lagrange

然后有以下对话过程和结果,

已知的坐标点数n=?6

x1,x2,...,xn=?[1,3,5,7,9,11]

y1,y2,...,yn=?[-1,20,0,-1,12,3]

插值点=?8 ans =

5.67187500000000

有以下图形:

10.作业

1,已知函数sin(x)过以下数据点: x 0.79 1.0 1.6 sin(x)

0.710353

0.841471

0.999574

请用线性插值和抛物插值,计算sin(0.63)的值,并分析误差。

四.牛顿(Newton )插值 复习:

(1)问题提出:已知函数在n+1个点的值(x0,y0),(x1,y1),….(xn,yn),求当x=x ’时,y ’的值。 (2)解决方法:构造n 次多项式函数()n P x ,使它也过已知的n+1个点。 (3)拉格朗日公式:()()0n

n k k k P x l x y ==∑,()0

n

j k j k j

j k

x x l x x x =≠-=-∏

(4)拉格朗日公式的优点:结构规律性强,便于编写程序。 (5)拉格朗日插值的缺点:无承袭性(继承性)

若算出3点的抛物插值精度不够,再进行4点的3次多项式插值时,必须从头算起,前面算出的3点抛物插值的计算结果不能利用。

而泰勒插值却是具有承袭性的,如线性插值的结果不精确,那么再加上一项,就变成了

泰勒抛物插值,如:

泰勒1次插值:()()()()1000P x f x f x x x '=+- 泰勒2次插值:()()()()()()2

0200002!

f x P x f x f x x x x x '''=+-+-。 而牛顿插值就是具有承袭性的插值公式 1.差商的概念

设n+1个点01,,,n x x x 互不相等,则定义:

i x 和()j x i j ≠两点的一阶差商为:()(),i j i j i j

f x f x f x x x x -??=

??-

i x ,,j k x x 三点的二阶差商为:,,,,i j j k i j k i k

f x x f x x f x x x x x ????-??????=??- i x ,,,j k l x x x 四点的三阶差商为:,,,,,,,i j k j k l i j k l i l

f x x x f x x x f x x x x x x ????-??????=??- ……

n+1个点01,,,n x x x 的n 阶差商为:

[][][]

01112010,,,,,,,,,n n n n

f x x x f x x x f x x x x x --=

-

差商具有对称性:,,i j j i f x x f x x ????=????;,,,,i j k j i k f x x x f x x x ????=???? 2.牛顿插值解决的问题与拉格朗日插值解决的问题相同 只是表述 n 次多项式()n P x 的公式不同。

3.牛顿插公式的推导 根据差商的概念,有:

()()[]()000,f x f x f x x x x =+-…………………[]0,f x x 是0,x x 两点的一阶差商; [][][]()001011,,,,f x x f x x f x x x x x =+-……[]01,,f x x x 是01,,x x x 三点的二阶差商; ……

[][][]()010101,,,,,,,,,,n n n n f x x x f x x x f x x x x x x -=+- 把以上各式从后向前逐次代入,可以得到:

()()[]()[]()()[]()()()[]()()()

001001201010110101,,,,,,,,,,n n n n f x f x f x x x x f x x x x x x x f x x x x x x x x x f x x x x x x x x x x -=+-+--+

+---+---

()()()n n f x P x R x =+ 其中

()()[]()[]()()[]()()()

00100120101011,,,,,,n n n P x f x f x x x x f x x x x x x x f x x x x x x x x x -=+-+--+

+---

()[]()()()0101,,,,n n n R x f x x x x x x x x x x =---

以上()n P x 的表达式称为牛顿插值公式,可以证明,n 次牛顿插值多项式与n 次拉格朗日插值多项式完全相同,只是表达形式不同。

故,拉格朗日余项定理与牛顿余项定理相同:

()()()[]()

()()()()1

0100

,,,,1!n n

n

n n n k k k k f R x P x f x f x x x x x x x x n ξ+===-=-=-+∏∏ , 其中ξ在01,,,,n x x x x 所界定的范围内。

则有公式:[]()()

()

101,,,,1!n n f f x x x x n ξ+=+

4.牛顿插值差商表 xi yi 一阶差商

二阶差商

n 阶差商

* x0 y0 1 x1 y1 f[x0,x1] (x-x0) x2 y2 f[x1,x2] f[x0,x1,x2] (x-x0)(x-x1) x3 y3 f[x2,x3]

f[x1,x2,x3]

(x-x0)…(x-x2)

… … xn-1 yn-1

xn yn

f[xn-1,xn] f[xn-2,xn-1,xn] …

f[x0,…,xn] (x-x0)…(x-xn-1)

5.举例

例1:已知函数f(x)当x=-2,-1,0,1时,其对应函数值为f(x)=13,-8,-1,4。求f(0.5)的值。

解:根据已知点,填写以下差商表:

xi yi 一阶差商 二阶差商 三阶差商

* -2 13 1 -1 -8 -21 (x+2) 0 -1 7 14 (x+2)(x+1) 1

4

5

-1

-5

(x+2)(x+1)x

则四点三次牛顿插值多项式()3P x 为:

()()()()()()3132121421521P x x x x x x x =-++++-++

故,()()()()()()()30.50.513210.52140.520.5150.520.510.5f P ≈=-++++-++=3.625 可以在MATLAB 下运行程序newton01.m :

p3=inline('13-21*(x+2)+14*(x+2)*(x+1)-5*(x+2)*(x+1)*x'); fplot(p3,[-2.5,2.5]); hold on xi=[-2,-1,0,1]; yi=[13,-8,-1,4]; plot(xi,yi, '*'); plot(0.5,p3(0.5),'o'); 可以得到以下图形:

例2:已知函数f(x)当x=-2,-1,0,1,2时,其对应函数值为f(x)=13,-8,-1,4,1。求f(0.5)的值。

解:该题目与例1相比,就是多了一个点,所以和例1的差商表相比,只需多一列,多一行:

xi yi 一阶差商 二阶差商 三阶差商 四阶差商

* -2 13 1 -1 -8 -21 (x+2) 0 -1 7 14 (x+2)(x+1) 1 4 5 -1 -5 (x+2)(x+1)x 2

1

-3

-4

-1

1

(x+2)(x+1)x(x-1)

而5个点的4次牛顿插值多项式()4P x 是在()3P x 的基础上多增加1项:

()()()()()()()()()4132121421521211P x x x x x x x x x x x =-++++-+++++- 则

()()()()()()()()()()

40.50.513210.52140.520.5150.520.510.50.520.510.50.512.6875

f P ≈=-++++-+++++-=可以在MATLAB 下运行程序newton02.m :

p4=inline('13-21*(x+2)+14*(x+2)*(x+1)-5*(x+2)*(x+1)*x+(x+2)*(x+1)*x*(x-1)'); fplot(p4,[-2.5,2.5],'r'); hold on

xi=[-2,-1,0,1,2]; yi=[13,-8,-1,4,1]; plot(xi,yi, '*'); plot(0.5,p4(0.5),'o'); 可以得到以下图形:

6.牛顿插值的优点

(1)具有承袭性质

(2)利用差商表,计算多点插值,比拉格朗日公式计算方便。

7.牛顿插值算法的通用程序

以下是程序流程图:

开始

输入 n

x[i],y[i],(i=0,1,n)

t(即插值点x)f[i]=y[i],i=0,…,n

i<=n k=n

k>=i f[k]=(f[k-1]-f[k])/

(x[k-i]-x[k])

k=k-1

i=i+1y

y y

n

n

k<=n l=1,j=0

j<=k-1l=l*(t-x[j])

j=j+1

y

y

n

n

输出p 结束

i=11

p=f[0],k=1

1

p=p+f[k]*l

k=k+1

MATLAB 的通用程序newton.m 为: %牛顿插值 close all

n=input('已知的坐标点数n=?'); x=input('x1,x2,...,xn=?'); y=input('y1,y2,...,yn=?'); xx=input('插值点=?');

% 计算差商:f[x1,x2],f[x1,x2,x3],...,f[x1,x2,...,xn] f=y;

for i=1:n-1 % 计算第i 阶差商 for k=n:-1:i+1

f(k)=(f(k)-f(k-1))/(x(k)-x(k-i));

end

end

syms t %定义t为符号量

p=f(1);

for k=2:n

l=1;

for j=1:k-1

l=l*(t-x(j));

end

p=p+l*f(k);

end

p=inline(p); %把符号算式p变为函数形式fplot(p,[min(min(x),xx)-1,max(max(x),xx)+1]); %画多项式函数

hold on

p(xx) %显示插值点

plot(x,y,'o',xx,p(xx),'*'); %画已知点和插值点

在MATLAB命令窗口输入:

newton

然后有以下对话过程和结果,

已知的坐标点数n=?6

x1,x2,...,xn=?[1,3,5,7,9,11]

y1,y2,...,yn=?[-1,20,0,-1,12,3]

插值点=?8

ans =

5.67187500000000

有以下图形:

8.作业

(1)过(0,6),(1,7),(2,20),(3,81),(4,250)五个点做多项式函数p(x),并求p(-2)的值。

(2)给出下列函数表,已知函数f(x)是一个多项式函数,试求其次数及x 的最高幂的系数。 x 0 1 2 3 4 5 f(x)

-7

-4

5

26

65

128

(3)请写出下面数列中?的值 ① 2,5,9,15,23,? ② 2,8,15,29,50,?,125

五 埃尔米特(Hermite )插值 1.问题提出

已知函数()y f x =在n+1个点01,,,n x x x 上的函数值01,,,n y y y 及一阶导函数值

01,,,n y y y ''' ,求任意一点x 的函数值()f x 。

2.解决方法:

构造一个2n+1次代数多项式函数()21n P x +,使得

()()21210,1,,n i i

n i i

P x y i n P x y ++=??=?

''=?? 即,多项式函数()21n P x +也过这n+1个点,且函数f(x)和()21n P x +在这n+1个点上具有相同的切线。

数值计算方法教学大纲

《数值计算方法》教学大纲 课程编号:MI3321048 课程名称:数值计算方法英文名称:Numerical and Computational Methods 学时: 30 学分:2 课程类型:任选课程性质:任选课 适用专业:微电子学先修课程:高等数学,线性代数 集成电路设计与集成系统 开课学期:Y3开课院系:微电子学院 一、课程的教学目标与任务 目标:学习数值计算的基本理论和方法,掌握求解工程或物理中数学问题的数值计算基本方法。 任务:掌握数值计算的基本概念和基本原理,基本算法,培养数值计算能力。 二、本课程与其它课程的联系和分工 本课程以高等数学,线性代数,高级语言编程作为先修课程,为求解复杂数学方程的数值解打下良好基础。 三、课程内容及基本要求 (一) 引论(2学时) 具体内容:数值计算方法的内容和意义,误差产生的原因和误差的传播,误差的基本概念,算法的稳定性与收敛性。 1.基本要求 (1)了解算法基本概念。 (2)了解误差基本概念,了解误差分析基本意义。 2.重点、难点 重点:误差产生的原因和误差的传播。 难点:算法的稳定性与收敛性。 3.说明:使学生建立工程中和计算中的数值误差概念。 (二) 函数插值与最小二乘拟合(8学时) 具体内容:插值概念,拉格朗日插值,牛顿插值,分段插值,曲线拟合的最小二乘法。 1.基本要求 (1)了解插值概念。 (2)熟练掌握拉格朗日插值公式,会用余项估计误差。 (3)掌握牛顿插值公式。 (4)掌握分段低次插值的意义及方法。

(5)掌握曲线拟合的最小二乘法。 2.重点、难点 重点:拉格朗日插值, 余项,最小二乘法。 难点:拉格朗日插值, 余项。 3.说明:插值与拟合是数值计算中的常用方法,也是后续学习内容的基础。 (三) 第三章数值积分与微分(5学时) 具体内容:数值求积的基本思想,代数精度的概念,划分节点求积公式(梯形辛普生及其复化求积公式),高斯求积公式,数值微分。 1.基本要求 (1)了解数值求积的基本思想,代数精度的概念。 (2)熟练掌握梯形,辛普生及其复化求积公式。 (3)掌握高斯求积公式的用法。 (4)掌握几个数值微分计算公式。 2.重点、难点 重点:数值求积基本思想,等距节点求积公式,梯形法,辛普生法,数值微分。 难点:数值求积和数值微分。 3.说明:积分和微分的数值计算,是进一步的各种数值计算的基础。 (四) 常微分方程数值解法(5学时) 具体内容:尤拉法与改进尤拉法,梯形方法,龙格—库塔法,收敛性与稳定性。 1.基本要求 (1)掌握数值求解一阶方程的尤拉法,改进尤拉法,梯形法及龙格—库塔法。 (2)了解局部截断误差,方法阶等基本概念。 (3)了解收敛性与稳定性问题及其影响因素。 2.重点、难点 重点:尤拉法,龙格-库塔法,收敛性与稳定性。 难点:收敛性与稳定性问题。 3.说明:该内容是常用的几种常微分方程数值计算方法,是工程计算的重要基础。 (五) 方程求根的迭代法(4学时) 具体内容:二分法,解一元方程的迭代法,牛顿法,弦截法。 1.基本要求 (1)了解方程求根的对分法和迭代法的求解过程。 (2)熟练掌握牛顿法。 (3)掌握弦截法。 2.重点、难点 重点:迭代法,牛顿法。

数值计算方法比较

有限差分方法(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法形式,从而将不规则网格差分法推广为广义差分法.其基本思路是,将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 1)解线性方程组的Gauss 消去法和列主元Gauss 消去法(2人)/*张思珍,巩艳华*/ 用C 语言将不选主元和列主元Gauss 消去法编写成通用的子程序,然后用你编写的程序求解下列84阶的方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 1681684 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 2)解线性方程组的平方根法(4人)/*朱春成、黄锐奇、张重威、章杰*/ 用C 语言将平方根法和改进的平方根法编写成通用的子程序,然后用你编写的程序求解对称正定方程组b Ax =,其中 (1)b 随机的选取,系数矩阵为100阶矩阵 ?????? ???? ? ? ?101 1101 1101 1101 1101110 ; (2)系数矩阵为40阶的Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 1 1-+= j i a ij ,向量b 的第i 个分量为∑=-+ = n j i j i b 1 1 1. 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编

3.《数值分析简明教程》,王能超编 3)三对角线方程组的追赶法(3人)/*黄佳礼、唐伟、韦锡倍*/ 用C 语言将三对角线方程组的追赶法法编写成通用的子程序,然后用你编写的程序求解如下84阶三对角线方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 16816 84 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值分析简明教程》,王能超编 4)线性方程组的Jacobi 迭代法(3人)/*周桂宇、杨飞、李文军*/ 用C 语言将Jacobi 迭代法编写成独立的子程序,并用此求解下列方程组, 精确到小数点后5位 ???? ? ??=????? ??????? ? ?-149012 2111221 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 5)线性方程组的Gauss-Seidel 迭代法(3人)/*张玉超、范守平、周红春*/ 用C 语言将Gauss-Seidel 迭代法编写成独立的子程序,并用此求解下列方程组,精确到小数点后5位 ???? ? ??=????? ??????? ? ?--39721 1111112 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 6)解线性方程组的最速下降法法(2人)/*赵育辉、阿热孜古丽*/ 用C 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

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

《数值计算方法》复习试题 一、填空题: 1、????? ?????----=410141014A ,则A 的LU 分解为 A ??? ?????????=? ?????????? ?。 答案: ?? ????????--??????????--=1556141501 4115401411A 2、已知3.1)3(,2.1)2(,0.1)1(===f f f ,则用辛普生(辛卜生)公式计算求得 ?≈3 1 _________ )(dx x f ,用三点式求得≈')1(f 。 答案:, 3、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 4、近似值*0.231x =关于真值229.0=x 有( 2 )位有效数字; 5、设)(x f 可微,求方程)(x f x =的牛顿迭代格式是( ); ( 答案 )(1)(1n n n n n x f x f x x x '--- =+ 6、对1)(3 ++=x x x f ,差商=]3,2,1,0[f ( 1 ),=]4,3,2,1,0[f ( 0 ); 7、计算方法主要研究( 截断 )误差和( 舍入 )误差; 8、用二分法求非线性方程 f (x )=0在区间(a ,b )内的根时,二分n 次后的误差限为 ( 1 2+-n a b ); 9、求解一阶常微分方程初值问题y '= f (x ,y ),y (x 0)=y 0的改进的欧拉公式为

( )] ,(),([2111+++++=n n n n n n y x f y x f h y y ); 10、已知f (1)=2,f (2)=3,f (4)=,则二次Newton 插值多项式中x 2系数为( ); 11、 两点式高斯型求积公式?1 d )(x x f ≈( ?++-≈1 )] 321 3()3213([21d )(f f x x f ),代数精 度为( 5 ); 12、 解线性方程组A x =b 的高斯顺序消元法满足的充要条件为(A 的各阶顺序主子式均 不为零)。 13、 为了使计算 32)1(6 )1(41310-- -+-+ =x x x y 的乘除法次数尽量地少,应将该表 达式改写为 11 ,))64(3(10-= -++=x t t t t y ,为了减少舍入误差,应将表达式 19992001-改写为 199920012 + 。 14、 用二分法求方程01)(3 =-+=x x x f 在区间[0,1]内的根,进行一步后根的所在区间 为 ,1 ,进行两步后根的所在区间为 , 。 15、 、 16、 计算积分?1 5 .0d x x ,取4位有效数字。用梯形公式计算求得的近似值为 ,用辛卜 生公式计算求得的近似值为 ,梯形公式的代数精度为 1 ,辛卜生公式的代数精度为 3 。 17、 求解方程组?? ?=+=+042.01532121x x x x 的高斯—塞德尔迭代格式为 ?????-=-=+++20/3/)51()1(1)1(2)(2)1(1 k k k k x x x x ,该迭 代格式的迭代矩阵的谱半径)(M ρ= 121 。 18、 设46)2(,16)1(,0)0(===f f f ,则=)(1x l )2()(1--=x x x l ,)(x f 的二次牛顿 插值多项式为 )1(716)(2-+=x x x x N 。 19、 求积公式 ?∑=≈b a k n k k x f A x x f )(d )(0 的代数精度以( 高斯型 )求积公式为最高,具 有( 12+n )次代数精度。

数值分析教案 ShandongUniversity

数值分析教案土建学院 工程力学系 2014年2月

一、课程基本信息 1、课程英文名称:Numerical Analysis 1 2、课程类别:专业基础课程 3、课程学时:总学时32 4、学分:2 5、先修课程:《高等数学》、《线性代数》、《C 语言》 6、适用专业:工程力学 二、课程的目的与任务: 数值分析是工程力学专业的重要理论基础课程,是现代数学的一个重要分支。其主要任务是介绍进行科学计算的理论方法,即在计算机上对来自科学研究和工程实际中的数学问题进行数值计算和分析的理论和方法。通过本课程的学习,不仅使学生初步掌握数值分析的基本理论知识,而且使学生具备一定的科学计算的能力、分析问题和解决问题的能力,为学习后继课程以及将来从事科学计算、计算机应用和科学研究等工作奠定必要的数学基础。 三、课程的基本要求: 1.掌握数值分析的常用的基本的数值计算方法 2.掌握数值分析的基本理论、分析方法和原理 3.能利用计算机解决科学和工程中的某些数值计算应用问题,增强学生综合运用知识的能力 4.了解科学计算的发展方向和应用前景 四、教学内容、要求及学时分配: (一) 理论教学: 引论(2学时) 第一讲(1-2节) 1.教学内容: 数值分析(计算方法)这门课程的形成背景及主要研究内容、研究方法、主要特点;算法的有关概念及要求;误差的来源、意义、及其有关概念。数值计算中应注意的一些问题。 2.重点难点: 算法设计及其表达法;误差的基本概念。数值计算中应注意的一些问题。3.教学目标: 了解数值分析的基本概念;掌握误差的基本概念:误差、相对误差、误差限、相对误差限、有效数字;理解有效数字与误差的关系。学会选用相对较好的数值计算方法。 2 A 算法 B误差 典型例题

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

数值计算方法试题及答案

【 数值计算方法试题一 一、 填空题(每空1分,共17分) 1、如果用二分法求方程043=-+x x 在区间]2,1[内的根精确到三位小数,需对分( )次。 2、迭代格式)2(2 1-+=+k k k x x x α局部收敛的充分条件是α取值在( )。 3、已知?????≤≤+-+-+-≤≤=31)1()1()1(211 0)(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 4x l x x k k n k k ( )。 ; 5、设1326)(2 47+++=x x x x f 和节点,,2,1,0,2/ ==k k x k 则=],,,[10n x x x f 和=?07 f 。 6、5个节点的牛顿-柯特斯求积公式的代数精度为 ,5个节点的求积公式最高代数精度为 。 7、{}∞ =0)(k k x ?是区间]1,0[上权函数x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0=x ?,则?= 1 4)(dx x x ? 。 8、给定方程组?? ?=+-=-2211 21b 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 是 阶方法。

数值计算方法教案5

§3 最佳平方逼近 3.1法方程 设已知],[)(b a C x f ∈,且选择一函数类{ })(,),(),(10x x x Span S n ???Λ=,其中],[)(b a C x i ∈?且设{})(,),(0x x n ??Λ在],[b a 上线性无关(例如取n H S =或 {}nx nx x x S cos ,sin ,,cos ,sin ,1Λ=等)。 研究最佳平方逼近问题:寻求S x P n ∈)(* dx x P x f x dx x P x f x n b a b a S x P 2*2)())()(()())()(()(min -=-??∈ωω (3.1) 或写为 2 2* 22 )(min x p f p f n S P -=-∈ 这里我们主要研究],[)(b a C x f ∈最佳平方逼近函数)(*x P n 存在性,唯一性,计算等问题。 设有S x P n ∈)(* ,即∑== n j j j n x a x P 0 **)()(? 使(3.1)式成立,来考查{}*j a 应满足什么条件。 对于任一S x P ∈)(,即有∑== n j j j x a x P 0 )()(? ,于是 dx x P x f x P f b a 22 2))()(()(-=-?ω dx x a x f x n j j j b a 2 ))()(()(∑?=-= ?ω ),,,(10n a a a I Λ= (3.2) dx x P x f x P f n b a n 2*2 2 *))()(()(-=-?ω dx x a x f x n j j b a j 20 * ))()(()(∑?=-= ? ω ),,,(* **10n a a a I Λ= (3.2)式说明均方误差是),,(10n a a a Λ多元函数(为二次函数),由设存在)(* x P n 是极值问题 (3.1)解,即说明存在),,(* **10n a a a Λ使 ),,(),,,(min 1010***=n n a a a a I a a a I i ΛΛ实数 由多元函数取极值的必要条件,则有

数值分析插值算法源程序

#include #include float f(float x) //计算ex的值 { return (exp(x)); } float g(float x) //计算根号x的值 { return (pow(x,0.5)); } void linerity () //线性插值 { float px,x; float x0,x1; printf("请输入x0,x1的值\n"); scanf("%f,%f",&x0,&x1); printf("请输入x的值: "); scanf("%f",&x); px=(x-x1)/(x0-x1)*f(x0)+(x-x0)/(x1-x0)*f(x1); printf("f(%f)=%f \n",x,px); } void second () //二次插值 { float x0,x1,x2,x,px; x0=0; x1=0.5; x2=2; printf("请输入x的值:"); scanf("%f",&x); px=((x-x1)*(x-x2))/((x0-x1)*(x0-x2))*f(x0)+((x-x0)*(x-x2))/((x1-x0)*(x1-x2))*f(x1)+((x-x0)* (x-x1))/((x2-x0)*(x2-x1))*f(x2);

printf("f(%f)=%f\n",x,px); } void Hermite () //Hermite插值 { int i,k,n=2; int flag1=0; printf("Hermite插值多项式H5(x)="); for(i=0;i<=n;i++) { int flag=0; flag1++; if(flag1==1) { printf("y%d[1-2(x-x%d)*(",i,i); } else { printf("+y%d[1-2(x-x%d)*(",i,i); } for(k=0;k<=n;k++) { if(k!=i) { flag++; if(flag==1) { printf("(1/x%d-x%d)",i,k); } else { printf("+(1/x%d-x%d)",i,k);

数值分析实验报告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 姓名:万轩 实验二插值法

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值计算方法试题

数值计算方法试题 重庆邮电大学数理学院 一、填空题(每空2分,共20分) 1、用列主元消去法解线性方程组 1、解非线性方程f(x)=0的牛顿迭代法具有 ,,,,,,,收 敛 2、迭代过程(k=1,2,…)收敛的充要条件是 2、已知y=f(x)的数据如下 ,,, x 0 2 3 3、已知数 e=2.718281828...,取近似值 x=2.7182,那麽x具有的有 f(x) 1 3 2 效数字是,,, 4、高斯--塞尔德迭代法解线性方程组求二次插值多项式及f(2.5) 3、用牛顿法导出计算的公式,并计算,要求迭代误差不超过 。 4、欧拉预报--校正公式求解初值问题的迭代格式中求 ,,,,,,,,,,,,, ,

5、通过四个互异节点的插值多项式p(x),只要满足,,,,,,取步长k=0.1,计算 y(0.1),y(0.2)的近似值,小数点后保留5位. ,,则p(x)是不超过二次的多项式 三、证明题 (20分每题 10分 ) 6、对于n+1个节点的插值求积公式 1、明定 积分近似计算的抛物线公式 具有三次代数精度至少具有,,,次代 数精度. 7、插值型求积公式的求积 2、若,证明用梯形公式计算积分所 系数之和,,, 得结果比准确值大,并说明这个结论的几何意义。 参考答案: T8、 ,为使A可分解为A=LL, 其中L一、填空题 1、局部平方收敛 2、< 1 3、 4 为对角线元素为正的下三角形,a的取值范围, 4、

5、三阶均差为0 6、n 7、b-a 9、若则矩阵A的谱半径(A)= ,,, 8、 9、 1 10、二阶方法 10、解常微分方程初值问题的梯形二、计算题 格式 1、是,,,阶方法 二、计算题(每小题15分,共60分) 修德博学求实创新 李华荣 1 重庆邮电大学数理学院 2、 右边: 3、 ?1.25992 (精确到 ,即保留小数点后5位) 故具有三次代数精度 4、y(0.2)?0.01903 A卷三、证明题

数值计算方法实验5

实验报告 学院(系)名称: 主程序部分列选主元部分

实验结果: 一.列主元消去法 输入各个数据,最终使用列选主元法,得到结果为:x1=x2=x3=1二.高斯-赛德尔迭代法 输入各个数据,输出每一步迭代数据,最终结果为:x1=0.285716,附录(源程序及运行结果) 一.列主元高斯消去法 #include #include void print(double a[3][3],int n,double b[3]){ printf("输出矩阵:\n"); for(int i=0;ifabs(d)){ d=a[i][k]; l=i; } i++; } printf("选出主元:%lf\n",d); if(d==0) printf("矩阵奇异!\n"); else if(l!=k){ for(int j=k;j

数值计算方法试题一

数值计算方法试题一

数值计算方法试题一 一、 填空题(每空1分,共17分) 1、如果用二分法求方程043 =-+x x 在区间]2,1[内的根精确到三位小数,需对分( )次。 2、迭代格式)2(2 1 -+=+k k k x x x α局部收敛的充分条件是α取值在( )。 3、已知?????≤≤+-+-+-≤≤=31)1()1()1(2 110)(2 33x c x b x a x x x x S 是三次样条函数,则 a =( ),b =( ),c =( )。 4、)(,),(),(1 x 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)(2 4 7 +++=x x x x f 和节点,,2,1,0,2/ ==k k x k 则=],,,[1 n x x x f 和=?0 7 f 。 6、5个节点的牛顿-柯特斯求积公式的代数精度为 ,5个节点的求积公式最高代数精度为 。 7、{}∞ =0 )(k k x ?是区间]1,0[上权函数x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0 =x ?,则 ?= 1 4 )(dx x x ? 。 8、给定方程组?? ?=+-=-2 21121b 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 , x 0 0.5 1 1.5 2 2.5

《数值分析》教案

1.7.2 三次样条插值的基本原理 三次样条插值也是一种分段插值方法,用分段的三次多项式构造成一个整体上具有函数、一阶和二阶导函数连续的函数,近似地替代已知函数)(x f ,“样条”一词源于过去绘图员使用的一种绘图工具样条,它是用于富于弹性、能弯曲的木条(或塑料)制成的软尺,把它弯折靠近所有的基点用画笔沿着样条就可以画出连续基点的光滑曲线。 假设已知函数)(x f 在区间],[b a 上的)1(+n 个节点b x x x x x a n n =<<<<<=-1210 及其对应的函数值 i i y x f =)(,),,2,1,0(n i =,即给出)1(+n 组样本点数据),(,),,(),,(1100n n y x y x y x ,可以构造一个定义在],[b a 上的函数)(x S , 满足下述条件。 ① i i y x S =)(,),,2,1,0(n i = ② )(x S 在每个小区间],[1+i i x x )1,,2,1,0(-=n i 上,都是一个三次多项式: 3 32210)(x a x a x a a x S i i i i i +++= (1-42) ③ )(),(),(x S x S x S '''在],[b a 上连续。 可见,)(x S 是一个光滑的分段函数,这样的函数称为三次样条(Spline )插值函数。 构造的函数)(x S 是由n 个小区间上的分段函数组成,根据条件②,每个小区间上构造出一个三次多项式,第 i 个小区间上的三次多项式为 332210)(x a x a x a a x S i i i i i +++=,共有n 个多项式,每个多项式有4个待定系数。要确定这n 个多项式,就需要确定 4 n 个系数

数值分析常用的插值方法

数值分析报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……x n处的值是f(x0),……f(x n),要求估算f(x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0, C1,……C n的函数类Φ(C0,C1,……C n)中求出满足条件P(x i)=f(x i)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……C n)称为插值函数类,上面等式称为插值条件,Φ(C0,……C n)中满足上式的函数称为插值函数,R(x)=f(x)-P(x)称为插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,,,n x x x L 上的函数值01,,,n y y y L ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =++++L ,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a L 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 20112111 2012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?++++=?++++=?? ? ?++++=?L L L L L 其系数矩阵的行列式D 为范德萌行列式: ()20 0021110 2111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏L L M M M M L

(完整版)数值计算方法上机实习题答案

1. 设?+=1 05dx x x I n n , (1) 由递推公式n I I n n 1 51+-=-,从0I 的几个近似值出发,计算20I ; 解:易得:0I =ln6-ln5=0.1823, 程序为: I=0.182; for n=1:20 I=(-5)*I+1/n; end I 输出结果为:20I = -3.0666e+010 (2) 粗糙估计20I ,用n I I n n 51 5111+- =--,计算0I ; 因为 0095.05 6 0079.01020 201 020 ≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2 1 20=+= I 程序为:I=0.0087; for n=1:20 I=(-1/5)*I+1/(5*n); end I 0I = 0.0083 (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。 首先分析两种递推式的误差;设第一递推式中开始时的误差为000I I E '-=,递推过程的舍入误差不计。并记n n n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。因为=20E 20020)5(I E >>-,所此递推式不可靠。而在第二种递推式中n n E E E )5 1(5110-==-=Λ,误差在缩小, 所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制, 即算法是否数值稳定。 2. 求方程0210=-+x e x 的近似根,要求4 1105-+?<-k k x x ,并比较计算量。 (1) 在[0,1]上用二分法; 程序:a=0;b=1.0; while abs(b-a)>5*1e-4 c=(b+a)/2;

数值计算方法试题集和答案

《计算方法》期中复习试题 一、填空题: 1、已知3.1)3(,2.1)2(,0.1)1(===f f f ,则用辛普生(辛卜生)公式计算求得 ?≈3 1 _________ )(dx x f ,用三点式求得≈')1(f 。 答案:, 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)=,则二次Newton 插值多项式中x 2系数为( ); 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 ,为了减少舍入误差,应将表达式 19992001-改写为 199920012 + 。

数值计算方法教学大纲(本)

数值计算方法教学大纲(本) 本着“崇术重用、服务地方”的办学理念和我校“高素质应用型人才”的培养目标,特制定了适合我校工科专业本科生的新教学大纲。 一、课程计划 课程名称:数值计算方法Numerical Calculation Method 课程定位:数学基础课 开课单位:理学院 课程类型:专业选修课 开设学期:第七学期 讲授学时:共15周,每周4学时,共60学时 学时安排:课堂教学40学时+实验教学20学时 适用专业:计算机、电科、机械等工科专业本科生 教学方式:讲授(多媒体为主)+上机 考核方式:考试60%+上机实验30%+平时成绩10% 学分:3学分 与其它课程的联系 预修课程:线性代数、微积分、常微分方程、计算机高级语言等。 后继课程:偏微分方程数值解及其它专业课程。 二、课程介绍 数值计算方法也称为数值分析,是研究用计算机求解各种数学问题的数值方法及其理论的一门学科。随着计算科学与技术的进步和发展,科学计算已经与理论研究、科学实验并列成为进行科学活动的三大基本手段,作为一门综合性的新科学,科学计算已经成为了人们进行科学活动必不可少的科学方法和工具。 数值计算方法是科学计算的核心内容,它既有纯数学高度抽象性与严密科学性的特点,又有应用的广泛性与实际实验的高度技术性的特点,是一门与计算机使用密切结合的实用性很强的数学课程.主要介绍插值法、函数逼近与曲线拟合、线性方程组迭代解法、数值积分与数值微分、非线性方程组解法、常微分方程数值解以及矩阵特征值与特征向量数值计算,并特别加强实验环节的训练以提高学生动手能力。通过本课程的学习,不仅能使学生初步掌握数值计算方法的基本理论知识,了解算法设计及数学建模思想,而且能使学生具备一定的科学计算能力和分析与解决问题的能力,不仅为学习后继课程打下良好的理论基础,也为将来从事科学计算、计算机应用和科学研究等工作奠定必要的数学基础。 科学计算是21世纪高层次人才知识结构中不可缺少的一部分,它潜移默化地影响着人们的思维方式和思想方法,并提升一个人的综合素质。

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