§7 MATLAB 的应用
7.1 MATLAB 在数值分析中的应用
插值与拟合是来源于实际、又广泛应用于实际的两种重要方法。随着计算机的不断发展及计算水平的不断提高,它们已在国民生产和科学研究等方面扮演着越来越重要的角色。下面对插值中分段线性插值、拟合中的最为重要的最小二乘法拟合加以介绍。
7.1.1 分段线性插值
所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序,MATLAB 自身提供了内部函数interp1其主要用法如下:
interp1(x,y,xi) 一维插值
◆ yi=interp1(x,y,xi)
对一组点(x,y) 进行插值,计算插值点xi 的函数值。x 为节点向量值,y 为对应的节点函数值。如果y 为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN 。
◆ yi=interp1(y,xi)
此格式默认x=1:n ,n 为向量y 的元素个数值,或等于矩阵y 的size(y,1)。
◆ yi=interp1(x,y,xi,’method’)
method 用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。 ● nearest 线性最近项插值。
● linear 线性插值。
● spline 三次样条插值。
● cubic 三次插值。
所有的插值方法要求x 是单调的。x 也可能并非连续等距的。
正弦曲线的插值示例:
>> x=0:0.1:10;
>> y=sin(x);
>> xi=0:0.25:10;
>> yi=interp1(x,y,xi);
>> plot(x,y,’0’,xi,yi)
则可以得到相应的插值曲线(读者可自己上机实验)。
Matlab 也能够完成二维插值的运算,相应的函数为interp2,使用方法与interpl 基本相同,只是输入和输出的参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab 联机帮助。
7.1.2 最小二乘法拟合
在科学实验的统计方法研究中,往往要从一组实验数据),(i i y x 中寻找出自变量x 和因变量y 之间的函数关系y=f(x) 。由于观测数据往往不够准确,因此并不要求y=f(x)经过所有的点 ),(i i y x ,而只要求在给定点i x 上误差i i i y x f -=)(δ按照某种标准达到最小,通常采用欧氏范数2δ作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB 中实现最