一、实验名称
二、实验目的
(1)
掌握曲线拟合的最小二乘法; (3)
培养编程与上机调试能力; (4)
卡盘扳手熟悉Matlab6.5.1软件环境.
三、实验要求
(1) 从键盘输入一组数据(x i ,y i ),i=1,2,…n 。
(2) 计算一元线性回归方程y=ax+b 的系数a 和b ,用两种方法计算: 一是公式:x a y b x x y y x x a i
i
聚乙烯亚胺i -=---=∑∑,)())((2
; 二是用最小二乘法的公式求出最小值点(a,b ),使
∑--=2)(min },(b ax y b a Q i i .
(3) 检验回归方程是否有效(用F 分布检验)。
(4) 把散列点(x i ,y i )和回归曲线y=ax+b 画在一个图上。
(5) 每种计算法都要有计算框图,且每种计算法都要编成一个自定义函数。
五、程序及其运行结果
程序:
function yiyuanhuigui
clc;
disp('从键盘输入一组数据:');
x=input('X的数(以向量形式输入):');
y=input('Y的数(以向量形式输入):');
disp('一元线性回归方程的计算和检验:');
disp('1、公式法');
disp('2、最小二乘法');
disp('3、检验并画图');
disp('0、退出');
global a0 b0;r51
while 3
num=input('选择求解一元回归方程的方法:');
switch num
case 1
[a0,b0]=huigui(x,y)
case 2
[a0,b0]=zxec(x,y)
case 3
break;
case 0
return;
otherwise
disp('输入错误,请重新输入!');
end
end
X=x';Y=y';
安云霁X=[ones(size(X)),X];alpha=0.5;
%输出向量b,bint为回归系数估计值和它们的置信区间;
%r1,rint为残差及其置信区间,stats是用于检验回归模型的统计量,第一个是R^2,其中R %是相关系数,第二个是F统计量值,第三个是与统计量F对应的概率P,第四个是估计误差方差
[b,bint,e,rint,stats]=regress(Y,X)
if stats(3)<alpha %当P<α时拒绝H0,回归模型成立disp('一元回归方程有效!');
end
n=[min(x):0.1:max(x)];
f=a0*n+b0;
plot(x,y,'b.',n,f,'r'),grid on,hold on; %画出散列点和一元线性回归图像
xlabel('x');ylabel('y');legend('散列点','一元线性回归图像');
title('散列点和一元线性回归图像');
end
%*****************************公式法
function [a0,b0]=huigui(x,y)
n=length(x);
x1=0;y1=0;
for i=1:n
x1=x1+x(i);
y1=y1+y(i);
end
x0=x1/n; %求得平均
y0=y1/n;
a1=0;a2=0;
for j=1:n
a1=a1+(x(j)-x0)*(y(j)-y0);
a2=a2+(x(j)-x0)*(x(j)-x0);
end
电视原理课后答案a0=a1/a2;
b0=y0-a0*x0;
x2=min(x):0.05:max(x);
y2=a0*x2+b0;
end
%***************************** 最小二乘法function [a0,b0]=zxec(x,y)
m=length(x);
R=[x' ones(m,1)];a=R\y';
a0=a(1);b0=a(2);
end黄建始