方法一:
1、最常用的是多项式拟合,采用polyfit函数,在命令窗口输入自变量x和因变量y。
2、以二次多项式拟合为例,输入p=polyfit(x,y,2),如果想拟合更高次的多项式,更换括号内数字即可。
通过计算获得的p,是一个数组,对应了多项式的各项系数,以图中为例,拟合出的多项式为:y=0.9962x2+0.0053x-0.2833。
方法二:
1、首先,在上方工具栏选取APPS,点击curvefitting。输入自变量x和因变量y。
2、选择拟合方式,有多项式拟合polynomial,高斯拟合gaussian,幂指数拟合power等等,本次以多项式拟合为例。
3、通过数据计算,可以获得曲线参数(曲线函数中的各项系数),从而实现曲线拟合。
function fxnihe2()format long
clc
clear
close all
x=[1970 1971 1972 1973 1974 1975 1976 1977 1978 ...
1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 ...
1989 1990 1991 1992 1993 1994 丛仔 1995 1996 ...
1997 1998 1999 2000 2001 2002 2003 2004 2005 ...
2006 2007 2008 铅宽 2009 2010 2011 2012]
y=[82992, 85229 ,87177,89211, 90859 ,92420 , 93717, 94974 ,96259 , 槐郑亮...
97542,98705 ,100072 , 101654 , 103008 ,104357 , 105851 ,107507 ,...
109300,111026, 112704 , 114333, 115823, 117171 , 118517 ,119850 ,...
121121, 122389, 123626 ,124761 , 125786 , 126743 ,127627 , 128453, ...
129227 , 129988 , 130756 , 131448 , 132129 ,132802 ,133450 ,134091 ,...
134735, 135404]
%x=x/mean(x)
%y=y/mean(y)
x0=[3.42*mean(y),100,3.73/mean(x)]
LB=[]
UB=[]
z=lsqcurvefit(@(x,t) curve(x,t),x0,x,y,LB,UB)
disp('参数如下')
zz=z
yy=curve(zz,x)
plot(x,y,'k*')
hold on
plot(x,yy,'r')
legend('原始数据散点图','拟合后函数曲线图')
%残差
disp(' 原始数值 拟合数值 两者之间差值')
disp([y',yy',yy'-y'])
disp('残差平方和')
v=sum((yy-y).^2)
function y=curve(x,t)
a=x(1)b=x(2)r=x(3)
y=a./(1+b*exp(-r*t))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)