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'.'

 采纳的回答

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 个评论

@ 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.
@ 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.
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.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Orange 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by