最小二乘法拟合例题,最小二乘法曲线拟合题

最小二乘法曲线拟合题

最小二乘法拟合例题,最小二乘法曲线拟合题

文章插图
close all;clear;clc;
x=[0,2.20,2.76,3.26,4.07,4.73,5.47,6.30,6.90,7.82,8.30,8.70,9.50];
y=[0,5.05,6.06,7.02,8.03,8.98,10.05,11.01,12.02,13.08,13.93,14.09,15.10];
figure(1),plot(x,y,'r*');xlabel('x');ylabel('y'); hold on;
nihe=polyfit(x,y,3);%3指三次拟合
syms u;
f=sum(nihe.*[u^3 u^2 u 1])%得到f就是拟合出来的函数,系数是以分数表示的,
%你可以用 vpa(nihe,n)来粗略显示结果 。
xi_shu=vpa(nihe,6)%xi_shu各数依次是u^3、u^2、u的系数和最后的常数项
X=linspace(0,10,500);
Y=subs(f,{'u'},{X});
plot(X,Y);
以上就是所需的程序,希望对楼主有助,嘿嘿,若有疑问尽管问我,QQ1079445967我不在就发邮件吧
另附图片:
求教用matlab实现最小二乘法拟合直线
最小二乘法拟合例题,最小二乘法曲线拟合题

文章插图
rt=[1 1.4 1.6 2 2.4 2.6 3 3.6 4 4.6 5 6];
y=[0.264241,0.408167,0.475069,0.593994,0.691559,0.732615, ...
0.800852,0.874311,0.908422,0.94371,0.959572,0.982649];
p=polyfit(log(rt),log(y),1) % 多项式拟合,取1次就是直线 。结果p是多项式系数
xx=1:.1:6;
yy=exp( polyval(p,log(xx) ) );% 求多项式的值,1次的话,2个系数,相当于y=p(1)*x+p(2)
plot(rt,y,'o',xx,yy);% 画图,原来的点用圈表示 。
我试了一下,用直线拟合的不是很好,用二次多项式拟合就好多了 。
最小二乘法曲线拟合公式
最小二乘法拟合例题,最小二乘法曲线拟合题

文章插图
老弟,公式打不出来的
一般都是用matlab搞定的,它里面有现成的函数供使用的
典型程序解析:
x=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];%input xi data
y=[1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; % input yi data
n=2; % polynomial order
p=polyfit(x, y, n)% polyfit 的输出是一个多项式系数的行向量(拟合二项式的系数)
ezplot('-9.8108*x*x+20.1293*x-0.0317')%对拟合的函数作图
【最小二乘法拟合例题,最小二乘法曲线拟合题】xi=linspace(0,1,100); % x-axis data for plotting
z=polyval(p, xi);% 为了计算在xi数据点的多项式值,调用MATLAB的函数polyval
plot(x,y, 'o' ,x,y,xi,z,':')%在同一个图形里看他们的拟合程度
典型例题:对以下数据分别作二次,三次多项式拟合,并画出图形.
x=1:16;
y=[4, 6.4, 8, 8.4, 9.28, 9.5, 9.7, 9.86, 10, 10.2, 10.32, 10.42, 10.5, 10.55, 10.58, 10.6];
源程序:二次多项式拟合
x=1:1:16;
y=[4, 6.4, 8, 8.4, 9.28, 9.5, 9.7, 9.86, 10, 10.2, 10.32, 10.42, 10.5, 10.55, 10.58, 10.6];
a=polyfit(x,y,2)
a =
-0.0445 1.0711 4.3252
ezplot('-0.0445*x^2+1.0711*x+4.3252')
三次多项式拟合
x=1:1:16;
y=[4, 6.4, 8, 8.4, 9.28, 9.5, 9.7, 9.86, 10, 10.2, 10.32, 10.42, 10.5, 10.55, 10.58, 10.6];
a=polyfit(x,y,3)
a =
0.0060 -0.1963 2.1346 2.5952
ezplot('0.0060*x^3-0.1963*x^2+2.1346*x+2.5952')
请问怎么用最小二乘法 matlab编程拟合 求直线斜率
最小二乘法拟合例题,最小二乘法曲线拟合题

文章插图
rt=[1 1.4 1.6 2 2.4 2.6 3 3.6 4 4.6 5 6];
>> y=[0.264241 0.408167 0.475069 0.593994 0.691559 0.732615 0.800852 0.874311 0.908422 0.94371 0.959572 0.982649];
>> A=polyfit(rt,y,2)
z=polyval(A,rt);
plot(rt,y,'k+',rt,z,'r')
A = -0.0391 0.4073 -0.0800
也就是结果为y=-0.0391*x^2+0.4073*x-0.0800,上面(rt,y,2)的2是指拟合多项式次数为2;
如果是直线的话2改成1就可以了 。