关于用matlab作趋势面分析
我想用matlab作个趋势面分析,但在matlab中用下列代码没有生成想要的一次、二次、三次趋势面拟合等值线,请各位指点,万分感激:@) 建议楼主直接贴出代码, 不然像个人就无法读取(有些会变乱码)!我把代码直接贴出来哈
%---c6fun6_10Clear;clc;
X=[];
Y=[];
U=[];
alpha=0.01;
disp(‘一次趋势面拟合');
X0=ones(length(X),1);
X1=X’;X2=Y’;XX1=;yy=U’;
=regress(yy,XX1,alpha)
UU=A1(1)+A1(2)*X1+A1(3)*X2;
R1=sum((UU-mean(U)). ^2)/sum((U-mean(U)). ^2)
xxx=1:1:96;yyy=1:1:96;
=meshgrid(xxx,yyy);
figure(1);
=contour(XXX,YYY,UUU,8);clabel(c1,h1);title(‘一次趋势面拟合');
xlabel(‘X/m’);ylabel(‘y/m’);hold on;
plot(X,Y,/bp/);for ii=1:1:length(X);text(X(ii)),Y(ii),num2str(U(ii));end
disp(‘二次趋势面拟合');
X3=X’.*X’;X4=X’. *Y’;X5=Y’.*Y’;XX2=;
=regress(yy,XX2,alpha)
UU=A2(1)+A2(2)*X1+A2(3)*X2+A2(4)*X3+A2(5)*X4+A2(6)*X5;
R2=sum((UU-mean(U)).^2)/sum((U-mean(U)).^2
xxx=1:1:96;yyy=1:1:96
=meshgrid(xxx,yyy);
UUU=A2(1)+A2(2)*XXX+A2(3)*YYY+A2(4)*XXX.^2+A2(5)*XXX.*YYY+A2(6)*YYY.^2;
figure(2);
=contour(XXX,YYY,UUU,8,‘b-.');clabel(c2,h2);title(‘二次趋势面拟合');
xlabel(‘X/m’);ylabel(‘y/m’);hold on;
plot(X,Y, ‘bp’);for ii=1:1:length(X);text(X(ii),Y(ii),num2str(U(ii)));end
disp(‘三次趋势面拟合');
X6=X’.*X’.*X’;X7=X’.*X’.*Y’;X8=X’.*Y’.*Y’;X9=Y’.*Y’.*Y’;
XX3=;
=regress(yy,XX3,alpha)
UU=A3(1)+A3(2)*X1+A3(3)*X2+A3(4)*X3+A3(5)*X4+A3(6)*X5+A3(7)*X6+A3(8)*X7+A3(9)*X8+A3(10)*X9;
R3=sum((UU-mean(U)).^2)/sum((U-mean(U)).^2)
Xxx=1:1:96;yyy=1:1:96;
=meshgrid(xxx,yyy);
UUU=A3(1)+A3(2)*XXX+ A3(3)*YYY+ A3(4)*XXX.*XXX+ A3(5)*XXX.*YYY+ A3(6)*YYY.*YYY+A3(7). *XXX.^3+A3(8).*XXX.*XXX.*YYY+A3(9).*XXX.*YYY.*YYY+A3(10).*YYY.*YYY.*YYY;
figure(3);=contour(XXX,YYY,UUU,8,‘b’: /);clabel(c3,h3);
title(‘三次趋势面拟合’);xlabel(‘X/m’);ylablel(‘y/m’);
hold on;plot(X,Y, ‘bp’);for ii=1:1:length(X);text(X(ii),Y(ii),num2str(U(ii)));end
上边X=[]; Y=[];U=[];里边的值因为太多了,所以在这就删了
哪位可以指点一下,是我的代码错了还是操作上的错误,谢谢
[ 本帖最后由 ChaChing 于 2009-9-19 23:55 编辑 ] 之前没空看, 今稍为看下!
抱歉, 真的有点受不了LZ的代码! 格式错了一大堆!
建议LZ需自个儿先练练改改看, 成熟些具体再讨论 请问lz现在有正确的代码了吗? 如果画出图形就好理解了
页:
[1]