拟合椭圆首先要知道各个点的坐标,然和带入如下公式:

x = [59 136

58 137

57 137

56 137

55 138

54 139

53 140

52 141

51 142

51 143

51 144

50 145

50 146

50 147

50 148

49 149

49 150

49 151

49 152

49 153

50 154

50 155

50 156

50 157

51 158

51 159

51 160

52 161

52 162

53 163

54 164

54 165

55 166

56 167

57 168

58 169

59 170

60 171

61 171

62 172

63 172

64 172

65 173

66 173

67 173

68 173

69 173

70 173

71 173

72 173

73 172

74 172

75 172

76 171

77 171

78 170

79 169

79 168

80 167

80 166

80 165

81 164

81 163

81 162

81 161

81 160

81 159

81 158

81 157

81 156

81 155

81 154

81 153

80 152

80 151

80 150

79 149

79 148

79 147

78 146

78 145

77 144

76 143

75 142

74 141

73 140

72 139

71 138

70 138

69 137

68 137

67 137

66 136

65 136

64 136

63 136

62 136

61 136

60 136];

 %  p0=[1 1 1 1 1 1];

  p0=[0.005 0.005 0.005 0.005 0.005 0.005];

warning off

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);

% 拟合系数,最小二乘方法

p=nlinfit(x,zeros(size(x,1),1),F,p0);

p(1)

p(2)

p(3)

p(4)

p(5)

p(6)





A=p(1)/p(6);

B=p(2)/p(6);

C=p(3)/p(6);

D=p(4)/p(6);

E=p(5)/p(6);





%%椭圆中心

X_center = (B*E-2*C*D)/(4*A*C - B^2);

Y_center = (B*D-2*A*E)/(4*A*C - B^2);

fprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);

%%长短轴

a= 2*sqrt((2*A*(X_center^2)+2*C*(Y_center^2)+2*B*X_center*Y_center-2)/(A+C+sqrt(((A-C)^2+B^2))));

b= 2*sqrt((2*A*(X_center^2)+2*C*(Y_center^2)+2*B*X_center*Y_center-2)/(A+C-sqrt(((A-C)^2+B^2))));





%%长轴倾角

q=0.5 * atan(B/(A-C));

fprintf(' q=%g\n',q);





fprintf(' a=%g, b=%g\n',a,b);

plot(x(:,1),x(:,2),'ro');





hold on;

xmin=min(x(:,1));

xmax=max(x(:,1));

ymin=min(x(:,2));

ymax=max(x(:,2));

% 作图





ezplot(@(x,y)F(p,[x,y]),[xmin,xmax,ymin,ymax]);

title('曲线拟合');

%legend('样本点','拟合曲线')

matlab 椭圆方程拟合的更多相关文章

  1. Matlab:椭圆方程的导数边值问题

    tic; clear clc N=; M=*N; h1=/M; h2=/N; x=:h1:; y=:h2:; fun=inline('exp(x)*sin(pi*y)','x','y'); f=inl ...

  2. matlab最小二乘法数据拟合函数详解

    定义: 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可 以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小. ...

  3. 使用matlab进行空间拟合

    假设有这么一组数据, x=[4 5 6 7 8 4 8 10]'; y=[56 56 56 56 56 60 60 60]';z=[6 6 6 9 6 19 6 6]'; 要求出其平面方程z=C+Ax ...

  4. MATLAB学习笔记(七)——MATLAB解方程与函数极值

    (一)线性方程组求解 包含n个未知数,由n个方程构成的线性方程组为: 其矩阵表示形式为: 其中 一.直接求解法 1.左除法 x=A\b; 如果A是奇异的,或者接近奇异的.MATLAB会发出警告信息的. ...

  5. MATLAB 排序、拟合

    一.数据排序整合 1.随机生成的数,从小到大排序 clear rand('seed',1)%设置随机种子,确保随机数一样 edge_range=unifrnd (1, 10, 1, 10) edge_ ...

  6. matlab——插值与拟合

    @ 目录 前言 一.拟合 1.定义 2.三种判别准则 3.最小二乘法 (1)一般形式 (2)常用函数 (3)matlab实现 二.插值 1.定义 2.方法 (1)分段线性插值 (2)拉格朗日插值多项式 ...

  7. MATLAB求解方程与方程组

    1.      solve函数 ①求解单个一元方程的数值解 syms x; x0 = double(solve(x +2 - exp(x),x)); 求x+2 = exp(x)的解,结果用double ...

  8. RANSAC介绍(Matlab版直线拟合+平面拟合)

    https://blog.csdn.net/u010128736/article/details/53422070

  9. matlab解方程

    [x1,y1,x2,y2]=solve('x1^2 + y1^2=1','x2^2-8*x2 +y2^2 +15=0','x1*x2 + y1 * y2=1','x1 + x2 =a','x1','y ...

随机推荐

  1. 预定义宏__GNUC__和_MSC_VER

    一.预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏.需要针对gcc编写代码时, 可以使用该宏进行条件编译. 2 __GNUC__ 的值表示gcc的版本.需要针对 ...

  2. 正则表达式(BREs,EREs,PREs)差异比较

    我想各位也和我一样,再linux下使用grep,egrep, awk , sed, vi的搜索时,会经常搞不太清楚,哪此特殊字符得使用转义字符'\' ..   哪些不需要, grep与egrep的差异 ...

  3. 开发高峰时的CPU使用率

  4. UVA 12563 劲歌金曲(01背包)

    劲歌金曲 [题目链接]劲歌金曲 [题目类型]01背包 &题解: 题意:求在给定时间内,最多能唱多少歌曲,在最多歌曲的情况下,使唱的时间最长. 该题类似于01背包问题,可用01背包问题的解题思路 ...

  5. CF 219D Choosing Capital for Treeland 树形DP 好题

    一个国家,有n座城市,编号为1~n,有n-1条有向边 如果不考虑边的有向性,这n个城市刚好构成一棵树 现在国王要在这n个城市中选择一个作为首都 要求:从首都可以到达这个国家的任何一个城市(边是有向的) ...

  6. NeHe OpenGL教程 第三十七课:卡通映射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  7. rand()随机数的产生

    #include "stdio.h"#include<stdlib.h>用下列公式即可得到指定范围[m,n]的随机数: r = rand()%(n - m + 1) + ...

  8. python(17) 获取acfun弹幕,评论和视频信息

    每天一点linux命令:新建文件夹

  9. KS-检验(Kolmogorov-Smirnov test) -- 检验数据是否符合某种分布

    Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法.其原假设H0:两个数据分布一致或者数据符合理论分布.D=max| f(x)- g(x)|, ...

  10. 一起刑事案件法庭辩护 z

    [案件地位]  这是一起各方争议很大的刑事案件.侦查机关曾将该案以非法拘禁罪立案侦查,以故意杀人罪移送检察机关审查起诉,公诉机关以非法拘禁形成故意伤害(致死)起诉,而法院最终以故意伤害罪判决,并且排除 ...