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

  • 格式:doc
  • 大小:1.79 MB
  • 文档页数:32

下载文档原格式

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

复习:

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 。

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

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

101!

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

5.举例:

已知函数()f x =()

115f 。

分析:本题理解为,已知“复杂”函数()f 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 =在点

(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 '。