MATLAB实现非线性曲线拟合最小二乘法
更新时间:2024-01-15 03:25:01 阅读量: 教育文库 文档下载
非线性曲线拟合最小二乘法
一、问题提出
设数据(xi,yi),(i=0,1,2,3,4).由表3-1给出,表中第四行为lnyi?yi,可以看出数学模型为y?aebx,用最小二乘法确定a及b。 i 0 1.00 5.10 1.629 1 1.25 5.79 1.756 2 1.50 6.53 1.876 3 1.75 7.45 2.008 4 2.00 8.46 2.135 xi yi yi 二、理论基础
根据最小二乘拟合的定义:在函数的最佳平方逼近中f(x)?C[a,b],如果f(x)只在一组离散点集{xi,i=0,1,…,m},上给定,这就是科学实验中经常见到的实验数据{(xi,yi), i=0,1,…,m}的曲线拟合,这里yi?f(xi),i=0,1,…,m,要求一个函数y?S*(x)与所给数据{(xi,yi),i=0,1,…,m}拟合,若记误差
?i?S*(xi)?yi,i=0,1,…,m,??(?0,?1,?,?m)T,设?0(x),?1(x),?,?n(x)是C[a,b]上线性无关函数族,在??span{?0(x),?1(x),?,?n(x)}中找一函数S*(x),使误差平方和
?这里
22?????[S(xi)?yi]?min2i*2i?0i?0S(x)?mm[S(x)?y]??iii?0m2,
S(x)?a0?0(x)?a1?1(x)???an?n(x) (n 这就是一般的最小二乘逼近,用几何语言来说,就称为曲线拟合的最小二乘 法。 在建模的过程中应用到了求和命令(sum)、求偏导命令(diff)、化简函数命令(simple)、用迭代方法解二元非线性方程组的命令(fsolve),画图命令(plot)等。 三、实验内容 用最小二乘法求拟合曲线时,首先要确定S(x)的形式。这不单纯是数学问题, 还与所研究问题的运动规律及所得观测数据(xi,yi)有关;通常要从问题的运动规律及给定数据描图,确定S(x)的形式,并通过实际计算选出较好的结果。S(x)的一般表达式为线性形式,若?k(x)是k次多项式,S(x)就是n次多项式,为了使问题的提法更有一般性,通常在最小二乘法中?22 都考虑为加权平方和 ?22???(xi)[S(xi)?f(xi)]2. i?0m这里?(x)?0是[a,b]上的权函数,它表示不同点(xi,f(xi))处的数据比重不同。 用最小二乘法求拟合曲线的问题,就是求形如S(x)的一个函数y?S*(x),使?22???(xi)[S(xi)?f(xi)]2取得最小。它转化为求多元函数 i?0mI(a0,a1,?,an)???(xi)[?aj?j(xi)?f(xi)]2 i?0j?0mn***的极小点(a0,a1,?,an)问题。再由求多元函数极值的必要条件,有 mn?I?2??(xi)[?aj?j(xi)?f(xi)]?k(xi)?0 (k=0,1,…,n) ?aki?0j?0此题中假设?(x)?1,由已知所给数据点(xi,yi)画出图形,根据离散点的位置观察出它们所拟合的曲线图形应类似于指数函数的曲线图形,故设拟合曲线的函数为y?aebx。 本题编程过程中,令f=y,z1=a,z2=b, 令拟合曲线中对应xi的函数值与yi的差的平方和为J,即J=sum(fy.^2);分别求J关于z1,z2的偏导,简化后并令其分别为0得一关于z1,z2的二元非线性方程组, 最后利用fsolve命令求得z1,z2的值分别为 z1=3.0751 z2=0.5052 故得到拟合曲线为 y?3.0751e0.5052x 为证明曲线拟合的正确性,我们将离散点(xi,yi)与所得的拟合曲线 y?3.0751e0.5052x 画于同一图形中,图形如下: 例8的数据点(x(i),y(i))和拟合曲线y=f(x)的图形8.5数据点(x(i),y(i))拟合曲线y=f(x)87.57y轴6.565.5511.11.21.31.41.5x轴1.61.71.81.92 四、结果分析 根据实验内容求得拟合曲线y?aebx中未知数a,b分别为 a=3.0751 b=0.5052 即拟合曲线为 y?3.0751e0.5052x。 由图形知拟合成功! 参考文献 1·《数值分析》,李庆扬,王能超,易大义,2001,清华大学出版社(第 四版)。 2·《数值方法》,关治,陆金甫,2006,清华大学出版社。 3·《数值分析与实验学习指导》,蔡大用,2001,清华大学出版社。 4·《数值分析与实验》,薛毅,2005,北京工业大学出版社. 附录 程序1: syms z1 z2 x=1.00:0.25:2.00; y=[5.10,5.79,6.53,7.45,8.46]; f=z1*exp(z2.*x) fy=f-y; J=sum(fy.^2); Ja=diff(J,z1); Jb=diff(J,z2); Ja1=simple(Ja), Jb1=simple(Jb), 程序2: function [y1,y2]=fun(z) y1=2*z(1)*exp(2*z(2))-51/5*exp(z(2))+2*z(1)*exp(5/2*z(2))-579/50*exp(5/4*z(2))+2*z(1)*exp(3*z(2))-653/50*exp(3/2*z(2))+2*z(1)*exp(7/2*z(2))-149/10*exp(7/4*z(2))+2*exp(4*z(2))*z(1)-423/25*exp(2*z(2)); y2=-1/200*z(1)*(-400*z(1)*exp(2*z(2))+2040*exp(z(2))-500*z(1)*exp(5/2*z(2))+2895*exp(5/4*z(2))-600*z(1)*exp(3*z(2))+3918*exp(3/2*z(2))-700*z(1)*exp(7/2*z(2))+5215*exp(7/4*z(2))-800*z(1)*exp(4*z(2))+6768*exp(2*z(2))); 作图程序:x=1.00:0.25:2.00; y=[5.10,5.79,6.53,7.45,8.46]; f=3.0751*exp(0.5052*x); plot(x,y,'r*',x,f,'b-'); xlabel('x轴'),ylabel('y轴'), legend('数据点(x(i),y(i))','拟合曲线y=f(x)'), title('例8的数据点(x(i),y(i))和拟合曲线y=f(x)的图形')
正在阅读:
MATLAB实现非线性曲线拟合最小二乘法01-15
2019年开学的打算作文【优秀】06-13
关于2019年春节逛庙会的作文06-13
2019年又是一个冬天作文06-13
2019年家乡的景物作文06-12
最新职称申报滑坡治理岗位专业技术工作总结01-04
2019年新年新的梦想作文06-14
2019年难忘的圣诞节作文06-14
gb30871-2019特殊作业安全规范05-06
考试激励的祝福语大全201905-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 拟合
- 乘法
- 非线性
- 曲线
- 最小
- 实现
- MATLAB
- (北师大版)四年级数学上册教案 - 有趣的算式 - 1
- 云盘山三级超前支护技术交底
- 数据库postgresql元数据管理
- 房屋买卖合同
- 2009年全国锐捷网络工程师认证
- 第三编 - 魏晋南北朝文学试题库
- 王什小学两免一补实施方案
- 关于新农村建设的社会调研报告
- 小学奥数5-4-5 完全平方数及应用(二).教师版
- 高吸水性树脂聚丙烯酸钠的制备1
- 中华人民共和国核行业标准水中总放射性浓度的测定厚源法
- 2012中国民营500强企业名单
- 2015年黑龙江省绥化市中考语文试题及答案 - 图文
- arcgis中提取线交点方法
- 2019年高三历史一轮复习之2018年名题分解课时练:人教版必修一第三单元第8课美国联邦政府的建立(解析版)
- DLCS-2000系列低压综合安全保护装置使用手册 - 图文
- 中国古代、近代、现代史荟萃精华
- 精品2018最新版本高考物理二轮复习专题专题七-静电场教案-Word版
- 科工法311号-国防科技工业军用核设施质量保证规定
- 2018精准扶贫结对帮扶计划(2篇)