Filter löschen
Filter löschen

why my plot is not correct?

3 Ansichten (letzte 30 Tage)
wenchong chen
wenchong chen am 11 Apr. 2021
Kommentiert: DGM am 11 Apr. 2021
here is my code
x = -5:0.1:5
y = x.^(1/3)
plot(x,y)
  2 Kommentare
wenchong chen
wenchong chen am 11 Apr. 2021
it is working, but it is giving me wrong number
wenchong chen
wenchong chen am 11 Apr. 2021
also there is a Warning: Imaginary parts of complex X and/or Y arguments ignored.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Paul
Paul am 11 Apr. 2021
If you're looking for a plot with odd symmetry, try:
plot(x,nthroot(x,3)) % check doc nthroot for details

DGM
DGM am 11 Apr. 2021
I'm not sure what you intend the correct number to be. You're doing the cube root of negative numbers. They're going to be complex.
By default, plot() will only plot the real component of complex inputs. If you're expecting the plot to be symmetrical, consider plotting abs(y) to get the magnitude of the complex-valued region.
x = -5:0.1:5;
y = x.^(1/3);
h1=plot(x,real(y)); hold on
h2=plot(x,imag(y));
h3=plot(x,abs(y));
legend([h1,h2,h3],'real','imaginary','magnitude','location','southeast')
  2 Kommentare
wenchong chen
wenchong chen am 11 Apr. 2021
the^1/3 of negative numbers should be negative right? why both negative and positive side are both positive number?
DGM
DGM am 11 Apr. 2021
You probably want Paul's answer below. nthroot() calculates the real root, whereas power() or .^ calculates the complex root. The web docs include such an example.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by