Why does my graph come out wrong?

13 Ansichten (letzte 30 Tage)
Ara Omar
Ara Omar am 16 Jan. 2022
Kommentiert: Voss am 16 Jan. 2022
I want to plot a simple function, ((x.^2)-1).^(2/3). But my plot comes out looking different from the mathematicly correct one. Why is that? To specify, the graph should not be able to go under the x=0 line, yet it does.

Antworten (2)

Jan
Jan am 16 Jan. 2022
fplot(@(x) ((x.^2)-1).^(2/3))
  1 Kommentar
Ara Omar
Ara Omar am 16 Jan. 2022
nevermind, i figured it out, i need an "abs" ahead of my function

Melden Sie sich an, um zu kommentieren.


Voss
Voss am 16 Jan. 2022
x = -10:0.01:10;
y = (x.^2-1).^(2/3);
plot(x,y)
Warning: Imaginary parts of complex X and/or Y arguments ignored.
Note the warning about complex values. The values of y where abs(x) < 1 are complex because x^2-1 < 0 where abs(x) < 1. To skip plotting this reagin, you can keep track of when y is real and only plot those elements:
idx = imag(y) == 0;
plot(x(idx),y(idx))
ylim([-5 25])
Note the lack of warning this time. You could also replace the complex y with NaNs and plot that:
y(~idx) = NaN;
plot(x,y)
ylim([-5 25])
  2 Kommentare
Ara Omar
Ara Omar am 16 Jan. 2022
When i added an "abs" infront of my function, it made the values of y when -1<x<1 all positive, which is what i was searching for.
Voss
Voss am 16 Jan. 2022
If you want to plot abs(((x.^2)-1).^(2/3)), then that will work.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by