实验内容 |
求y关于x的线性回归方程,检验回归效果是否显著,并预测x=42℃时产量的估值及预测区间(置信度95%). 2. 某零件上有一段曲线,为了在程序控制机床上加工这一零件,需要求这段曲线的解析表达式,在曲线横坐标xi处测得纵坐标yi共11对数据如下:
求这段曲线的纵坐标y关于横坐标x的二次多项式回归方程.
4. 混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期x(日)及抗压强度y(kg/cm2)的数据:
试求 |
实 验 步 骤、过 程
1、
>> x=20:5:65;
>> X = [ones(10,1) x'];
>> Y = [13.2 15.1 16.4 17.1 17.9 18.7 19.6 21.2 22.5 24.3]';
>> [b,bint,r,rint,stats]=regress(Y,X)
>> c=x';
>> [p,S]=polyfit(c,Y,1);
>> [A,DELTA]=polyconf(p,42,S,0.05)
故当x=42℃时它的产量估值为18.4885
预测区间(置信度95%)为:[17.3204,19.6566]
2、
>> x=0:2:20;
>> y=[0.6 2.0 4.4 7.5 11.8 17.1 23.3 31.2 39.6 49.7 61.7];
>> [p,S]=polyfit(x,y,2)
得到y关于x的二次回归方程为y=0.1403x²+0.1971x+1.0105
3、
M函数文件model.m:
function y=model(beta,x)
y=(beta(1)*x(:,2)-x(:,3)./beta(5))./(1+beta(2)*x(:,1)+beta(3)*x(:,2)+beta(4)*x(:,3));
在程序中调用此函数:
clear
clc
>> close all
>> y=[8.55 3.79 4.82 0.02 2.75 14.39 2.54 4.35 13.00 8.50 0.05 11.32 3.13]';
>> x1=[470 285 470 470 470 100 100 470 100 100 100 285 285]';
>> x2=[300 80 300 80 80 190 80 190 300 300 80 300 190]';
>> x3=[10 10 120 120 10 10 65 65 54 120 120 10 120]';
>> x=[x1 x2 x3];
>> beta0=[1,0.05,0.02,0.1,2]';
>> [beta,R,J]=nlinfit(x,y,@model,beta0);
>> beta
>> betaci=nlparci(beta,R,J)
>> [ypre,delta]=nlpredci(@model,x,beta,R,J);
>> plot(x(:,1),y,'o',x1,ypre,'*')
95%的置信区间为ypre±beta
4、
方法一:
M函数文件model.m:
function yhat=volum(beta,x)
yhat=beta(1)+beta(2)*log(x);
在程序中调用此函数:
>> x=[2 3 4 5 7 9 12 14 17 21 28 56];
>> y=[35 42 47 53 59 65 68 73 76 82 86 99];
>> beta0=[5 1]';
>> [beta,r,J]=nlinfit(x',y','volum',beta0);
>> beta
结果:
beta =
21.0058
19.5285
所以得到回归方程为
方法二:
令lnx=u,则x=e^u,原回归方程为
在程序中调用此函数:
>> x=[2 3 4 5 7 9 12 14 17 21 28 56]';
>> u=log(x);
>> u=[ones(12,1) u];
>> y=[35 42 47 53 59 65 68 73 76 82 86 99]';
>> [b,bint,r,rint,stats]=regress(y,u);
>> b,bint,stats %出结果
>> z=b(1)+b(2)*log(x);
>> plot(x,y,'k+',x,z,'r')
答案供参考,如有错误请自行改正,本人只是随意分享之前的作业,代码均来源于网络+个人稍微修改,认为有用可参考哈~