Encounter an error while using fimplicit?

How to plot the following equation on matlab by using fimplicit?
(x-x0).*conj((x-x0))+(y-y0).^2=r^2
close all;
r=1./2;
x0=0;
y0=1./2;
syms x y
fimplicit((x-x0).*conj((x-x0))+(y-y0).^2-r^2)
axis equal
Matlab shows
'Undefined function or variable 'fimplicit'.'

 Réponse acceptée

Star Strider
Star Strider le 16 Avr 2020
The fimplicit function was introduced in R2016b.
Use the contour function instead:
r=1./2;
x0=0;
y0=1./2;
f = @(x,y) (x-x0).*conj((x-x0))+(y-y0).^2-r^2;
xv = linspace(x0-r, x0+r, 25);
yv = linspace(y0-r, y0+r, 25);
[X,Y] = ndgrid(xv,yv);
figure
contour(X,Y,f(X,Y), [0 0])
grid
axis equal
.

6 commentaires

Wajahat
Wajahat le 16 Avr 2020
@ Star Strider, how can we fill the color inside the circle like this
Add a patch call:
figure
hc = contour(X,Y,f(X,Y), [0 0]);
hold on
patch(hc(1,2:end), hc(2,2:end), [0.4 0.2 0.9], 'FaceAlpha',0.3)
hold off
grid
axis equal
Experiment with different colours (the ‘[0.4 0.2 0.9]’ vector) to get the result you want.
Wajahat
Wajahat le 16 Avr 2020
@ Star Strider, but when we change the sign, it shows the hyperbolic plot
r=1./2;
x0=0;
y0=1./2;
f = @(x,y) -(x-x0).*conj((x-x0))+(y+y0).^2-r^2;
xv = linspace(x0-r, x0+r, 25);
yv = linspace(y0-r, y0+r, 25);
[X,Y] = ndgrid(xv,yv);
figure
hc = contour(X,Y,f(X,Y), [0 0]);
hold on
patch(hc(1,2:end), hc(2,2:end), [0.8 0.1 0.9], 'FaceAlpha',0.3)
hold off
grid off
axis equal
But I need like this
This is a different problem.
With this function:
f = @(x,y) -(x-x0).*conj((x-x0))+(y+y0).^2-r^2;
the patch call changes to:
patch([hc(1,2:end) fliplr(hc(1,2:end))], [hc(2,2:end) ones(size(hc(1,2:end)))*max(ylim)], [0.4 0.2 0.9], 'FaceAlpha',0.3)
The rest of the code is not changed.
Wajahat
Wajahat le 16 Avr 2020
I got this
which is not same as the previous attached hyperboic image
Adjust the limits of ‘xv’ (and perhaps also ‘yv’) to match the figure you want.
For example:
xv = linspace(-1, 1, 25);
You may need to change the parameters in the ‘f’ function to exactly reproduce the figure you posted.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by