MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]如何做三元线性拟合? (https://www.labfans.com/bbs/showthread.php?t=6758)

hlh2009 2009-03-10 09:34

[求助]如何做三元线性拟合?
 
如何做三元线性拟合?如
前角(度) 切深(mm) 切削速度(m/s) 水平切削力(N)
10 2 0.2 112
10 4 0.4 120
10 6 0.6 150
15 2 0.4 160
15 4 0.6 168
15 6 0.2 147
20 2 0.6 170
20 4 0.2 155
20 6 0.4 160
我要做水平力与其它三个的关系函数。
请高手帮帮忙,谢谢!!!

slgu 2009-03-10 10:08

回复: [求助]如何做三元线性拟合?
 
该目标变数Y与第二列(x2)没有关系,请运行下列小程序:
但数据量太少,可能说明不了问题。这类问题应有足够多的数据。
clear,clc
x1=[10 10 10 15 15 15 20 20 20]';%原第1列
x2=[0.2, 0.4, 0.6, 0.4, 0.6, 0.2, 0.6, 0.2, 0.4]';%原第3列
y=[112 120 150 160 168 147 170 155 160]';
X=[ones(9,1),x1,x1.^2,x2.^2];
b=X\y
SSy=var(y)*8
RSS=y'*y-b'*X'*y
MSe=RSS/(9-4)
R2=(SSy-RSS)/SSy
scatter3(x1,x2,y)
stem3(x1,x2,y,'filled')
str=num2str([1:9]');
text(x1,x2,y+.05,str,'fontsize',12)
hold on
[x11,x22]=meshgrid(10:.5:20,0.15:.01:.65);
y1=b(1)+b(2)*x11+b(3)*x11.^2+b(4)*x22.^2;
surf(x11,x22,y1)
axis tight
shading interp
alpha(.75)


所有时间均为北京时间。现在的时间是 12:24

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.