当前位置:编程学习 > Matlab >>

用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

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,