I have this code to draw haft of sphere x^2 + y^2 + z^2 = 1, z>0. but it have error. help me to fix it. thanks very much.

Antworten (1)

Mischa Kim
Mischa Kim am 27 Mai 2014
Bearbeitet: Mischa Kim am 27 Mai 2014

1 Stimme

Nguyen, use instead
z = real(sqrt(1 - x.^2 - y.^2));
to retain the real part only.

3 Kommentare

Nguyen Trong Nhan
Nguyen Trong Nhan am 27 Mai 2014
Bearbeitet: Nguyen Trong Nhan am 27 Mai 2014
oh thank. but why I have to use real(). these are positive numbers so the square root of them are also the real number, why does it appear complex number here ?
Mischa Kim
Mischa Kim am 27 Mai 2014
Bearbeitet: Mischa Kim am 27 Mai 2014
In a perfect world, yes. However, in numerical computations zero is not always (exactly) equal to zero. Check out this answer for reference. If you remove the semi-colon from
z = sqrt(1 - x.^2 - y.^2)
you'll notice that there are small non-zero imaginary parts.
Nguyen Trong Nhan
Nguyen Trong Nhan am 27 Mai 2014
ah Mischa Kim, could you explain me when I need to use the eval and double funtions in matlab ?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu App Building finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by