算法总结.docx

上传人:b****2 文档编号:18043885 上传时间:2023-08-07 格式:DOCX 页数:13 大小:413.24KB
下载 相关 举报
算法总结.docx_第1页
第1页 / 共13页
算法总结.docx_第2页
第2页 / 共13页
算法总结.docx_第3页
第3页 / 共13页
算法总结.docx_第4页
第4页 / 共13页
算法总结.docx_第5页
第5页 / 共13页
算法总结.docx_第6页
第6页 / 共13页
算法总结.docx_第7页
第7页 / 共13页
算法总结.docx_第8页
第8页 / 共13页
算法总结.docx_第9页
第9页 / 共13页
算法总结.docx_第10页
第10页 / 共13页
算法总结.docx_第11页
第11页 / 共13页
算法总结.docx_第12页
第12页 / 共13页
算法总结.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

算法总结.docx

《算法总结.docx》由会员分享,可在线阅读,更多相关《算法总结.docx(13页珍藏版)》请在冰点文库上搜索。

算法总结.docx

算法总结

单因素方差分析:

1)均衡数据:

p=anoval(x)

返回值p是一个概率,当pα>时接受H0,x为m×r的数据矩阵,x的每一列是一个水平的数据(这里各个水平上的样本容量ni=m)。

另外,还输出一个方差表和一个Box图。

2)非均衡数据

p=anova1(x,group)

