《数值计算》实验报告
学院: 软件学院 专业: 软件工程 班级:12级4班 实验名称 姓名 罗光光 数据拟合方法研究气温变化规律 学号 1402120418 成绩 实验报告内容要求: 实验三:编写多项式拟合程序。并用该程序解决下列问题:假定某天的气温变化记录如下表,试用最小二乘方法找出这一天的气温变化规律。 t/h 1 2 3 4 5 6 7 8 9 10 11 12 13 T/?C t/h T/?C 14 14 32 14 15 31 14 16 29 14 17 27 15 18 25 16 19 24 18 20 22 20 21 20 22 22 18 23 23 17 25 24 16 28 31 考虑下列类型函数,计算误差平方和,并作图比较效果。 1.二次函数 2.三次函数 3.四次函数 4.函数C?ae(?b(t?c)2)(提高:非线性拟合问题) 一.实验目的: 1.理解数据拟合的基本概念,基本方法; 2.掌握最小二乘法的基本原理,并学会通过计算机解决实际问题. 二.实验原理: 利用最小二乘法来解决实际遇到的问题,并解决问题 三.实验环境: PC机,MATLAB程序 四.实验过程(编写的程序) (1)二次函数 >> fun2=inline('c(1)*x.^2+c(2)*x+c(3)','c','x') fun2 = Inline function: fun2(c,x) = c(1)*x.^2+c(2)*x+c(3) >> x=0:24; >> y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16];
>> c=lsqcurvefit(fun2,[0 0 0],x,y) Optimization terminated: relative function value changing by less than OPTIONS.TolFun. c = -0.0936 2.5943 8.4157 >> poly2str(c,'x') ans = -0.093609 x^2 + 2.5943 x + 8.4157 (2)三次函数 >> fun2=inline('c(1)*x.^3+c(2)*x.^2+c(3)*x+c(4)','c','x') fun2 = Inline function: fun2(c,x) = c(1)*x.^3+c(2)*x.^2+c(3)*x+c(4) >> x=0:24;y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >> c=lsqcurvefit(fun2,[0 0 0 0],x,y) Maximum number of function evaluations exceeded; increase options.MaxFunEvals c = -0.0071 0.1597 0.2487 12.4001 >> poly2str(c,'x') ans = -0.0070916 x^3 + 0.15971 x^2 + 0.24868 x + 12.4001 2( 3 )钟形函数f(t)?aeb(t?14) >> fun2=inline('c(1)*exp(c(2)*(t-14).^2)','c','t') fun2 = Inline function: fun2(c,t) = c(1)*exp(c(2)*(t-14).^2) >> t=0:24;y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >> c=lsqcurvefit(fun2,[0,0],t,y) Optimization terminated: relative function value changing by less than OPTIONS.TolFun. c = 27.9628 -0.0058 %a= 27.9628 b=-0.0058
五、实验结果及分析 此地的气温随着时间的推迟而升高,在下午2点左右到达峰值,然后会随着时间而降低,直到第二天. 六、实验反思 1.掌握了数据拟合的基本概念和方法; 2.学会了最小二乘法的基本原理,并能通过计算机解决实际问题.