原文地址:matlab概率统计工具箱基本函数作者:荷戈士4.5.4 方差 命令 求样本方差 函数 var 格式 d=var(x) %var(x)=,若x为向量,则返回向量的样本方差. d=var(a) %a为矩阵,则d为a的列向量的样本方差构成的行向量. d=var(x, 1) %返回向量(矩阵)x的简单方差(即置前因子为的方差) d=var(x, w) %返回向量(矩阵)x的以w为权重的方差 命令 求标准差 函数 std 格式 std(x) %返回向量(矩阵)x的样本标准差(置前因子为)即: std(x,1) %返回向量(矩阵)x的标准差(置前因子为) std(x, 0) %与std (x)相同 std(x, flag, dim) %返回向量(矩阵)中维数为dim的标准差值,其中flag=0时,置前因子为;否则置前因子为. 例4-41 求下列样本的样本方差和样本标准差,方差和标准差 14.70 15.21 14.90 15.32 15.32 解: x=[14.7 15.21 14.9 14.91 15.32 15.32]; dx=var(x,1) %方差 dx = 0.0559 sigma=std(x,1) %标准差 sigma = 0.2364 dx1=var(x) %样本方差 dx1 = 0.0671 sigma1=std(x) %样本标准差 sigma1 = 0.2590 命令 忽略nan的标准差 函数 nanstd 格式 y = nanstd(x) %若x为含有元素nan的向量,则返回除nan外的元素的标准差,若x为含元素nan的矩阵,则返回各列除nan外的标准差构成的向量. 例4-42  m=magic(3) %产生3阶魔方阵 m = 8 1 6 3 5 7 4 9 2  m([1 6 8])=[nan nan nan] %替换3阶魔方阵中第1,6,8个元素为nan m = nan 1 6 3 5 nan 4 nan 2  y=nanstd(m) %求忽略nan的各列向量的标准差 y = 0.7071 2.8284 2.8284  x=[1 5]; %忽略nan的第2列元素  y2=std(x) %验证第2列忽略nan元素的标准差 y2 = 2.8284 命令 样本的偏斜度 函数 skewness 格式 y = skewness(x) %x为向量,返回x的元素的偏斜度;x为矩阵,返回x各列元素的偏斜度构成的行向量. y = skewness(x,flag) %flag=0表示偏斜纠正,flag=1(默认)表示偏斜不纠正. 说明偏斜度样本数据关于均值不对称的一个测度,如果偏斜度为负,说明均值左边的数据比均值右边的数据更散;如果偏斜度为正,说明均值右边的数据比均值左边的数据更散,因而正态分布的偏斜度为 0;偏斜度是这样定义的: 其中:μ为x的均值,σ为x的标准差,e(.)为期望值算子 例4-43  x=randn([5,4]) x = 0.2944 0.8580 -0.3999 0.6686 -1.3362 1.2540 0.6900 1.1908 0.7143 -1.5937 0.8156 -1.2025 1.6236 -1.4410 0.7119 -0.0198 -0.6918 0.5711 1.2902 -0.1567  y=skewness(x) y = -0.0040 -0.3136 -0.8865 -0.2652  y=skewness(x,0) y = -0.0059 -0.4674 -1.3216 -0.3954 admin 2007-11-29 20:48 4.5.5 常见分布的期望和方差 命令 均匀分布(连续)的期望和方差 函数 nifstat 格式 [m,v] = nifstat(a,b) %a,b为标量时,就是区间上均匀分布的期望和方差,a,b也可为向量或矩阵,则m,v也是向量或矩阵. 例4-44 a = 1:6; b = 2.*a; [m,v] = nifstat(a,b) m = 1.5000 3.0000 4.5000 6.0000 7.5000 9.0000 v = 0.0833 0.3333 0.7500 1.3333 2.0833 3.0000 命令 正态分布的期望和方差 函数 normstat 格式 [m,v] = normstat(mu,sigma) %mu,sigma可为标量也可为向量或矩阵,则m=mu,v=sigma2. 例4-45  n=1:4;  [m,v]=normstat(n *n,n *n) m = 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 v = 1 4 9 16 4 16 36 64 9 36 81 144 16 64 144 256 命令 二项分布的均值和方差 函数 binostat 格式 [m,v] = binostat(n,p) %n,p为二项分布的两个参数,可为标量也可为向量或矩阵. 例4-46 n = logspace(1,5,5) n = 10 100 1000   [m,v] = binostat(n,1.n) m = 1 1 1 1 1 v = 0.9000 0.9900 0.9990 0.9999 1.0000 [m,v] = binostat(n,12) m = 5 50 500 5000  v = 1.0e+04 * 0.0003 0.0025 0.0250 0.2500 2.5000 常见分布的期望和方差见下表4-6. 表4-6 常见分布的均值和方差 函数名 调用形式 注 释 nifstat [m,v]= nifstat ( a, b) 均匀分布(连续)的期望和方差,m为期望,v为方差 nidstat [m,v]= nidstat (n) 均匀分布(离散)的期望和方差 expstat [m,v]=expstat (p, lambda) 指数分布的期望和方差 normstat [m,v]=normstat(m ,sigma) 正态分布的期望和方差 chi2stat [m,v]=chi2stat (x, n) 卡方分布的期望和方差 tstat [m,v]=tstat ( n) t分布的期望和方差 fstat [m,v]=fstat ( n1, n2) f分布的期望和方差 gamstat [m,v]=gamstat ( a, b) 分布的期望和方差 betastat [m,v]=betastat ( a, b) 分布的期望和方差 lognstat [m,v]=lognstat ( m , sigma) 对数正态分布的期望和方差 nbinstat [m,v]=nbinstat ( r, p) 负二项式分布的期望和方差 ncfstat [m,v]=ncfstat ( n1, n2, delta) 非中心f分布的期望和方差 nctstat [m,v]=nctstat ( n, delta) 非中心t分布的期望和方差 ncx2stat [m,v]=ncx2stat ( n, delta) 非中心卡方分布的期望和方差 raylstat [m,v]=raylstat ( b) 瑞利分布的期望和方差 weibstat [m,v]=weibstat ( a, b) 韦伯分布的期望和方差 binostat [m,v]=binostat (n,p) 二项分布的期望和方差 geostat [m,v]=geostat (p) 几何分布的期望和方差 hygestat [m,v]=hygestat (m,k,n) 超几何分布的期望和方差 poisstat [m,v]=poisstat (lambda) 泊松分布的期望和方差 4.5.6 协方差与相关系数 命令 协方差 函数 cov 格式 cov(x) %求向量x的协方差 cov(a) %求矩阵a的协方差矩阵,该协方差矩阵的对角线元素是a的各列的方差,即:var(a)=diag(cov(a)). cov(x,y) %x,y为等长列向量,等同于cov([x y]). 例4-47  x=[0 -1 1] ;y=[1 2 2] ;  c1=cov(x) %x的协方差 c1 = 1  c2=cov(x,y) %列向量x,y的协方差矩阵,对角线元素为各列向量的方差 c2 = 1.0000 0 0 0.3333  a=[1 2 3;4 0 -1;1 7 3] a = 1 2 3 4 0 -1 1 7 3  c1=cov(a) %求矩阵a的协方差矩阵 c1 = 3.0000 -4.5000 -4.0000 -4.5000 13.0000 6.0000 -4.0000 6.0000 5.3333  c2=var(a(:,1)) %求a的第1列向量的方差 c2 = 3  c3=var(a(:,2)) %求a的第2列向量的方差 c3 = 13  c4=var(a(:,3)) c4 = 5.3333 命令 相关系数 函数 corrcoef 格式 corrcoef(x,y) %返回列向量x,y的相关系数,等同于corrcoef([x y]). corrcoef (a) %返回矩阵a的列向量的相关系数矩阵 例4-48  a=[1 2 3;4 0 -1;1 3 9] a = 1 2 3 4 0 -1 1 3 9  c1=corrcoef(a) %求矩阵a的相关系数矩阵 c1 = 1.0000 -0.9449 -0.8030 -0.9449 1.0000 0.9538 -0.8030 0.9538 1.0000  c1=corrcoef(a(:,2),a(:,3)) %求a的第2列与第3列列向量的相关系数矩阵 c1 = 1.0000 0.9538 0.9538 1.0000 4.6 统计作图 4.6.1 正整数的频率表 命令 正整数的频率表 函数 tab late 格式 table = tab late(x) %x为正整数构成的向量,返回3列:第1列中包含x的值第2列为这些值的个数,第3列为这些值的频率. 例4-49  a=[1 2 2 5 6 3 8] a = 1 2 2 5 6 3 8  tab late(a) val e co nt percent 1 1 14.29% 2 2 28.57% 3 1 14.29% 4 0 0.00% 5 1 14.29% 6 1 14.29% 7 0 0.00% 8 1 14.29% 4.6.2 经验累积分布函数图形 函数 cdfplot 格式 cdfplot(x) %作样本x(向量)的累积分布函数图形 h = cdfplot(x) %h表示曲线的环柄 [h,stats] = cdfplot(x) %stats表示样本的一些特征 例4-50  x=normrnd (0,1,50,1);  [h,stats]=cdfplot(x) h = 3.0013 stats = min: -1.8740 %样本最小值 max: 1.6924 %最大值 mean: 0.0565 %平均值 median: 0.1032 %中间值 std: 0.7559 %样本标准差 4.6.3 最小二乘拟合直线 函数 lsline 格式 lsline %最小二乘拟合直线 h = lsline %h为直线的句柄 例4-51  x = [2 3.4 5.6 8 11 12.3 13.8 16 18.8 19.9] ;  plot(x, + )  lsline 4.6.4 绘制正态分布概率图形 函数 normplot 格式 normplot(x) %若x为向量,则显示正态分布概率图形,若x为矩阵,则显示每一列的正态分布概率图形. h = normplot(x) %返回绘图直线的句柄 说明 样本数据在图中用"+"显示;如果数据来自正态分布,则图形显示为直线,而其它分布可能在图中产生弯曲. 例4-53  x=normrnd(0,1,50,1);  normplot(x) 图4-12 4.6.5 绘制威布尔(weib ll)概率图形 函数 weibplot 格式 weibplot(x) %若x为向量,则显示威布尔(weib ll)概率图形,若x为矩阵,则显示每一列的威布尔概率图形. h = weibplot(x) %返回绘图直线的柄 说明绘制威布尔(weib ll)概率图形的目的是用图解法估计来自威布尔分布的数据x,如果x是威布尔分布数据,其图形是直线的,否则图形中可能产生弯曲. 例4-54  r = weibrnd(1.2,1.5,50,1);  weibplot(r) 图4-13 4.6.6 样本数据的盒图 函数 boxplot 格式 boxplot(x) %产生矩阵x的每一列的盒图和"须"图,"须"是从盒的尾部延伸出来,并表示盒外数据长度的线,如果"须"的外面没有数据,则在"须"的底部有一个点. boxplot(x,notch) %当notch=1时,产生一凹盒图,notch=0时产生一矩箱图. boxplot(x,notch, sym ) %sym表示图形符号,默认值为"+". boxplot(x,notch, sym ,vert) %当vert=0时,生成水平盒图,vert=1时,生成竖直盒图(默认值vert=1). boxplot(x,notch, sym ,vert,whis) %whis定义"须"图的长度,默认值为1.5,若whis=0则boxplot函数通过绘制sym符号图来显示盒外的所有数据值. 例4-55 x1 = normrnd(5,1,100,1); x2 = normrnd(6,1,100,1); x = [x1 x2];  boxplot(x,1, g+ ,1,0) 图4-14 4.6.7 给当前图形加一条参考线 函数 refline 格式 refline(slope,intercept) % slope表示直线斜率,intercept表示截距 refline(slope) slope=[a b],图中加一条直线:y=b+ax. 例4-56 y = [3.2 2.6 3.1 3.4 2.4 2.9 3.0 3.3 3.2 2.1 2.6] ; plot(y, + ) refline(0,3) 图4-15 4.6.8 在当前图形中加入一条多项式曲线 函数 refc rve 格式 h = refc rve(p) %在图中加入一条多项式曲线,h为曲线的环柄,p为多项式系数向量,p=[p1,p2, p3..,pn],其中p1为最高幂项系数. 例4-57 火箭的高度与时间图形,加入一条理论高度曲线,火箭初速为100m秒. h = [85 162 230 289 339 381 413 437 452 458 456 440 400 356]; plot(h, + ) refc rve([-4.9 100 0]) 图4-16 4.6.9 样本的概率图形 函数 capaplot 格式 p = capaplot(data,specs) ta为所给样本数据,specs指定范围,p表示在指定范围内的概率. 说明 该函数返回来自于估计分布的随机变量落在指定范围内的概率 例4-58  data=normrnd (0,1,30,1);  p=capaplot(data,[-2,2]) p = 0.9199 图4-17 4.6.10 附加有正态密度曲线的直方图 函数 histfit 格式 histfit(data) ta为向量,返回直方图 和正态曲线. histfit(data,nbins) % nbins指定bar的个数, 缺省时为data中数据个数的平方根. 例4-59 r = normrnd (10,1,100,1); histfit(r) 4.6.11 在指定的界线之间画正态密度曲线 函数 normspec 格式 p = normspec(specs,m ,sigma) %specs指定界线,m ,sigma为正态分布的参数p 为样本落在上,下界之间的概率. 例4-60 normspec([10 inf],11.5,1.25) 图4-19 admin 2007-11-29 20:50 4.7 参数估计 4.7.1 常见分布的参数估计 命令 β分布的参数a和b的最大似然估计值和置信区间 函数 betafit 格式 phat=betafit(x) [phat,pci]=betafit(x,alpha) 说明 phat为样本x的β分布的参数a和b的估计量 pci为样本x的β分布参数a和b的置信区间,是一个2×2矩阵,其第1例为参数a的置信下界和上界,第2例为b的置信下界和上界,alpha为显著水平,(1-α)×100%为置信度. 例4-61 随机产生100个β分布数据,相应的分布参数真值为4和3.则4和3的最大似然估计值和置信度为99%的置信区间为: 解: x = betarnd (4,3,100,1); %产生100个β分布的随机数 [phat,pci] = betafit(x,0.01) %求置信度为99%的置信区间和参数a,b的估计值 结果显示 phat = 3.9010 2.6193 pci = 2.5244 1.7488 5.2776 3.4898 说明 估计值3.9010的置信区间是[2.5244 5.2776],估计值2.6193的置信区间是[1.7488 3.4898]. 命令 正态分布的参数估计 函数 normfit 格式 [m hat,sigmahat,m ci,sigmaci] = normfit(x) [m hat,sigmahat,m ci,sigmaci] = normfit(x,alpha) 说明 m hat,sigmahat分别为正态分布的参数μ和σ的估计值,m ci,sigmaci分别为置信区间,其置信度为;alpha给出显著水平α,缺省时默认为0.05,即置信度为95%. 例4-62 有两组(每组100个元素)正态随机数据,其均值为10,均方差为2,求95%的置信区间和参数估计值. 解:r = normrnd (10,2,100,2); %产生两列正态随机数据 [m ,sigma,m ci,sigmaci] = normfit(r) 则结果为 m = 10.1455 10.0527 %各列的均值的估计值 sigma = 1.9072 2.1256 %各列的均方差的估计值 m ci = 9.7652 9.6288 10.5258 10.4766 sigmaci = 1.6745 1.8663 2.2155 2.4693 说明 m ci,sigmaci中各列分别为原随机数据各列估计值的置信区间,置信度为95%. 例4-63 分别使用金球和铂球测定引力常数 (1)用金球测定观察值为:6.683 6.681 6.676 6.678 6.679 6.672 (2)用铂球测定观察值为:6.661 6.661 6.667 6.667 6.664 设测定值总体为,μ和σ为未知.对(1),(2)两种情况分别求μ和σ的置信度为0.9的置信区间. 解:建立m文件:lx0833.m x=[6.683 6.681 6.676 6.678 6.679 6.672]; y=[6.661 6.661 6.667 6.667 6.664]; [m ,sigma,m ci,sigmaci]=normfit(x,0.1) %金球测定的估计 [mu,sigma,muci,sigmaci]=normfit(y,0.1) %铂球测定的估计 运行后结果显示如下: m = 6.6782 sigma = 0.0039 m ci = 6.6750 6.6813 sigmaci = 0.0026 0.0081 mu = 6.6640 sigma = 0.0030 muci = 6.6611 6.6669 sigmaci = 0.0019 0.0071 由上可知,金球测定的μ估计值为6.6782,置信区间为[6.6750,6.6813]; σ的估计值为0.0039,置信区间为[0.0026,0.0081]. 泊球测定的μ估计值为6.6640,置信区间为[6.6611,6.6669]; σ的估计值为0.0030,置信区间为[0.0019,0.0071]. 命令 利用mle函数进行参数估计 函数 mle 格式 phat=mle %返回用dist指定分布的最大似然估计值 [phat, pci]=mle %置信度为95% [phat, pci]=mle %置信度由alpha确定 [phat, pci]=mle %仅用于二项分布,pl为试验次数. 说明 dist为分布函数名,如:beta(分布),bino(二项分布)等,x为数据样本,alpha为显著水平α,为置信度. 例4-64  x=binornd(20,0.75) %产生二项分布的随机数 x = 16  [p,pci]=mle( bino ,x,0.05,20) %求概率的估计值和置信区间,置信度为95% p = 0.8000 pci = 0.5634 0.9427 常用分布的参数估计函数 表4-7 参数估计函数表 函数名 调 用 形 式 函 数 说 明 binofit phat= binofit(x, n) [phat, pci] = binofit(x,n) [phat, pci]= binofit (x, n, alpha) 二项分布的概率的最大似然估计 置信度为95%的参数估计和置信区间 返回水平α的参数估计和置信区间 poissfit lambdahat=poissfit(x) [lambdahat, lambdaci] = poissfit(x) [lambdahat, lambdaci]= poissfit (x, alpha) 泊松分布的参数的最大似然估计 置信度为95%的参数估计和置信区间 返回水平α的λ参数和置信区间 normfit [m hat,sigmahat,m ci,sigmaci] = normfit(x) [m hat,sigmahat,m ci,sigmaci] = normfit(x, alpha) 正态分布的最大似然估计,置信度为95% 返回水平α的期望,方差值和置信区间 betafit phat =betafit (x) [phat, pci]= betafit (x, alpha) 返回β分布参数a和 b的最大似然估计 返回最大似然估计值和水平α的置信区间 nifit [ahat,bhat] = nifit(x) [ahat,bhat,aci,bci] = nifit(x) [ahat,bhat,aci,bci]= nifit(x, alpha) 均匀分布参数的最大似然估计 置信度为95%的参数估计和置信区间 返回水平α的参数估计和置信区间 expfit m hat =expfit(x) [m hat,m ci] = expfit(x) [m hat,m ci] = expfit(x,alpha) 指数分布参数的最大似然估计 置信度为95%的参数估计和置信区间 返回水平α的参数估计和置信区间 gamfit phat =gamfit(x) [phat,pci] = gamfit(x) [phat,pci] = gamfit(x,alpha) γ分布参数的最大似然估计 置信度为95%的参数估计和置信区间 返回最大似然估计值和水平α的置信区间 weibfit phat = weibfit(x) [phat,pci] = weibfit(x) [phat,pci] = weibfit(x,alpha) 韦伯分布参数的最大似然估计 置信度为95%的参数估计和置信区间 返回水平α的参数估计及其区间估计 mle phat = mle( dist ,data) [phat,pci] = mle( dist ,data) [phat,pci] = mle( dist ,data,alpha) [phat,pci] = mle( dist ,data,alpha,p1) 分布函数名为dist的最大似然估计 置信度为95%的参数估计和置信区间 返回水平α的最大似然估计值和置信区间 仅用于二项分布,pl为试验总次数 说明各函数返回已给数据向量x的参数最大似然估计值和置信度为(1-α)×100%的置信区间.α的默认值为0.05,即置信度为95%. 4.7.2 非线性模型置信区间预测 命令 高斯-牛顿法的非线性最小二乘数据拟合 函数 nlinfit 格式 beta = nlinfit(x,y,fun,beta0) %返回在fun中描述的非线性函数的系数.fun为用户提供形如的函数,该函数返回已给初始参数估计值β和自变量x的y的预测值. [beta,r,j] = nlinfit(x,y,fun,beta0) ta为拟合系数,r为残差,j为jacobi矩阵,beta0为初始预测值. 说明 若x为矩阵,则x的每一列为自变量的取值,y是一个相应的列向量.如果fun中使用了@,则表示函数的柄. 例4-65 调用matlab提供的数据文件reaction.mat load reaction betafit = nlinfit(reactants,rate,@ho gen,beta) betafit = 1.2526 0.0628 0.0400 0.1124 1.1914 命令 非线性模型的参数估计的置信区间 函数 nlparci 格式 ci = nlparci(beta,r,j) %返回置信度为95%的置信区间,beta为非线性最小二乘法估计的参数值,r为残差,j为jacobian矩阵.nlparci可以用nlinfit函数的输出作为其输入. 例4-66 调用matlab中的数据reaction. load reaction [beta,resids,j] = nlinfit(reactants,rate, ho gen ,beta) beta = 1.2526 0.0628 0.0400 0.1124 1.1914 resids = 0.1321 -0.1642 -0.0909 0.0310 0.1142 0.0498 -0.0262 0.3115 -0.0292 0.1096 0.0716 -0.1501 -0.3026 j = 6.8739 -90.6536 -57.8640 -1.9288 0.1614 3.4454 -48.5357 -13.6240 -1.7030 0.3034 5.3563 -41.2099 -26.3042 -10.5217 1.5095 1.6950 0.1091 0.0186 0.0279 1.7913 2.2967 -35.5658 -6.0537 -0.7567 0.2023 11.8670 -89.5655 -170.1745 -8.9566 0.4400 4.4973 -14.4262 -11.5409 -9.3770 2.5744 4.1831 -41.7896 -16.8937 -5.7794 1.0082 11.8286 -51.3721 -154.1164 -27.7410 1.5001 9.1514 -25.5948 -76.7844 -30.7138 2.5790 3.3373 0.0900 0.0720 0.1080 3.5269 9.3663 -102.0611 -107.4327 -3.5811 0.2200 4.7512 -24.4631 -16.3087 -10.3002 2.1141 ci = nlparci(beta,resids,j) ci = -0.7467 3.2519 -0.0377 0.1632 -0.0312 0.1113 -0.0609 0.2857 -0.7381 3.1208 命令 非线性拟合和显示交互图形 函数 nlintool 格式 nlintool(x,y,fun,beta0) %返回数据(x,y)的非线性曲线的预测图形,它用2条红色曲线预测全局置信区间.beta0为参数的初始预测值,置信度为95%. nlintool(x,y,fun,beta0,alpha) %置信度为(1-alpha)×100% 例4-67 调用matlab数据  load reaction  nlintool(reactants,rate, ho gen ,beta) 图4-20 命令 非线性模型置信区间预测 函数 nlpredci 格式 ypred = nlpredci(fun,inp ts,beta,r,j) % ypred 为预测值,fun与前面相同,beta为给出的适当参数,r为残差,j为jacobian矩阵,inp ts为非线性函数中的独立变量的矩阵值. [ypred,delta] = nlpredci(fun,inp ts,beta,r,j) lta为非线性最小二乘法估计的置信区间长度的一半,当r长度超过beta的长度并且j的列满秩时,置信区间的计算是有效的.[ypred-delta,ypred+delta]为置信度为95%的不同步置信区间. ypred = nlpredci(fun,inp ts,beta,r,j,alpha, simopt , predopt ) %控制置信区间的类型,置信度为100(1-alpha)%. simopt = on 或 off (默认值)分别表示同步或不同步置信区间. predopt = c rve (默认值) 表示输入函数值的置信区间, predopt = observation 表示新响应值的置信区间.nlpredci可以用nlinfit函数的输出作为其输入. 例4-68 续前例,在[100 300 80]处的预测函数值ypred和置信区间一半宽度delta  load reaction  [beta,resids,j] = nlinfit(reactants,rate,@ho gen,beta);  [ypred,delta] = nlpredci(@ho gen,[100 300 80],beta,resids,j) 结果为: ypred = 10.9113 delta = 0.3195 命令 非负最小二乘 函数 nnls(该函数已被函数lsnonneg代替,在6.0版中使用nnls将产生警告信息) 格式 x = nnls(a,b) %最小二乘法判断方程a×x=b的解,返回在x≥0的条件下使得最小的向量x,其中a和b必须为实矩阵或向量. x = nnls(a,b,tol) % tol为指定的误差 [x,w] = nnls(a,b) %当x中元素时,,当时. [x,w] = nnls(a,b,tol) 例4- 69  a =[0.0372 0.2869;0.6861 0.7071;0.6233 0.6245;0.6344 0.6170];  b=[0.8587 0.1781 0.0747 0.8405] ;  x=nnls(a,b) warning: nnls is obsolete and has been replaced by lsqnonneg. nnls now calls lsqnonneg which ses the following syntax: [x,resnorm,residual,exitflag,output,lambda] =lsqnonneg(a,b,x0, options) ; use optimset to define optimization options, or type edit nnls to view the code sed here. nnls will be removed in the f t re; please se nnls with the new syntax. x = 0 0.6929 命令 有非负限制的最小二乘 函数 lsqnonneg 格式 x = lsqnonneg(c,d) %返回在x≥0的条件下使得最小的向量x,其中c和d必须为实矩阵或向量. x = lsqnonneg(c,d,x0) % x0为初始点,x0≥0 x = lsqnonneg(c,d,x0,options) %options为指定的优化参数,参见options函数. [x,resnorm] = lsqnonneg(...) %resnorm表示norm(c*x-d).^2的残差 [x,resnorm,resid al] = lsqnonneg(...) %resid al表示c*x-d的残差 例4- 70  a =[0.0372 0.2869;0.6861 0.7071;0.6233 0.6245;0.6344 0.6170];  b=[0.8587 0.1781 0.0747 0.8405] ;  [x,resnorm,resid al] = lsqnonneg(a,b) x = 0 0.6929 resnorm = 0.8315 resid al = 0.6599 -0.3119 -0.3580 0.4130 4.7.3 对数似然函数 命令 负分布的对数似然函数 函数 betalike 格式 logl=betalike(params,data) %返回负分布的对数似然函数,params为向量[a, b],是分布的参数,data为样本数据. [logl,info]=betalike(params,data) %返回fisher逆信息矩阵info.如果params 中输入的参数是极大似然估计值,那么info的对角元素为相应参数的渐近方差. 说明 betalike是分布最大似然估计的实用函数.似然函数假设数据样本中,所有的元素相互独立.因为betalike返回负对数似然函数,用fmins函数最小化betalike与最大似然估计的功能是相同的. 例4-71 本例所取的数据是随机产生的分布数据. r = betarnd(3,3,100,1); [logl,info] = betalike([2.1234,3.4567],r) logl = -12.4340 info = 0.1185 0.1364 0.1364 0.2061 命令 负分布的对数似然估计 函数 gamlike 格式 logl=gamlike(params,data) %返回由给定样本数据data确定的分布的参数为params(即[a,b])的负对数似然函数值 [logl,info]=gamlike(params,data) %返回fisher逆信息矩阵info.如果params中输入的参数是极大似然估计值,那么info的对角元素为相应参数的渐近方差. 说明 gamlike是分布的最大似然估计函数.因为gamlike返回对数似然函数值,故用fmins函数将gamlike最小化后,其结果与最大似然估计是相同的. 例4-72 r=gamrnd(2,3,100,1); [logl,info]=gamlike([2.4212, 2.5320],r) logl = 275.4602 info = 0.0453 -0.0538 -0.0538 0.0867 命令 负正态分布的对数似然函数 函数 normlike 格式 logl=normlike(params,data) %返回由给定样本数据data确定的,负正态分布的,参数为params(即[m ,sigma])的对数似然函数值. [logl,info]=normlike(params,data) %返回fisher逆信息矩阵info.如果params中输入的参数是极大似然估计值,那么info的对角元素为相应参数的渐近方差. 命令 威布尔分布的对数似然函数 函数 weiblike 格式 logl = weiblike(params,data) %返回由给定样本数据data确定的,威布尔分布的,参数为params(即[a,b])的对数似然函数值. [logl,info]=weiblike(params,data) %返回fisher逆信息矩阵info.如果params中输入的参数是极大似然估计值,那么info的对角元素为相应参数的渐近方差. 说明 威布尔分布的负对数似然函数定义为 例4-73 r=weibrnd(0.4,0.98,100,1);