怎么分析两组数据的相关性?比如A=【1 2 3 4 5 6 7 】 B=【2 3 4 5 6 7 8】 最好用MATLAB
关注:261 答案:2 手机版
解决时间 2021-01-12 04:49
提问者不再打扰你
2021-01-11 19:50
建模用!急
最佳答案
二级知识专家蓝莓九栀
2021-01-11 20:20
给个简单介绍吧,自己看着用
%多项式插值和拟合
%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可以作为各种类型曲线的拟合,最小二乘法能找到符合经验公式的最优曲线,但是这一经验公式是否有效还需要事后检验.一般可以从图像上作
%出判断,定量方法是计算残差平方和,再进行统计检验.
全部回答
1楼老酒街
2021-01-11 20:44
这是一个a=cb的逆运算。结果是一个二阶矩阵。
c= -1 2
0 1
若是手算的话就设
c = a11 a12
a21 a22
然后左×b=a 列方程组解出四个矩阵元
我要举报
如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
推荐资讯
大家都在看