x为向量,从第1组到第r组数据依次排列;group为与x同长度的向量,标志x中数据的组别(在与x第i组数据相对应的位置处输入整数i(i=1,2,……,r)

 

双因素方差分析

p=anova2(x,reps)

其中x不同列的数据表示单一因素的变化情况,不同行中的数据表示另一因素的变化情

况。

如果每种行—列对(“单元”)有不止一个的观测值,则用参数reps来表明每个“单

元”多个观测值的不同标号,即reps给出重复试验的次数t。

例3一种火箭使用了四种燃料、三种推进器,进行射程试验,对于每种燃料与每

种推进器的组合作一次试验,得到试验数据如表8。

问各种燃料之间及各种推进器之间

有无显著差异?

解记燃料为因素A,它有4个水平,水平效应为αi,i=1,2,3,4。

推进器为因素B,

它有3个水平,水平效应为βj,j=1,2,3。

我们在显著性水平α=0.05下检验

编写如下的Matlab程序:

x=[58.256.265.3

49.154.151.6

60.170.939.2

75.858.248.7];

[p,t,st]=anova2(x)

求得p=0.44910.7387,表明各种燃料和各种推进器之间的差异对于火箭射

程无显著影响。

例4一火箭使用了4种燃料,3种推进器作射程试验,每种燃料与每种推进器的

组合各发射火箭2次,得到如表9结果。

试在水平0.05下,检验不同燃料(因素A)、不同推进器(因素B)下的射程是

否有显著差异?

交互作用是否显著?

解编写程序如下:

clc,clear

x0=[58.2,52.656.2,41.265.3,60.8

49.1,42.854.1,50.551.6,48.4

60.1,58.370.9,73.239.2,40.7

75.8,71.558.2,51.048.7,41.4];

x1=x0(:

1:

2:

5);x2=x0(:

2:

2:

6);

fori=1:

4

x(2*i-1,:

)=x1(i,:

);

x(2*i,:

)=x2(i,:

);

end

[p,t,st]=anova2(x,2)

求得p=0.00350.02600.0001,表明各试验均值相等的概率都为小概率,故

可拒绝均值相等假设。

即认为不同燃料(因素A)、不同推进器(因素B)下的射程有

显著差异,交互作用也是显著的。

回归分析:

多元线性回归:

[b,bint,r,rint,stats]=regress(Y,X,alpha)

alpha为显著性水平(缺省时设定为0.05),b,bint为回归系数估计值和它们的置信区间,r,rint为残差(向量)及其置信区间,stats是用于检验回归模型的统计量,有四个数值,第一个是R^2,第二个是F,第三个是与F对应的概率p,p<α拒绝H0,回归模型成立,第四个是残差的方差s^2

 

一元多项式回归:

(类似插值)

[p,s]=polyfit(x0,y0,n);

x0=17:

2:

29;x0=[x0,x0];

y0=[20.4825.1326.1530.026.120.319.3524.3528.1126.331.426.9225.721.3];

[p,s]=polyfit(x0,y0,2);p

得到

p=-0.20038.9782-72.2150

即a2=-0.2003a1=8.9782a0=-72.2150

polytool(x0,y0,2)

可以得到一个交互式画面

 

多元二项式回归:

rstool(x,y,model,alpha)也会产生交互式画面

linear(线性)

purequadratic(纯二次):

interaction(交叉):

quadratic(完全二次):

编程如下:

x1=[120140190130155175125145180150]';

x2=[10011090150210150250270300250]';

y=[10210012077469326696585]';

x=[x1x2];

rstool(x,y,'purequadratic')

图的左下方有两个下拉式菜单,一个菜单Export用以向Matlab工作区传送数据,包

括beta(回归系数),rmse(剩余标准差),residuals(残差)。

模型

(1)的回归系数和剩余

标准差为

beta=-312.58717.2701-1.7337-0.02280.0037

rmse=16.6436

另一个菜单model用以在上述4个模型中选择,你可以比较一下它们的剩余标准差,

会发现以模型

(2)的rmse=16.6436最小。

非线性回归:

非线性回归是指因变量y对回归系数β1,……βm(而不是自变量)是非线性的。

例4在研究化学动力学反应过程中,建立了一个反应速度和反应物含量的数学模

型,形式为

 

首先,以回归系数和自变量为输入变量,将要拟合的模型写成函数文件

huaxue.m:

functionyhat=huaxue(beta,x);

yhat=(beta(4)*x(:

2)-x(:

3)/beta(5))./(1+beta

(1)*x(:

1)+...

beta

(2)*x(:

2)+beta(3)*x(:

3));

然后,用nlinfit计算回归系数,用nlparci计算回归系数的置信区间,用nlpredci

计算预测值及其置信区间,编程如下:

clc,clear

x0=[18.5547030010

23.792858010

34.82470300120

40.0247080120

52.754708010

614.3910019010

72.541008065

84.3547019065

913.0010030054

108.50100300120

110.0510080120

1211.3228530010

133.13285190120];

x=x0(:

3:

5);

y=x0(:

2);

beta=[0.1,0.05,0.02,1,2]';%回归系数的初值,任意取的

[betahat,r,j]=nlinfit(x,y,@huaxue,beta);%r,j是下面命令用的信息

betaci=nlparci(betahat,r,'jacobian',j);

betaa=[betahat,betaci]%回归系数及其置信区间

[yhat,delta]=nlpredci(@huaxue,x,betahat,r,'jacobian',j)

%y的预测值及其置信区间的半径,置信区间为yhat±delta。

用nlintool得到一个交互式画面,左下方的Export可向工作区传送数据,如剩余标准差等。

使用命令

nlintool(x,y,'huaxue',beta)

可看到画面,并传出剩余标准差rmse=0.1933。

 

逐步回归:

例5水泥凝固时放出的热量y与水泥中4种化学成分x1,x2,x3,x4有关,今测得一

组数据如表5,试用逐步回归来确定一个线性模型:

编写程序如下:

clc,clear

x0=[172666078.5

2129155274.3

31156820104.3

4113184787.6

575263395.9

61155922109.2

7371176102.7

8131224472.5

9254182293.1

102147426115.9

11140233483.8

121166912113.3

131068812109.4];

x=x0(:

2:

5);

y=x0(:

6);

stepwise(x,y)

得到画面后,观察途中p-val值,较大的可以看出显著性不明显,点击去掉他们之后得到新的结果,从新的统计结果可以看出,虽然剩余标准差s(RMSE)没有太大的变化,但是统计量F的值明显增大,因此新的回归模型更好一些,可以求出最终的模型。

 

常用函数

mean(x);求矩阵x的均值

std(x);求矩阵x的标准差

corrcoef(x)求相关系数

cov求协方差

crosstab列联表

geomean几何均值

grpstats分组统计量

harmmean调和均值

kurtosis峰度

Mad中值绝对差

median中值

moment样本模量

anova1单因子方差分析

anova2双因子方差分析

anovan多因子方差分析

polyfit最小二乘多项式拟合

polyval多项式函数的预测值

regress多元线性回归

regstats回归统计量诊断

nlinfit非线性最小二乘数据拟合(牛顿法)

nlparci参数的置信区间

nlpredci预测值的置信区间

signrank符号秩检验

signtest符号检验

ttest单样本t检验

ttest2双样本t检验

ztestz检验

zscore(x)数据标准化

figure创建一个新的图形对象

Subplo生成与控制多个坐标轴。

把当前图形窗口分隔成几个矩形部分

axis([xminxmaxyminymax])设置当前坐标轴的x-轴与y-轴的范围。

plot最基本、最常用的绘图函数,用于绘制线性二维图

title('string')在当前坐标轴上方正中央放置字符串string作为标题

xlabel('string')、ylabel(‘string’)给当前轴对象中的x、y轴贴标签

gridon给当前的坐标轴增加分隔线。

gridoff从当前的坐标轴中去掉分隔线。

grid转换分隔线的显示与否的状态。

gtext('string')当光标位于一个图形窗口内时,等待用户单击鼠标或键盘

text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string

st=num2str(x)将变量x值表示为字符串st。

st=int2str(x)将变量x的整数部分表示为字符串st。

fplot('function',limits)

在指定的范围limits内画出函数名为function的一元函数图形。

其中limits是一个指定x-轴范围的向量[xminxmax]或者是x轴和y轴的范围的向量[xminxmaxyminymax]。

polar(theta,rho)

用极角theta和极径rho画出极坐标图形。

极角theta为从x轴到半径的单位为弧度的向量,极径rho为各数据点到极点的半径向量。

bar(x,y)

在指定的横坐标x上画出y,其中x为严格单增的向量。

若y为矩阵,则bar把矩阵分解成几个行向量,在指定的横坐标处分别画出。

compass(x,y)

参量x与y为同型的n维向量,则命令显示n个箭头,箭头的起点为原点,箭头的位置为[x(i),y(i)]。

comet(x,y) 彗星图动画显示向量x与y确定的路线。

ezplot(F,[xmin,xmax],fig)   画符号表达式F的图形

如:

y =sym('-1/3*x^3+1/3*x^4');

ezplot(y)   %绘制符号函数y在[-2л,2л]中的图形

ezplot(y,[0,100])   %绘制符号函数y在[0,100]中的图形

参数方程三维绘图:

ezplot3(x,y,z,[tmin,tmax],'animate')  %绘制参数t在[tmin,tmax]范围的三维曲线

曲面绘制:

ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])

ezmesh 画三维网线图 

如:

ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])

ezcontour 画等高线 

如:

ezcontour('x*sin(t)',[-4,4])

绘制三维曲面的函数 

surf函数和mesh函数的调用格式为:

 mesh(x,y,z,c) surf(x,y,z,c) 

一般情况下,x,y,z是维数相同的矩阵。

x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。

如:

x=-4:

4;y=x;[X,Y]=meshgrid(x,y); Z=X.^2+Y.^2; 

surf(X,Y,Z); %或mesh(X,Y,Z)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2