下面程序你参考一下:
% curvefitLogistic.m
% 在实际应用时, 只有在确认所得的生物数据具有 logistic 曲线规律, 拟合的结果才
% 有意义,下面这组数据具有 logistic 曲线规律!
N=[3929 5308 7240 9638 12866 17069 23192 31443 38558 50156 62948 ...
75995 91972 105711 122775 131669 150697 179323 203185 226500]
t=1790:10:1980
% 画原始数据图
plot(t,N,t,N,'r*')
hold on
% Logistic 函数的构造
func = @(beta,x) beta(1)./(1+(beta(1)/N(1)-1)*exp(-beta(2)*(x-1790)))
% 关键:寻优初值的选取:beta0(1)为函数的最大值,beta0(1)尽可能小,这里直接取 0
% 因为:现在在计算机上进行 logistic 曲线拟合, 多采用 Guass一Newton 算法和 Guass-
% Newton 的改进算法 Marquardt 法, 这两种算法只有在选取一组与实际值较接近的初
% 值K, a, b 时, 迭代过程的收敛性才好, 即找到的K 、a 、b 的值能使 R 值最小!
beta0 = [max(N) 0]
% lsqcurvefit 调用
[beta,resnorm,residual,exitflag,output]= lsqcurvefit(func,beta0,t,N)
邻接表(Adjacency List):是图的一种链式存储结构。
在邻接表中,对图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点vi的邻接表由两部分构成:表头结头、表结点组成的单链表。
邻接表的表示意义为:对于图G=(V,E),若(i,j)∈E,则第i个表头结点的单链表上有一个adjvex为j的表结头。