1. matlab最小二乘法曲线拟合
用nlinfit()函数拟合,得到
c= 0.02000000498,K = -1.000012511
拟合精度R=0.99999999999997925522105374252033
2. 求教用matlab 实现最小二乘法拟合曲线
Linear model Poly1: f(x) = p1*x + p2 where x is normalized by mean 5.5 and std 3.028Coefficients (with 95% confidence bounds): p1 = 214.4 (45.7, 383.2) p2 = 279 (118.9, 439)
Goodness of fit: SSE: 3.855e+005 R-square: 0.5177 Adjusted R-square: 0.4574 RMSE: 219.5
3. Matlab最小二乘法拟合曲线
a(1)=0.218247627,a(2)=1.987590598,a(3)=119.3022008
4. matlab做最小二乘拟合
程序为:
x=[15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270];
y=[7,7.9,8.8,10,11,12.6,14,14.6,15.2,15.7,16.2,16.4,16.7,17,17.3,17.5,17.7,18.0];
p=polyfit(x,y,2)
x2=0:300;
y2=polyval(p,x2);
plot(x,y,'o',x2,y2)
结果为:
p =
-0.000193441119138 0.098295493636051 5.181372549019607
p所得三个值就是对应你要求的m(1) ,m(2),m(3)三个系数
5. matlab最小二乘法曲线拟合 非线性拟合
>> x =[125.1200 126.6500 128.6300 129.5100 132.8900 136.7400 137.0100 144.0100 150.0300 155.0600];
>> y=[26.5000 37.9300 50.9300 53.4000 64.2000 74.6500 77.4000 87.5400 95.5000 101.8600];
>> fun=@(pb,x) 0.94*(x.^pb(1)-pb(2)^pb(1)).^(1/pb(1));
>> pb=nlinfit(x,y,fun,[1 2])
pb =
2.6227 124.0240
p=2.6227 b=124.0240
6. matlab中用最小二乘法拟合直线怎么做?
最小二乘法,通常用在我们已知数学模型,但是不知道模型参数的情况下,通过实测数据,计算数学模型,例如,在题目中,数学模型就是直线方程y=ax+b,但是不知道直线方程的a和b。
本来呢,我们只需要两组(xi,yi),就可以解得a和b,但是由于实测数据都存在误差,所以,我们很容易想到一个办法,我们测很多组数据来让我的a和b更加准确。
数学模型如下:
F=ax+b-y
那么对于模型上的点(注意是模型上的点,也就是理论值),F=ax+b-y=0
但是对于实际值来说,F=axi+b-yi 一定不等于0。那么我们就要找到一对a和b,使得F尽可能接近于0。
也就是说,“偏离量总和最小”这个概念,在数学上实际上就是要求F的方差最小。
即 Σ F^2→0 (F的平方和趋近于0)
即 Σ(axi+b-yi)^2→0
那么我们得到一个方程f(a,b)=Σ(axi+b-yi)^2,我们要找到合适的a,b使得f(a,b)最小! 也就是说,我们要找到的实际上是f(a,b)的最小值点。(因为方差不可能小于0) 因此我们需要求f(a,b)的极值点。我们借助数学工具偏导。 如果有一组a,b使得 ∂f(a,b)/∂a=0
∂f(a,b)/∂b=0
那么f(a,b)就是极值点,如果a,b只有一对,那么它就是最小值点。 即 ∂( Σ(axi+b-yi)^2 )/∂a=0
∂( Σ(axi+b-yi)^2 )/∂b=0 化简得到
a*Σxi^2 + b*Σxi = Σ(xi*yi)
a*Σxi + b*N = Σyi
其中N是(xi,yi)的个数。即我们测了多少组数据
解上面的二元方程,我们就可以得到唯一的一组a,b啦,这就是我们所需要的a和b
7. 用加权最小二乘法拟合曲线matlab?
如何用matlab求加权最小二乘法拟合曲线?第一步,根据给出的xi、yi、wi分别赋值给x、y、w列变量第二步,将xi与wi乘积赋值给X变量,即X=w.*x;第三步,创建多项式系数矩阵,即X1=[X.^4 X.^3 X.^2 X ones(size(x))];第四步,使用regress函数求出拟合系数,即[p,bint,r,rint,stats] = regress(y,X1);第五步,显示拟合系数和相关系数p1=p(1),p2=p(2),p3=p(3),p4=p(4),p5=p(5)R^2=stats(1)第六步,计算拟合值,即Y=p(1)*X.^4+p(2)*X.^3+p(3)*X.^2+p(4)*X+p(5);
第七步,使用plot函数,绘制拟合曲线
8. 二元函数用matlab最小二乘法拟合
matlab里最小二乘法只要用简单的矩阵除法就可以完成。示例:y=a1*x1^2+a2*x2+c
% 原始数据
x1 = [1 2 3 ... ]; x2 = [1 2 3 ...]; y = [1 2 3 ...];
% LS
Y = y(:); H = [x1(:).^2 x2(:) ones(size(x1(:)))];
X = (H.'*H)\(H.'*Y);
得到的X是三个数的向量,X(1)是a1,X(2)是a2,X(3)是c。