当前位置:首页 >> 机械/仪表 >>

最小二乘法拟合椭圆附带matlab程序


最小二乘法拟合椭圆
设平面任意位置椭圆方程为: x 2 + Axy + By 2 + Cx + Dy + E = 0 设Pi xi , yi i = 1,2, … , N 为椭圆轮廓上的 N N ≥ 5 个测量点,依据最小二乘原理,所拟 合的目标函数为:
N

F A, B, C, D, E =
i=1

xi

2 + Axi yi + Byi2 + Cxi + Dyi + E

2

欲使 F 为最小,需使 ?F ?F ?F ?F ?F = = = = =0 ?A ?B ?C ?D ?E 由此可以得方程:
2 x2 i yi

xi y3 i y4 i xi y2 i y3 i y2 i

x2 i yi xi y2 i x3 i xi yi xi

xi y2 i y3 i xi yi y2 i yi

xi yi y2 i xi y2 i N A B C =D E

x3 i yi
2 x2 i yi

xi y3 i x2 i yi xi y2 i xi yi

x3 i x2 i yi x2 i

解方程可以得到 A,B,C,D,E 的值。 根据椭圆的几何知识,可以计算出椭圆的五个参数:位置参数 θ, x0 , y0 以及形状参数 a, b 。 x0 = y0 = a=
2BC ?AD A 2 ?4B

2D ? AD A2 ? 4B 2 ACD ? BC2 ? D2 + 4BE ? A2 E A2 ? 4B B ? A2 + 1 ? B 2 + 1

b=

2 ACD ? BC 2 ? D2 + 4BE ? A2 E A2 ? 4B B + A2 + 1 ? B 2 + 1

θ = tan?1

a2 ? b 2 B a2 B ? b 2

附:MATLAB 程序
function [semimajor_axis, semiminor_axis, x0, y0, phi] = ellipse_fit(x, y) % % Input: % x —— a vector of x measurements %y ——a vector of y measurements % % Output: %semimajor_axis—— Magnitude of ellipse longer axis %semiminor_axis—— Magnitude of ellipse shorter axis %x0——x coordinate of ellipse center %y0——y coordinate of ellipse center %phi——Angle of rotation in radians with respect to x-axis % %explain % % % % 2*b'*x*y + c'*y^2 + 2*d'*x + 2*f'*y + g' = -x^2

M * p = bM = [2*x*y y^2 2*x 2*y ones(size(x))], p = [b c d e f g]b = -x^2. p = pseudoinverse(M) * b.

x = x(:); y = y(:);

%Construct M M = [2*x.*y y.^22*x 2*y ones(size(x))]; % Multiply (-X.^2) by pseudoinverse(M) e = M\(-x.^2); %Extract parameters from vector e a = 1; b = e(1); c = e(2); d = e(3); f = e(4); g = e(5); %Use Formulas from Mathworld to find semimajor_axis, semiminor_axis, x0, y0, and phi delta = b^2-a*c; x0 = (c*d - b*f)/delta; y0 = (a*f - b*d)/delta; phi = 0.5 * acot((c-a)/(2*b)); nom = 2 * (a*f^2 + c*d^2 + g*b^2 - 2*b*d*f - a*c*g); s = sqrt(1 + (4*b^2)/(a-c)^2); a_prime = sqrt(nom/(delta* ( (c-a)*s -(c+a)))); b_prime = sqrt(nom/(delta* ( (a-c)*s -(c+a)))); semimajor_axis = max(a_prime, b_prime); semiminor_axis = min(a_prime, b_prime);

if (a_prime<b_prime) phi = pi/2 - phi; end

欢迎交流: 邮箱:xlm233111@163.com


相关文章:
最小二乘法拟合椭圆附带matlab程序
最小二乘法拟合椭圆附带matlab程序_机械/仪表_工程科技_专业资料。最小二乘法拟合椭圆设平面任意位置椭圆方程为: x 2 + Axy + By 2 + Cx + Dy + E = ...
matlab根据坐标拟合椭圆程序
matlab根据坐标拟合椭圆程序_建筑/土木_工程科技_专业资料。matlab 椭圆曲线拟合例子...(6);%椭圆一般方程 p0=[1 1 1 1 1 1]; %%%%%%拟合系数,最小二乘法...
matlab根据坐标拟合椭圆程序
matlab根据坐标拟合椭圆程序_数学_自然科学_专业资料。clear; clc; close all; ...(6);%椭圆一般方程 p0=[1 1 1 1 1 1]; %%%%%%拟合系数,最小二乘法...
曲线拟合_线性最小二乘法及其MATLAB程序
函数逼近与曲线拟合 1 例 7.2.1 曲线拟合的线性最小二乘法及其 MATLAB 程序给出一组数据点 ( xi , yi ) 列入表 7–2 中, 试用线性最小二乘法拟合...
最小二乘法曲线拟合的Matlab程序
最小二乘法曲线拟合Matlab程序_IT/计算机_专业资料。方便大家使用的最小二乘法曲线拟合Matlab 程序非常方便用户使用,直接按提示操作即可;这里我演示一个例子:...
最小二乘法拟合直线MATLAB程序
最小二乘法拟合直线MATLAB程序 暂无评价|0人阅读|0次下载|举报文档 最小二乘法拟合直线MATLAB程序 function linear_fit %最小二乘法拟合直线 clear; clc; prompt...
最小二乘法拟合圆公式推导及matlab实现
最小二乘法拟合圆公式推导及matlab实现_数学_自然科学_专业资料。更新matlab code, 同样从网上搜得2014-10-01 | 最小二乘法拟合圆公式推导及 matlab 实现最小二...
曲线拟合的最小二乘法matlab举例
曲线拟合最小二乘法matlab举例_计算机软件及应用_IT/计算机_专业资料。曲线拟合最小二乘法一、曲线拟合最小二乘法原理: 曲线拟合最小二乘法原理:由已知...
在Matlab中最小二乘法计算拟合曲线系数的程序
Matlab最小二乘法计算拟合曲线系数的程序_数学_自然科学_专业资料。clear all load('F:\2——学习资料篇\1——专业课资料\测量数据处理程序设计\Matlab 中...
用MatLab画图(最小二乘法做曲线拟合)
MatLab画图(最小二乘法做曲线拟合)_理学_高等教育_教育专区。拟合 帮朋友利用实验数据画图时, 发现 MatLab 的确是画图的好工具, 用它画的图比 Excel 光滑、...
更多相关标签:
最小二乘法拟合椭圆 | 最小二乘法的椭圆拟合 | matlab最小二乘法拟合 | matlab 椭圆拟合 | matlab椭圆拟合程序 | matlab 椭圆曲线拟合 | matlab离散点拟合椭圆 | matlab拟合椭圆方程 |