怎么分析两组数据的相关性?比如A=【1 2 3 4 5 6 7 】 B=【2 3 4 5 6 7 8】 最好用MATLA

问题描述:

怎么分析两组数据的相关性?比如A=【1 2 3 4 5 6 7 】 B=【2 3 4 5 6 7 8】 最好用MATLAB
建模用!急
1个回答 分类:数学 2014-10-01

问题解答:

我来补答
给个简单介绍吧,自己看着用
%多项式插值和拟合
%p=polyfit(x,y,k)
%用k次多项式拟合向量数据(x,y),返回多项式的降幂系数,当k>=n时,polyfit实现多项式插值,这里n是向量维数
x=[0.1 0.2 0.15 0 -0.2 0.3];
y=[0.95 0.84 0.86 1.06 1.50 0.72];
p=polyfit(x,y,2)%二次拟合
xi=-0.2:0.01:0.3;
yi=polyval(p,xi);
subplot(2,2,1);
plot(x,y,'o',xi,yi,'k');
title('polyfit');
%五次拟合
p2=polyfit(x,y,5)
yi=polyval(p2,xi);
subplot(2,2,2);
plot(x,y,'o',xi,yi,'k');
title('polyinterp');
非线性最小二乘拟合:
%非线性最小二乘拟合
%c=lsqcurvefit(Fun,c0,x,y) Fun为两变量函数f(c,x),c0为参数c的近似值,作为迭代初值,x,y为数据向量
%c=lsqcurve(Run,c0,x,y,lc,uc,options,p1,p2,...)可以设置参数c取值于区间[lc,uc],options为
%优化计算参数选项,p1,p2,...为向函数Fun传递附加参数
%拟合非线性函数y=a*exp(b*x),首先讲参数a,b合写为c
fun=inline('c(1)*exp(c(2)*x)','c','x')
x=[0.1 0.2 0.15 0 -0.2 0.3];
y=[0.95 0.84 0.86 1.06 1.50 0.72];
c=lsqcurvefit(fun,[0 0],x,y)%初始值为a=0,b=0
norm(feval(fun,c,x)-y)^2%残差平方和
%lsqcurvefit可以作为各种类型曲线的拟合,最小二乘法能找到符合经验公式的最优曲线,但是这一经验公式是否有效还需要事后检验.一般可以从图像上作
%出判断,定量方法是计算残差平方和,再进行统计检验.
 
 
展开全文阅读
剩余:2000
下一页:fx的解析式