在实际中,人们经常遇到非线性问题。通过变换,有的非线性问题可以被转换为线性问题,从而可以用线性回归的方法来处理。
常用的线性转换方法如表1-16所示。可以利用表中介绍的转换方法对一些比较特殊的函数进行转换,达到线性化的目的。
表1-16 常用线性转换表
| 模型名称 | 曲线模型 | 转 换 | 线性模型 |
|---|---|---|---|
| 双曲线 | 1/y=a+b/x | u=1/y,v=1/x | u=a+bv |
| 幂函数 | y=axb | u=lny,v=lnx,c=lna | u=c+bv |
| 复合曲线 | y=abx | u=lny,c=lna,d=lnb | u=c+dx |
| 生长曲线 | y=e(a+bx) | u=lny | u=a+bx |
| 指数曲线1 | y=aebx | u=lny,c=lna | u=c+bx |
| 指数曲线2 | y=ae(b/x) | u=lny,v=1/x,c=lna | u=c+bx |
| 对数曲线 | y=a+blnx | v=lnx | y=a+bv |
| 曲线 | y=a+b/x | v=1/x | y=a+bv |
| S型曲线 | y=e(a+be-x) | u=1/y,v=ex | u=a+bv |
| 逻辑曲线 | y=1/(1/u+a(bx)) |
u=ln(1/y-1/u),c=lna,d=lnb | u=c+bx |
混凝土的抗压强度随着养护时间的延长而增加。现将一批混凝土制成12个试块,并记录了养护时间T(单位:天)与抗压强度Y(单位:kg/\(c{m}^{2}\)),数据如下所示。
T 2.00 3.00 4.00 5.00 7.00 9.00 12.00 14.00 17.00 21.00 28.00 56.00
Y 35.00 42.00 47.00 53.00 59.00 65.00 68.00 73.00 76.00 82.00 86.00 99.00
解 经过曲线拟合发现,该数据能很好地拟合对数模型,上面的数据可以表达为Y=b\(0\)+b\(1\)lnt的形式。
在命令窗口中输入命令行:
code.matlab
>> T=[2.00 3.00 4.00 5.00 7.00 9.00 12.00 14.00 17.00 21.00 28.00 56.00]';
>> Y=[35.00 42.00 47.00 53.00 59.00 65.00 68.00 73.00 76.00 82.00 86.00 99.00]';
>> X = [ones(12,1) log(T)];
>> [b,bint,r,rint,stats] = regress(Y ,X,0.05)
b =
21.0058
19.5285
bint =
19.4463 22.5653
18.8943 20.1627
stats =
1.0e+03 *
0.0010 4.7069 0.0000 0.0009
所以,该混凝土抗压强度与养护时间之间的关系可以表达为Y=21.0058+19.5285lnt。相关系数的平方值接近于1(stats结构的第一个值)。