用 Excel 做多变量非线性拟合

标签:
it |
分类: 摘抄 |
http://blog.renren.com/share/1316442971/14420136192
来源: 茅晓锋的日志
问题:测得一组数据,需要做非线性拟合,获得参数a,b的值。
拟合公式:y=79.71(1-a*log(1+bx))
软件环境:Excel 2003 ,2007 ,2010
原理:
利用Excel的规划求解功能,不断试探参数a、b的值,使拟合曲线与实验值的整体偏差最小。整体偏差用最小二乘法计算。
http://fmn.xnpic.com/fmn053/20101209/1945/b_large_6bdj_5a8e000046c75c15.jpgExcel
操作:
====part1 设定初值,用最小二乘法计算偏差
1.在表格空白处输入初值 a ,b
2.新建一列“公式值”,输入拟合公式,其中待定系数a ,b选为刚才输入的初值,再向下填充。例:H3单元格公式
=79.17*(1-a*LOG10(1+B3*L4))
3.新建一列“误差”,公式为 (理论值-实验值)^2 ,再向下填充 。在误差最后输入求和函数sum(……) 。例:I3单元格公式
=(H3-G3)^2
====part2 试探a、b,使整体偏差最小
4.Excel 2003 -工具-规划求解
*如果没有这个功能,需要加载相应的宏。
Excel 2003 -工具 – 加载宏 -复选“规划求解”
Excel 2007,2010 -office图标-选项-加载宏-转到…
5.在对话框中设定整体偏差作为目标单元格,此例中为 I10 ,约束条件为“最小值”,可变单元格为参数a,b 。如果有其他约束条件,在下方添加就可以了。点击“求解”。
6.找到结果之后,若选“保存求解