Getting complex value for real integration

3 views (last 30 days)
I'm getting complex value in real integration while trying to find area under ellipse as shown in below figure. Please advise
  9 Comments
Mithun Kumar Munaganuri
Mithun Kumar Munaganuri on 4 Apr 2022
@Steven Lord Yes, I'm trying to find the area bounded by a portion of the ellipse. Lengths of minoand major axes of the ellipse are 2a,2b respectively. Equation that generates this ellipse is provided below the picture drawn.
@Torsten I was able to find the area after taking some assumptions and modifying the code.
Mithun Kumar Munaganuri
Mithun Kumar Munaganuri on 4 Apr 2022
@Torsten and @Steven Lord Thanks for your help, I'm able to find the required area after specifying some assumptions and simplifying the equation.

Sign in to comment.

Accepted Answer

David Goodmanson
David Goodmanson on 4 Apr 2022
Edited: David Goodmanson on 4 Apr 2022
Hi Mithun,
One of the more straightforward methods is to forget about symbolics and just write down the solution for y. The ellipse has semimajor axis a along x, semiminor axis b along y, and is centered at
( w/2, -(b/(2*a))*sqrt(4*a^2-w^2) )
so that the ellipse passes through both the origin and (w,0). w has to be less than 2*a, the major axis. Solve the ellipse equation for y,
( y + (b/(2*a))*sqrt(4*a^2-w^2) )^2/b^2 = 1 - (x-w/2).^2/a^2
take the sqrt of both sides**, rearrange
y = -(b/(2*a))*sqrt(4*a^2-w^2) +- b*sqrt((1-(x-w/2).^2/a^2)).
** the sqrt of the left hand side is taken as positive. The sqrt of the right hand side can be either sign, but the positive sqrt is chosen since from the figure, y>=0. So
a = 3; b = 2; w = 5;
fun = @(x) -(b/(2*a))*sqrt(4*a^2-w^2) + b*sqrt((1-(x-w/2).^2/a^2));
integral(fun,0,w)
ans = 3.1468
  3 Comments
David Goodmanson
David Goodmanson on 4 Apr 2022
Hi Mithun,
you're most welcome. One thing I forgot to mention is that when you post a question it's not best practice to post images of code. It's much better to copy in the code as text. That way, people looking to assist can just copy the code and run it, rather than having to type it in by hand.
Mithun Kumar Munaganuri
Mithun Kumar Munaganuri on 5 Apr 2022
Yeah David, thanks for the tip. This is my first time posting anything in such discussion forums. I'll follow this good practice from next time.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!