13 views (last 30 days)

Hello,

I have the following equation:

(A*x^2)+(B*x*y)+(C*x)+(D*y^2)+(E*y)+F==0

Where all of the coefficients are already known and I am trying to find all values of x and y that satify the equation for the rotated ellipse. I cannot use fimplicit because it is not accurate enough, I need on the order of machine precision. I also tried to use solve(), but it only gives me two solutions for x and y. Do you guys know what other options I could try to solve this?

Matt J
on 20 Oct 2020

If you convert the ellipse to its polar representation

that will give you an explicit formula with which to generate sample points.

Bruno Luong
on 20 Oct 2020

Edited: Bruno Luong
on 20 Oct 2020

% Random coefficients for test:

A = 0.5+rand;

D = 0.5+rand;

B = rand;

C = rand;

E = rand;

F = -rand;

H = [A, B/2;

B/2, D];

g = 0.5*[C; E];

c = F;

% FEX https://www.mathworks.com/matlabcentral/fileexchange/27711-euclidian-projection-on-ellipsoid-and-conic

[radii, U, x0] = EllAlg2Geo(H, g, c);

% points on ellipse, parametric

Ea = U*diag(radii);

theta = linspace(0,2*pi,181);

ellipse = x0 + Ea*[cos(theta); sin(theta)];

% implicit function on grid

[minxy, maxxy] = bounds(ellipse,2);

x = linspace(minxy(1),maxxy(1));

y = linspace(minxy(2),maxxy(2));

[X,Y] = meshgrid(x,y);

XY = [X(:) Y(:)]';

Z = reshape(sum(XY.*(H*XY + g),1) + c, size(X)); % == (A*x^2)+(B*x*y)+(C*x)+(D*y^2)+(E*y)+F

Z = reshape(Z, size(X));

figure

imagesc(x,y,Z);

hold on

% implicit curve

% contour(x,y,Z,[0 0],'ro'); % gives also points on ellipse

plot(ellipse(1,:),ellipse(2,:),'w');

axis equal;

Opportunities for recent engineering grads.

Apply TodayFind the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
## 2 Comments

## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/619493-how-to-solve-explicit-equation-of-ellipse#comment_1072178

⋮## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/619493-how-to-solve-explicit-equation-of-ellipse#comment_1072178

## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/619493-how-to-solve-explicit-equation-of-ellipse#comment_1073478

⋮## Direct link to this comment

https://in.mathworks.com/matlabcentral/answers/619493-how-to-solve-explicit-equation-of-ellipse#comment_1073478

Sign in to comment.