曲线拟合--最小二乘法
1:已知平面上四个点:(0,1)、(1,2.1)、(2,2.9)和(3,3.2),求出一条直线拟合这四个点,使得偏差平方和变为极小。
解:设直线方程为:
0
1
0
0
1
2.1
1
2.1
2
2.9
4
5.8
3
3.2
9
9.6
Sum=6
Sum=9.2
Sum=14
Sum=17.5
代入正规方程:
,
编程求解上方程组:
>> eq1='14*A+6*B=17.5';
>>eq2='6*A+4*B=9.2';
>> [A,B]=solve(eq1,eq2,'A,B');
>> disp(A)
0.74
>> disp(B)
1.19
所以直线方程为:
2:已知数据如下表所示
1
2
4
6
10
5
2
1
试求(1)用抛物线拟合这些数据使得偏差平方和最小;(2)用型如的函数来拟合这些数据使得偏差平方和最小。(3)比较这两种拟合结果。
解:(1)设抛物线方程为:
1
10
1
1
1
10
10
2
5
4
8
16
10
20
4
2
16
64
256
8
32
6
1
36
216
1296
6
36
Sum=13
Sum=18
Sum=57
Sum=289
Sum=1569
Sum=34
Sum=98
代入正规方程:
得到系数A,B,C的方程组:
编程求解上方程组:
>>eq1='1569*A+289*B+57*C=98';
>>eq2='289*A+57*B+13*C=34';
>>eq3='57*A+13*B+4*C=18';
>> [A,B,C]=solve(eq1,eq2,eq3,'A,B,C');
>> disp(A); disp(B); disp(C)
102/199
-1048/199
2848/199
>> A=102/199; disp(A)
0.5126
>> B=-1048/199; disp(B)
-5.2663
>> C=2848/199; disp(C)
14.3116
所以得到抛物线的方程为:
(2)设函数
1
10
1
1
10
2
5
1/2
1/4
5/2
4
2
1/4
1/16
1/2
6
1
1/6
1/36
1/6
Sum=13
Sum=18
Sum=23/12
Sum=193/144
Sum=79/6
得到系数A,B的方程组:
编程求解上方程组:
>> eq1='4*A+23*B/12=18';
>>eq2='23*A/12+193*B/144=79/6';
>> [A,B]=solve(eq1,eq2,'A,B');
>> disp(A); disp(B)
-160/243
872/81
>> A=-160/243; disp(A)
-0.6584
>> B=827/81; disp(B)
10.2099
所以得到的函数为:
(3)比较(1)和(2)两种
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
拟合的方程:
编程画出抛物线的图像为:
>> x=-2:0.1:12;
>> y=0.5126*x.^2-5.2663*x+14.3116;
plot(x,y);grid on
(a)
再编程画出的图像为:
>> x=-2:0.1:12;
>> y=-0.6584+10.2099*(x.^(-1));
>> plot(x,y);grid on
>> x=-1:0.01:1;
>> y=-0.6584+10.2099*(x.^(-1));
plot(x,y);grid on
(b)
比较两图像可知,图像(b)在点(0,0)处不连续。尽管它是由相同的四个点拟合出来的,但它的拟合较差,图像(a)拟合较好。
3:试求一个形如下式的指数函数:,(a,b为参数),使它拟合于下列数据:
1
2
3
4
5
6
7
8
15.3
20.5
27.4
36.6
49.1
65.5
87.8
117.6
解:设指数函数
变量变换后将指数形式变为了线性关系式:
1
15.3
1
Ln15.3
1
Ln15.3
2
20.5
2
Ln20.5
4
2Ln20.5
3
27.4
3
Ln27.4
9
3Ln27.4
4
36.6
4
Ln36.6
16
4Ln36.6
5
49.1
5
Ln49.1
25
5Ln49.1
6
65.6
6
Ln65.6
36
6Ln65.6
7
87.8
7
Ln87.8
49
7Ln87.8
8
117.6
8
Ln117.6
64
8Ln117.6
Sum=36
Sum=419.9
Sum=36
Sum=29.9787
Sum=204
Sum=147.1350
编程计算和的值如下:
>>f1=log(15.3)+log(20.5)+log(27.4)+log(36.6)+log(49.1)+log(65.6)+log(87.8)+log(117.6);
>>disp(f1)
29.9787
>>f2=log(15.3)+2*log(20.5)+3*log(27.4)+4*log(36.6)+5*log(49.1)+6*log(65.6)+7*log(87.8)+8*log(117.6);
>>disp(f2)
147.1350
代入正规方程:
得到系数A,B的方程组:
编程求解上方程组:
>> eq1='204*A+36*B=147.1350';
>>eq2='36*A+8*B=29.9787';
>> [A,B]=solve(eq1,eq2,'A,B');
>> disp(A); disp(B)
0.2912
2.4369
>> B=log(C); disp(C)
2848/199
>> C=2848/199; disp(C)
14.3116
所以
4:用最小二乘法求一个形如 (a,b为参数)的经验公式,使其与下列数据相拟合(计算取4位小数)。
1
2
3
4
2.5
3.4
4.1
4.4
解:设
对分别求A,B的偏导
1
2.5
0
0
2.5
2
3.4
3
4.1
4
4.4
Sum=10
Sum=14.4
Sum=3.1781
Sum=3.6092
Sum=15.4607
编程计算,和的值如下:
>> f1=log(2)+log(3)+log(4); disp(f1)
3.1781
>> f2=[log(2)].^2+[log(3)].^2+[log(4);].^2; disp(f2)
3.6092
>> f3=2.5+3.4*log(2)+4.1*log(3)+4.4*log(4); disp(f3)
15.4607
各值代入正规方程得到系数A,B的方程组:
编程求解上方程组:
>> eq1='4*A+3.1781*B=14.4';
>>eq2='3.1781*A+3.6092*B=15.4607';
>> [A,B]=solve(eq1,eq2,'A,B');
>> disp(A); disp(B)
0.6542
3.7077
所以得到的函数为:
文档已经阅读完毕,请返回上一页!