Matlab实验指导书(实验六)

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

MATLAB实验指导书

编著:李新平

二零零八年三月十四日

实验六、数据插值和数据拟合

6.1 实验目的

1)掌握用 MA TLAB 计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点 的数目,对三种插值结果进行初步分析。

2)掌握用 MA TLAB 进行多项式最小二乘拟合,会选择合适的函数及转化为线性函数。 3)通过实例学习用数据插值和数据拟合解决实际问题。

6.2 分段线性插值

设给定一元未知函数 ) (x f y = 的 1 + n 个结点的数据 b x x a n = < < = L 0 对应的函数 值 n y y , , 0 L ,根据这些结点数据求其余 ) ( i j x j ¹ 点的函数值 j y ,可将相邻两个节点之间用 直线连接起来,如此形成的一条折线(见右图)构成的分段线性函数 ) (x I n 来近似表示未知函 数 ) (x f ,从而解决该插值问题的方法就称为分段线性插值。可用如下公式表示:

)

( ) ( ) ( 0

x f x l y x I n

j j j n » = å = 其余

, 0 , , ) ( 1

1

1

1 1 1

+ + + - - - £ £ - - £ £ - - ï ï î

ï ï í

ì

= j j j j j j

j j j j j x x x x x x x x x x x x x x x l 可用 MA TLAB 命令 y=interp1(x0,y0,x)来实现, 其中参数 x0 为给定结点数据的横坐标向 量,参数 y0 为 x0 对应的函数值,参数 x 为要未知结点的横坐标向量,函数返回值 y 为参数 x 根据分段线性插值得到的函数值。

【例】插值求在[0,15]区间内步长为 0.1 的机床加工数据:

>>x0=[0 3 5 7 9 11 12 13 14 15]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];

>>x=0:0.1:15; % 插值点

>>y=inpert1(x0, y0, x) % 插值求得函数值

6.3 拉格朗日插值

设未知函数 ) (x g y = 是n 次多项式,给定该n 次多项式 1 + n 个结点的数据 ),

, {( i i y x , } , , 0 n i L = 根据这些结点数据求其余 ) ( i j x j ¹ 点的函数值 j y ,可考虑如下构造:

) ( ) (

) ( 0 x g x l y x L n

i i i n » = å = )

( ) )( ( ) ( )

( ) )( ( ) ( ) (

1 1 0 1 1 0 n i i i i i i n i i i x x x x x x x x x x x x x x x x x l - - - - - - - - = + - + - L L L L 来近似表示n 次多项式 ) (x g ,从而解决该插值问题的方法就称为拉格朗日插值。

用 MATLAB 进行拉格朗日插值,要编写拉格朗日插值函数 m 文件,如 lagr1.m ,其函 数调用形式为 y=lagr1(x0,y0,x),其参数形式和函数返回值与分段线性插值相同。

【例】插值求在[0,15]区间内步长为 0.1 的机床加工数据:

>>x0=[0 3 5 7 9 11 12 13 14 15]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];

>>x=0:0.1:15; % 插值点

>>y=lagr1(x0, y0, x) % 插值求得函数值

6.4 三次样条插值

设给定一元未知函数 ) (x h y = 的 1 + n 个结点的数据 } , , 0 ), , {( n i y x i i L = ,根据这些结 点数据求其余 ) ( i j x j ¹ 点的函数值 j y ,可考虑做如下近似构造 ) ( ) ( x h x S » :

(1) 在每个小区间 ] , [ 1 i i x x - 上都是 3 次多项式, 即 i i i i i d x c x b x a x s + + + = 2

3

) ( ; (2) i i y x S = ) ( , n i , ,

0L = ; (3) ) (x S 在 n x x x £ £ 0 上的二阶导数连续, 即 ) ( ) ( 1 i i i i x s x s + = , ) ( ' ) ( ' 1 i i i i x s x s + = ,

)

( " ) ( " 1 i i i i x s x s + = ; 在 MA TLAB 中可以采用函数 y=interp1(x0,y0,x,’spline’)或 y=spline(x0,y0,x)来实现, 参数 形式和函数返回值跟分段线性插值和拉格朗日插值相同。

【例】插值求在[0,15]区间内步长为 0.1 的机床加工数据:

>>x0=[0 3 5 7 9 11 12 13 14 15]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6]; >>x=0:0.1:15; % 插值点

>>y=interp1(x0, y0, x,’spline’) % 或 y=spline(x0, y0, x)

6.5 多项式最小二乘数拟合

为了估计指定函数(如 x a a y 1 0 + = , 2

2 1 0 x a x a a y + + = , x

a a y 1 0 +

= , x

a e a y 1 0 = 等) 函数的参数, 从而确定该函数, 即作参数估计求得该函数, 可用先将以上函数转化了以 1 0 ,a a 为自变量的线性函数,再将给定的 1 + n 个结点数据 } , , 0 ),

, {( n i y x i i L = 代入线性函数,求

相关文档
最新文档