How to shader the stability area ?

2 views (last 30 days)
x0 = -5; x1 = 5; Nx = 301;
y0 = -5;
y1 = 5;
Ny = 301;
xv = linspace(x0,x1,Nx);
yv = linspace(y0,y1,Ny);
[x,y] = meshgrid(xv,yv);
h = x + i*y;
g = -(118224803259250638877444968353370600910051934512743.*h.^9 - 237428789745399453892107883780168786708111749629870080.*h.^6 + 8178108279897162920859527218771768255678191550351802368.*h.^3 + 196159429230833773869868419475239575503198607639501078528)./(32*(2846779580313514030178888018748426609395855663955.*h.^9 + 1850166005134036192585345683694925738701755489714176.*h.^6 + 31532715869896263823264459664257271745814644580679680.*h.^3 - 6129982163463555433433388108601236734474956488734408704))
gmag = abs(g);
% Plot contours of gmag
contour(x,y,gmag,[1 1],'b-')
axis([x0,x1,y0,y1]);
axis('square');
xlabel('Real ')
ylabel('Imag ')
grid on

Accepted Answer

Star Strider
Star Strider on 16 Jul 2018
What region do you want to plot?
You appear to have specified a transfer function. Plotting it is straightforward:
f = @(h) (25.*h.^8 + 765.*h.^7 + 12423.*h.^6 + 131310.*h.^5 + 962910.*h.^4 + 4944240.*h.^3 + 17191440.*h.^2+36741600.*h + 36741600) ./ (25.*h.^8 -765.*h.^7 + 12423.*h.^6 - 131310*h.^5 + 962910.*h.^4 - 4944240.*h.^3 + 17191440.*h.^2-36741600.*h + 36741600);
hv = linspace(0, 20, 1E+3);
figure
plot(hv, f(hv))
grid
The function quickly approaches zero outside the specified limits I defined for ‘hv’.
  4 Comments
sadeem alqarni
sadeem alqarni on 16 Jul 2018
How to draw f=25.*h.^8 + 765.*h.^7 + 12423.*h.^6 + 131310.*h.^5 + 962910.*h.^4 + 4944240.*h.^3 + 17191440.*h.^2+36741600.*h + 36741600./ 25.*h.^8 -765.*h.^7 + 12423.*h.^6 - 131310*h.^5 + 962910.*h.^4 - 4944240.*h.^3 + 17191440.*h.^2-36741600.*h + 36741600 The same way you draw a picture
Star Strider
Star Strider on 16 Jul 2018
Edited: Star Strider on 18 Jul 2018
Run all the code in my original Answer to find out (repeated here):
f = @(h) (25.*h.^8 + 765.*h.^7 + 12423.*h.^6 + 131310.*h.^5 + 962910.*h.^4 + 4944240.*h.^3 + 17191440.*h.^2+36741600.*h + 36741600) ./ (25.*h.^8 -765.*h.^7 + 12423.*h.^6 - 131310*h.^5 + 962910.*h.^4 - 4944240.*h.^3 + 17191440.*h.^2-36741600.*h + 36741600);
hv = linspace(0, 20, 1E+3);
figure
plot(hv, f(hv))
grid
EDIT (18 Jul 2018 at 01:04 UTC)
Your edited code is entirely different from your previous code.
I am not certain what you want. Filling in the contours with different colours is straightforward with the contourf function:
contourf(x,y,gmag,[0.001 1],'b-');
colormap([1 0 0; 0 1 0]) % Colour Values < 1 Red, Values >= 1 Green
Change a colormap row to [1 1 1] to make it white if you only want one area coloured.

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!