把非线性转化为线性,再求解。
在制定公差标准时,必须掌握加工的极限误差随工件尺寸变化的规律。例如,对用普通车床切削外圆进行了大量实验,得到加工极限误差t与工作直径D的统计资料如下:
将数据画成折线图:
可以很清楚的观察出数据是非线性的。
假设这条曲线的方程是,
将其两边取对数,得到,
令,得到y=c+bx 。
再根据一元回归最小二乘法计算:
得到:
b = 0.3394
c = 1.5801
所以y = 0.3394 x +1.5801
a=e^c=4.8556
综上所述,
MATLAB代码:
clear
clc
shuju=xlsread('D:\CSDN\MATLAB\shuju2.xlsx');
d=shuju(:,1); %工作直径
t=shuju(:,2); %加工极限误差
plot(d,t)
grid on
xlabel('工作直径 D/mm')
ylabel('加工极限误差 t/um')
x=log(d); %lnD转化为一元函数中的x
y=log(t); %lnt转化为一元函数中的y
C=[x,ones(10,1)]'*[x,ones(10,1)]; %计算C
K=(C^-1)*[x,ones(10,1)]'*y; %计算K
b=K(1,1) %取出b
c=K(2,1) %取出c
a=exp(c) %c转换回a
结果:
b = 0.3394
c = 1.5801
a = 4.8556