用MATLAB编程
2936483.236,468399.861,25.796
2936584.396,468513.339,25.780
2936539.795,468635.191,25.835
2936617.590,468620.483,25.870
2936871.191,468487.189,25.811
2936783.884,468423.202,25.830
2936652.458,468233.574,25.765
2936980.990,468502.478,25.744
2937224.476,468626.381,25.756
2937342.302,468801.641,25.728
上面是一组X,Y,H的值,用以上的数据拟合出多项式函数,H=a0+a1X+a2Y+a3X^2+a4Y^2+a5XY+a6X^3+a7Y^3+a8X^2Y+a9XY^2,ai是要求出的系数。
然后根据求出的多项式函数,用以下X,Y求出H
2936534.884,468420.458
2936637.360,468484.556
2936587.004,468564.317
2936527.436,468568.919
2936694.819,468292.289
2936620.616,468319.255
2936710.426,468306.772
2937113.850,468522.225
2937259.331,468725.607
上面两个程序请分开来,谢谢。
追问:
第二个程序是X=data1吧 还有就是两个程序都用X和Y没矛盾吗?
写错了,恩第二个X=data1(:,1);Y=data1(:,2);
XY=[ones(length(X),1) X Y X.^2 Y.^2 X.*Y X.^3 Y.^3 X.^2.*Y X.*Y.^2];
HH=XY*ai
没啥矛盾,就是后面数据替换下前面X Y,懒得重新写,反正前面X,Y算了ai后没什么用了
答案:data=[2936483.236,468399.861,25.796
2936584.396,468513.339,25.780
2936539.795,468635.191,25.835
2936617.590,468620.483,25.870
2936871.191,468487.189,25.811
2936783.884,468423.202,25.830
2936652.458,468233.574,25.765
2936980.990,468502.478,25.744
2937224.476,468626.381,25.756
2937342.302,468801.641,25.728];
X=data(:,1);Y=data(:,2);H=data(:,3);
XX=[ones(length(X),1) X Y X.^2 Y.^2 X.*Y X.^3 Y.^3 X.^2.*Y X.*Y.^2];
[ai,BINT,R,RINT,STATS]=regress(H,XX)%ai:a0-a9
data1=[2936534.884 468420.458
2936637.360 468484.556
2936587.004 468564.317
2936527.436 468568.919
2936694.819 468292.289
2936620.616 468319.255
2936710.426 468306.772
2937113.850 468522.225
2937259.331 468725.607 ];
X=data(:,1);Y=data(:,2);
XY=[ones(length(X),1) X Y X.^2 Y.^2 X.*Y X.^3 Y.^3 X.^2.*Y X.*Y.^2];
HH=XY*ai
==========结果
Warning: X is rank deficient to within machine precision.
> In regress at 82
In AAAA at 14
ai =
1.0e-009 *
0
0
0
0.0478
0
0
-0.0011
0.2673
0.0204
-0.1280
BINT =
1.0e-007 *
0 0
0 0
0 0
0.0000 0.0009
0 0
0 0
-0.0007 0.0007
-0.1757 0.1810
-0.0134 0.0138
-0.0866 0.0841
R =
-0.0285
-0.0429
-0.0009
0.0443
0.0278
0.0431
-0.0037
-0.0265
0.0053
-0.0179
RINT =
-0.1090 0.0520
-0.1225 0.0366
-0.0856 0.0837
-0.0288 0.1173
-0.0707 0.1262
-0.0309 0.1172
-0.0078 0.0004
-0.1221 0.0692
-0.0594 0.0700
-0.0503 0.0145
STATS =
0.5466 1.5070 0.3276 0.0017
HH =
25.8245
25.8229
25.8359
25.8257
25.7832
25.7869
25.7687
25.7705
25.7507
25.7459
上一个:关于matlab的编程问题,我写了程序,但是运行一直有问题,求解~!!!
下一个:如何用matlab编程程序将26个英文字母转化成0~25