1、% 拟合椭圆型曲线段close all;% 设出圆锥曲线方程F=(p,x)p(1)*x(:,1).2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);%椭圆一般方程% 离散数据点Up=xlsread(D:CTUp.xls);%excel 文件路径UpX=Up(:,1);UpY=Up(:,2);% p0 系数初值p0=1 1 1 1 1 1;warning off% 拟合系数,最小二乘方法p=nlinfit(Up,zeros(size(Up,1),1),F,p0);plot(UpX,UpY,r.);hold on;Up
2、Minx=min(UpX);UpMaxx=max(UpX);UpMiny=min(UpY);UpMaxy=max(UpY);% 作图ezplot(x,y)F(p,x,y),-1+UpMinx,1+UpMaxx,-1+UpMiny,1+UpMaxy);title(曲线拟合 );legend(样本点, 拟合曲线);% 设出圆锥曲线方程F=(p,x)p(1)*x(:,1).2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);%椭圆一般方程% 离散数据点Down=xlsread(D:CTDown.xls);DownX=Dow
3、n(:,1);DownY=Down(:,2);% p0 系数初值p0=1 1 1 1 1 1;warning off% 拟合系数,最小二乘方法p=nlinfit(Down,zeros(size(Down,1),1),F,p0);plot(DownX,DownY,r.);hold on;DownMinx=min(DownX);DownMaxx=max(DownX);DownMiny=min(DownY);DownMaxy=max(DownY);% 作图ezplot(x,y)F(p,x,y),-1+DownMinx,1+DownMaxx,-1+DownMiny,1+DownMaxy);title(曲线拟合 );legend(样本点, 拟合曲线);