How to plot implicit function with conditions?

I need to plot a function / surface of the form f(x,y,z)=0
But, I also need to put some constraints like
-3.14< $\sqrt{x+y}$ <3.14
How can i achieve this?

답변 (2개)

Torsten
Torsten 2022년 7월 10일
편집: Torsten 2022년 7월 10일

0 개 추천

댓글 수: 4

The problem is my condion can't be expressed as ranges
how can i express -2<z+sqrt(x^2+y^2)<2 as range?
Torsten
Torsten 2022년 7월 10일
And what is the function f for which you want to plot the surface f(x,y,z)=0 ?
Here is an example:
fimplicit(@fun)
Warning: Function behaves unexpectedly on array inputs. To improve performance, properly vectorize your function to return an output with the same size and shape as the input arguments.
function values = fun(x,y)
values = NaN(size(x));
values(x+y<0) = x.^2+y.^2-1.0;
end
My function is actually in cylindrical polar coordinates:
f(R,theta, z) = (tan(r+z)+tan(z-r)) - (tan(r+z)-tan(z-r))cos(theta)
and my domain for plot is
-pi<r+z<pi and -pi<z-r<pi

댓글을 달려면 로그인하십시오.

Torsten
Torsten 2022년 7월 11일
편집: Torsten 2022년 7월 11일
Doesn't look that nice ...
fimplicit3(@fun,[-5 5 -5 5 -5 5])
function values = fun(x,y,z)
[theta,r] = cart2pol(x,y);
%r = sqrt(x.^2+y.^2);
%theta = atan2(y,x);
values = NaN(size(x));
for i=1:numel(x)
if abs(z(i)+r(i)) < pi && abs(z(i)-r(i)) < pi
values(i) = (tan(z(i)+r(i))+tan(z(i)-r(i))) - (tan(z(i)+r(i))-tan(z(i)-r(i))).*cos(theta(i));
end
end
end

카테고리

제품

릴리스

R2022a

질문:

2022년 7월 10일

편집:

2022년 7월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by