2014-11-12 4 views
-2

데이터에 기울임이없는 타원형을 맞추고 싶습니다. 이 더 경사와 타원의 방정식 :데이터 기울기가없는 타원 피팅

a*x^2 + b*y^2 + c*x + d*y = e 

나는이 솔루션 (https://stackoverflow.com/a/12717181/3179989)이 흥미로운,하지만 내 문제에 대한 해결책을 얻을 수있는 매개 변수를 변경하는 방법을 잘 찾아 냈다.

도움을 주시면 감사하겠습니다.

편집 : 여기 내가 사용하고 코드입니다 : 이것은 보인다

[y.^2,x,y,ones(numel(x),1)]\x.^2 

ans = 
1.0e+04 * 
-0.0000 
0.0168 
-0.0014 
3.6390 
+2

변수는'a''b''c''d''이고'e''는 관측 값입니다 'x^2'와'y^2'를 쉽게 생성하고 최소 제곱을 사용하여 풀 수있는'x'와'y' 코드 – Shai

+0

어떤 코드 나 링크를 샘플로 참조 할 수 있습니까? – NESHOM

+2

그냥 – Shai

답변

1

작동합니다 :

%// Creating some test data 
x=sin(pi*(2*rand(50,1)-1))+(2*rand(size(x))-1)*.5;x=x./max(abs(x)); 
y=(sqrt(1-x.^2)+(2*rand(size(x))-1)*.5).*sign(rand(size(x))-0.5)+.5*x; 

%// Setup Van der Monde matrices and solve equations 
A=[y.^2,x.*y,x,y,ones(numel(x),1)]\x.^2 
B=[y.^2,x,y,ones(numel(x),1)]\x.^2 

plot(x,y,'o') %// Plot initial data 
hold on 
%// Plotting results the lazy way! 
[X,Y]=meshgrid(1.5*(min([x;y]):.001:max([x;y]))); 
contour(X,Y,-X.^2+A(1)*Y.^2+A(2)*X.*Y+A(3)*X+A(4)*Y+A(5),[0 0],'b') 
contour(X,Y,-X.^2+B(1)*Y.^2+B(2)*X+B(3)*Y+B(4),[0 0],'k') 
hold off 

파란색은 원래 타원형이고 검은 비 회전 타원

입니다

Ellipses!

+0

네, 작동합니다, 고맙습니다. – NESHOM