第七讲非线性拟合
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例1.对以下数据作出散点图,然后用多项式拟合: (0.5,1.75),(1,2.75),(1.5,3.81),(2,4.8),(2.5,7),(3,8.6) 解:x = [0.5,1.0,1.5,2.0,2.5,3.0];
y = [1.75,2.45,3.81,4.80,7.00,8.60]; plot(
其中 ? y ?
1 n
n
yi
i?1
R2越趋近于 1表明拟合效果越好 .
在Matlab 中实现可决系数的命令:
R2=1-sum((y-y1).^2)/sum((y-mean(y)).^2)
如果是多项式函数,则称为多项式回归,此时 的参数即多项式的系数;如果为指数函数、对数函 数、幂函数或三角函数等,则称为非线性拟合 .下面 的图形给出了常见曲线与方程的对应关系:
plot(x,y, '*' )
发现:有点像抛物线,故选 二次函数拟合 .
p=polyfit(x,y,2)
p = 0.1660 -13.3866 271.6231
(图6.2)
y ? 0.166x 2 - 13.3866x ? 271.6231 即为所求拟合曲线
误差平方和: R=sum((polyval(p,x)-y).^2)= 0.2523
第六讲 曲线拟合
在生产和科学实验中,自变量 x与因变量 y之间的函 数关系式有时不能直接写出表达式,而只能得到函数在 若干个点的函数值或导数值 . 当要求知道观测点之外的 函数值时,需要估计函数在该点的数值 . 这就要根据观 测点的值,构造一个比较简单的函数 y=φ(x),使函数在 观测点的值等于已知的数值或导数值,寻找这样的函数 φ(x),办法是很多的 . 根据测量数据的类型有如下两种处理观测数据的方法: ① 测量值是准确的,没有误差,一般用插值 . ② 测量值与真实值有误差,一般用曲线拟合 .
min
n
?
|
f (xi
)
?
yi
|2
i?1
通常,在解决实际问题时先将已知数据的散点图
画出,然后设计拟合的曲线类型,最后根据某种准则
选定最佳的曲线 .
1.多项式拟合
多项式拟合就是选择适当的多项式对数据集进行拟合, 其命令为:格式: p=polyfit(X, Y,n).
来自百度文库
说明:求出已知数据 (X,Y)的n阶拟合多项式 f(x)按 降幂排列的系数 p,X必须是单调的 .
2.非线性拟合
设有实验数据
( xi , yi ), (i
?
1,2,?
,n), 寻找函数
?
f (x, y)
使得函数在点 xi ,(i ? 1,2,? , n) 处的函数值与观测数据偏差
的平方和达到最小
.即求满足如下条件的函数f (
x,
?
y
)
使得
n
?
? ( f (xi , y) ? yi )2
i?1
最小
p = 0.5614 0.8287 1.1560 即拟合函数为:y ? 0.5614x 2 ? 0.8287x ? 1.156 此时误差平方和为:
sum((polyval(p,x)-y).^2) =0.1781
根据误差平方和最小原则:二次函数优于线性函数
是否有误差等于零的多项式?有,那就是该数据点 的插值多项式(五次多项式)
p = -1.6000 13.7400 -44.0733 65.6650 -42.6317 11.3500
y ? -1.6x 5 ? 13.74x 4 - 44.0733x 3 ? 65.665x 2 - 42.6317x ? 11.35
此时多项式在 x处的函数值为: polyval(p,x) ans =1.7500 2.4500 3.8100 4.8000 7.0000 8.6000
x 37 37.5 38 38.5 39 39.5 40 40.5 41 41.5 42 42.5 43 y 3.4 3 3 2.27 2.1 1.83 1.53 1.7 1.8 1.9 2.35 2.54 2.9
解:首先作出散点图 : x=37:0.5:43; y=[3.4,3,3,2.27,2.1,1.83,1.53,1.7,1.8,1.9,2.35,2.54,2.9];
幂函数
y ? axb
指数函数 y ? aebx
双曲线函数
y? x ax ? b
对数函数 y ? a ? b ln x
b
指数函数 y ? ae x
S形曲线
y
?
1 a ? be ? x
具有S形曲线的常见方程有:
罗杰斯蒂( logistic )模型:
一. 曲线拟合
已知离散点上的数据集 [( x1 , y1 ),(x2 , y 2 ),? ,(xn , y n )]
求得一解析函数 y=f(x),使f(x)在原离散点 xi上尽可能接
近给定yi的值,这一过程叫曲线拟合 . 最常用的曲线拟合
是最小二乘法曲线拟合,拟合结果可使误差的平方和最
小,即找出使下式最小的 f(x) :
解决此类问题有以下几个步骤:( 1)首先作出散点 图,确定函数的类别;( 2)根据已知数据确定待定 参数的初始值,利用 Matlab 软件计算最佳参数;( 3) 根据可决系数,比较拟合效果。
可决系数的计算公式为
n
? ( yi ? y?i )2
R2 ? 1?
i? 1 n
? (yi ? y)2
i? 1
通常,给出两点的坐标,我们可以得到一条直线; 若给出三点的坐标,我们可以得到一条抛物线; …,给 出n个点的坐标,我们可以得到一个 n-1阶的多项式 .
是否多项式的阶数越高越好呢?非也!在解决实际问 题时,只要达到所需的精度,应尽量选择简单的函数 .
例2. 某种合金中的主要成分为 A,B两种金属,经过试 验发现:这两种金属成分之和 x与合金的膨胀系数 y有 如下关系,建立描述这种关系的数学表达式 .
发现:这些点大致地位于某条直 线附近,故可考虑线性拟合:
p=polyfit(x,y,1) ans: p =2.7937 -0.1540 即拟合函数为: y=2.7937x-0.154
(图6.1)
上述函数的拟合效果如何?我们可以通过计算误差 平方和的大小进行考察(两种方法):
(1)sum((2.7937*x-0.154-y).^2)=0.9136 (2)sum((polyval(p,x)-y).^2) )=0.9136 如果用二次函数进行拟合,则有: p=polyfit(x,y,2)
y = [1.75,2.45,3.81,4.80,7.00,8.60]; plot(
其中 ? y ?
1 n
n
yi
i?1
R2越趋近于 1表明拟合效果越好 .
在Matlab 中实现可决系数的命令:
R2=1-sum((y-y1).^2)/sum((y-mean(y)).^2)
如果是多项式函数,则称为多项式回归,此时 的参数即多项式的系数;如果为指数函数、对数函 数、幂函数或三角函数等,则称为非线性拟合 .下面 的图形给出了常见曲线与方程的对应关系:
plot(x,y, '*' )
发现:有点像抛物线,故选 二次函数拟合 .
p=polyfit(x,y,2)
p = 0.1660 -13.3866 271.6231
(图6.2)
y ? 0.166x 2 - 13.3866x ? 271.6231 即为所求拟合曲线
误差平方和: R=sum((polyval(p,x)-y).^2)= 0.2523
第六讲 曲线拟合
在生产和科学实验中,自变量 x与因变量 y之间的函 数关系式有时不能直接写出表达式,而只能得到函数在 若干个点的函数值或导数值 . 当要求知道观测点之外的 函数值时,需要估计函数在该点的数值 . 这就要根据观 测点的值,构造一个比较简单的函数 y=φ(x),使函数在 观测点的值等于已知的数值或导数值,寻找这样的函数 φ(x),办法是很多的 . 根据测量数据的类型有如下两种处理观测数据的方法: ① 测量值是准确的,没有误差,一般用插值 . ② 测量值与真实值有误差,一般用曲线拟合 .
min
n
?
|
f (xi
)
?
yi
|2
i?1
通常,在解决实际问题时先将已知数据的散点图
画出,然后设计拟合的曲线类型,最后根据某种准则
选定最佳的曲线 .
1.多项式拟合
多项式拟合就是选择适当的多项式对数据集进行拟合, 其命令为:格式: p=polyfit(X, Y,n).
来自百度文库
说明:求出已知数据 (X,Y)的n阶拟合多项式 f(x)按 降幂排列的系数 p,X必须是单调的 .
2.非线性拟合
设有实验数据
( xi , yi ), (i
?
1,2,?
,n), 寻找函数
?
f (x, y)
使得函数在点 xi ,(i ? 1,2,? , n) 处的函数值与观测数据偏差
的平方和达到最小
.即求满足如下条件的函数f (
x,
?
y
)
使得
n
?
? ( f (xi , y) ? yi )2
i?1
最小
p = 0.5614 0.8287 1.1560 即拟合函数为:y ? 0.5614x 2 ? 0.8287x ? 1.156 此时误差平方和为:
sum((polyval(p,x)-y).^2) =0.1781
根据误差平方和最小原则:二次函数优于线性函数
是否有误差等于零的多项式?有,那就是该数据点 的插值多项式(五次多项式)
p = -1.6000 13.7400 -44.0733 65.6650 -42.6317 11.3500
y ? -1.6x 5 ? 13.74x 4 - 44.0733x 3 ? 65.665x 2 - 42.6317x ? 11.35
此时多项式在 x处的函数值为: polyval(p,x) ans =1.7500 2.4500 3.8100 4.8000 7.0000 8.6000
x 37 37.5 38 38.5 39 39.5 40 40.5 41 41.5 42 42.5 43 y 3.4 3 3 2.27 2.1 1.83 1.53 1.7 1.8 1.9 2.35 2.54 2.9
解:首先作出散点图 : x=37:0.5:43; y=[3.4,3,3,2.27,2.1,1.83,1.53,1.7,1.8,1.9,2.35,2.54,2.9];
幂函数
y ? axb
指数函数 y ? aebx
双曲线函数
y? x ax ? b
对数函数 y ? a ? b ln x
b
指数函数 y ? ae x
S形曲线
y
?
1 a ? be ? x
具有S形曲线的常见方程有:
罗杰斯蒂( logistic )模型:
一. 曲线拟合
已知离散点上的数据集 [( x1 , y1 ),(x2 , y 2 ),? ,(xn , y n )]
求得一解析函数 y=f(x),使f(x)在原离散点 xi上尽可能接
近给定yi的值,这一过程叫曲线拟合 . 最常用的曲线拟合
是最小二乘法曲线拟合,拟合结果可使误差的平方和最
小,即找出使下式最小的 f(x) :
解决此类问题有以下几个步骤:( 1)首先作出散点 图,确定函数的类别;( 2)根据已知数据确定待定 参数的初始值,利用 Matlab 软件计算最佳参数;( 3) 根据可决系数,比较拟合效果。
可决系数的计算公式为
n
? ( yi ? y?i )2
R2 ? 1?
i? 1 n
? (yi ? y)2
i? 1
通常,给出两点的坐标,我们可以得到一条直线; 若给出三点的坐标,我们可以得到一条抛物线; …,给 出n个点的坐标,我们可以得到一个 n-1阶的多项式 .
是否多项式的阶数越高越好呢?非也!在解决实际问 题时,只要达到所需的精度,应尽量选择简单的函数 .
例2. 某种合金中的主要成分为 A,B两种金属,经过试 验发现:这两种金属成分之和 x与合金的膨胀系数 y有 如下关系,建立描述这种关系的数学表达式 .
发现:这些点大致地位于某条直 线附近,故可考虑线性拟合:
p=polyfit(x,y,1) ans: p =2.7937 -0.1540 即拟合函数为: y=2.7937x-0.154
(图6.1)
上述函数的拟合效果如何?我们可以通过计算误差 平方和的大小进行考察(两种方法):
(1)sum((2.7937*x-0.154-y).^2)=0.9136 (2)sum((polyval(p,x)-y).^2) )=0.9136 如果用二次函数进行拟合,则有: p=polyfit(x,y,2)