作业帮 > 数学 > 作业

我的MATLAB作业第一题

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/22 12:14:56
我的MATLAB作业第一题
在某化探异常内观测18个点,每点测得Ag(x1),Pb(x2),Zn(x3),Cu(y)的数据如下表.已知y对x1,x2,x3具有线性关系,求y对x1,x2,x3 的线性回归方程,并作显著性检验.样号y x1 x2 x3 1 64 0.4 53 158 2 60 0.4 23 163 3 71 3.1 19 37 4 61 0.6 34 157 5 54 4.7 24 59 6 77 1.7 65 123 7 81 9.4 44 46 8 93 10.1 31 117 9 93 11.6 29 173 10 51 12.6 58 112 11 76 10.9 37 111 12 96 23.1 46 114 13 77 23.1 50 134 14 93 21.6 44 73 15 95 23.1 56 168 16 54 1.9 36 143 17 168 26.8 58 202 18 99 29.9 51 124
假设有一组数据型态为 y=y(x),其中 x={0,1,2,3,4,5},y={0,20,60,68,77,110} 如果我们要以一个最简单的方程式来近似这组数据,则非一阶的线性方程式莫属.先将这组数据绘图如下 图中的斜线是我们随意假设一阶线性方程式 y=20x,用以代表这些数据的一个方程式.以下将上述绘图的 MATLAB 指令列出,并计算这个线性方程式的 y 值与原数据 y 值间误差平方的总合.>> x=[0 1 2 3 4 5]; >> y=[0 20 60 68 77 110]; >> y1=20*x; % 一阶线性方程式的 y1 值 >> sum_sq = sum(y-y1).^2); % 误差平方总合为 573 >> axis([-1,6,-20,120]) >> plot(x,y1,x,y,'o'),title('Linear estimate'),grid 如此任意的假设一个线性方程式并无根据,如果换成其它人来设定就可能采用不同的线性方程式;所以我们 须要有比较精确方式决定理想的线性方程式.我们可以要求误差平方的总合为最小,做为决定理想的线性方 程式的准则,这样的方法就称为最小平方误差(least squares error)或是线性回归.MATLAB的polyfit函数提供了 从一阶到高阶多项式的回归法,其语法为polyfit(x,y,n),其中x,y为输入数据组n为多项式的阶数,n=1就是一阶 的线性回归法.polyfit函数所建立的多项式可以写成 从polyfit函数得到的输出值就是上述的各项系数,以一阶线性回归为例n=1,所以只有 二个输出值.如果指令为coef=polyfit(x,y,n),则coef(1)= ,coef(2)=,...,coef(n+1)= .注意上式对n 阶的多 项式会有 n+1 项的系数.我们来看以下的线性回归的示范:>> x=[0 1 2 3 4 5]; >> y=[0 20 60 68 77 110]; >> coef=polyfit(x,y,1); % coef 代表线性回归的二个输出值 >> a0=coef(1); a1=coef(2); >> ybest=a1*x+a0; % 由线性回归产生的一阶方程式 >> sum_sq=sum(y-ybest).^2); % 误差平方总合为 356.82 >> axis([-1,6,-20,120]) >> plot(x,ybest,x,y,'o'),title('Linear regression estimate'),grid