数值分析实验报告--最小二乘拟合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验过程:
一、根据所给数据作出温度随时间变化的散点图。>> 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];
>>stem(x,y,'k*')
点的标记是黑色的*.
这是温度随时间变化的散点图。
二、输入数据,拟合出各类函数的各个系数。(用polyfit
命令来求拟合系数)
(1)>> 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];
>> b2=polyfit(x,y,2)
b2 =
-0.0936 2.5943 8.4157
---这是拟合出的二次多项式的各项系数。
(2)>> 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];
>> b3=polyfit(x,y,3)
>>b3 =
-0.0080 0.1931 -0.1022 13.2513
---这是拟合出的三次多项式的各项系数。
(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];
>> b4=polyfit(x,y,4)
>>b4 =
0.0009 -0.0521 0.8658 -3.5257 16.6041
---这是拟合出的四次多项式的各项系数。
(4)
function y=f1(x)
for i=1:25
y(i)=log(x(i));
end
>> y1=f1( x);
>> b5=polyfit(x,y1,2)
b5 =
-0.0045 0.1253 2.3866
>> y_=f1(y);
>> b6=polyfit(x,y4,2)
>> b6=polyfit(x,y_,2)
b6 =
-0.0045 0.1253 2.3866
>> exp(0.0045*13.9222* 13.9222+2.3866)
ans =
26.0189
---这是拟合出来的指数函数的各系数。
三、计算误差平方和
1.二次函数的误差平方和
function y=f2(x)
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];
y2=-0.0936*x.^2+2.5943*x+8.4157;
s2=y2-y;
s21=0;
for i=1:25
s21=s21+s2(i)^2;
end
s21
s21 =
241.2445
2.三次函数的误差平方和
function y3=f3(x)
>> 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];
y3=-0.0080*x.^3+0.1931*x.^2-0.1022.*x+13.2513;
s3=y3-y;
s31=0;
for i=1:25
s31=s31+s3(i)^2;
end
s31
s31 =
107.0314
3.四次函数的误差平方和
function y=f4(x)
>> 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];
>>y4=0.0009*x.^4-0.0521*x.^3+0.8658*x.^2-3.5257.*x+16.6041;
>>s4=y4-y;
s41=0;
for i=1:25
s41=s41+s4(i)^2;
end
>>s41
s41 =
157.9107
4.指数函数2
)()(c x b ae x y --=的误差平方和
function y=f5(x) >> 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];
>> y5=26.0189*exp(-0.0045*((x-13.9222).^2));
s5=y5-y;
s51=0;
for i=1:25
s51=s51+s5(i)^2;
end
s51
s51 =
184.3426
四、下面列程序作出图形。(最后一张为所有图形的比较)
>> function y2=f2(x)
>> 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];