如何用MATLAB进行最小二乘法参数估计
用多元线性最小二乘法函数regress()求得B0=3.44282878384342B1=2.61328643905109B2=-0.7713855677052B3=0.000447565400324732B4=-0.0190951609076539B5=25.6112106456476B6=-5.1612096689879σ=1.00329960680252(标准差)R^2:0.993195409381661(相关系数);F=97.3064082850979(F统计量));p=0.000275300598726158(F统计量相当于的p值);
最小二乘法matlab(递推最小二乘法matlab)
matlab中用最小二乘法拟合直线
首先确认一下,你这的log是以10为底的对数吧?那么命令如下。(如果是以e为底就不用除以log(10)了,自己改一下。)
>>
x=0.01:0.01:1;
>>
m=log(x)/log(10);
>>for
i=1:100;
y(i)=log((2^0.5)*(x(i)+1)/(x(i)*x(i)+2*x(i))^0.5)/log(10);
end
>>plot(m,y,'r');hold
on;
>>p
=polyfit(m,y,1)%这个就是拟合的函数
p=
-0.3600
0.4161
>>pp=poly2sym(p);
>>ezplot(pp,[-2,0]);
红色的是原曲线,蓝色的是拟合直线。拟合直线的斜率就是-0.3600
如何用matlab求最小二乘法
举例
x=[0 0.2 0.4 0.6 0.8 1.0]; %测得的温度数据
y=[0 0.19 0.32 0.46 0.66 0.83]; %测得的电容数据
p=polyfit(x,y,1) %调用拟合函数
x1=0:0.1:1.2; %设置采样区间,采样点
y1=polyval(p,x1); %计算多项式在x1处的值
plot(x,y,'*r',x1,y1,'-b');
线性最小二乘法的函数:isqlin非线性最小二乘法的函数:isqcurvefit具体用法自己doc命令查吧。
最小二乘法的matlab程序是怎样的?
我给你个最小二乘拟合的例子自己体会一下:
下面给定的是乌鲁木齐最近1个月早晨7:00左右(新疆时间)的天气预报所得到的温度数据表,按照数据找出任意次曲线拟合方程和它的图像。
(2008年10月26~11月26)
天数 1 2 3 4 5 6 7 8 9 10
温度 9 10 11 12 13 14 13 12 11 9
天数 11 12 13 14 15 16 17 18 19 20
温度 10 11 12 13 14 12 11 10 9 8
天数 21 22 23 24 25 26 27 28 29 30
温度 7 8 9 11 9 7 6 5 3 1
下面应用Matlab编程对上述数据进行最小二乘拟合
Matlab程序代码:
x=[1:1:30];
y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1];
a1=polyfit(x,y,3) %三次多项式拟合%
a2= polyfit(x,y,9) %九次多项式拟合%
a3= polyfit(x,y,15) %十五次多项式拟合%
b1= polyval(a1,x)
b2= polyval(a2,x)
b3= polyval(a3,x)
r1= sum((y-b1).^2) %三次多项式误差平方和%
r2= sum((y-b2).^2) %九次次多项式误差平方和%
r3= sum((y-b3).^2) %十五次多项式误差平方和%
plot(x,y,'*') %用*画出x,y图像%
hold on
plot(x,b1, 'r') %用红色线画出x,b1图像%
hold on
plot(x,b2, 'g') %用绿色线画出x,b2图像%
hold on
plot(x,b3, 'b:o') %用蓝色o线画出x,b3图像%
关于matlab最小二乘法的问题?
最小二乘法的问题如何用matlab来实现?我们可以根据数理统计的最小二乘法原理来写:
为了说明问题,特举例。已知某种合金的抗拉强度y与含碳量x的数据,求其一元线性回归数学模型(y=β0+β1*x)。
第一步,将含碳量数据和合金的抗拉强度数据分别赋值给x、y,即
x=【。。。】
y=【。。。】
第二步,求总数,即
n=length(x)
第三步,求x(i)和y(i)的和,即
S_x=sum(x);
S_y=sum(y);
第四步,求x(i)和y(i)的平均值,即
Ave_x=mean(x);
Ave_y=mean(y);
第五步,求x(i)^2、x(i)*y(i)、y(i)^2的和,即
S_xx=sum(x.^2);
S_xy=sum(x.*y);
S_yy=sum(y.^2);
第六步,求Lxx、Lxy、Lyy的值,即
Lxx=S_xx-n*Ave_x^2;
Lxy=S_xy-n*Ave_x*Ave_y;
Lyy=S_yy-n*Ave_y^2;
第七步,求系数β0、β1的值,即
b1=Lxy/Lxx %系数β1
b0=Ave_y-b1*Ave_x %系数β0
运行结果