How to plot this implicit function?

10 Ansichten (letzte 30 Tage)
xiao dage
xiao dage am 24 Jun. 2015
Beantwortet: Torsten am 25 Jun. 2015
x and y satisfy this implicit function:
10000^x*cos(x*pi/2)+10000^y*cos(y*pi/2)=0 (This implicit function cannot be transferred into the form as y=f(x) )
And z =(1000.^x).*sin(x*pi/2)*(10e-6)+(1000.^y).*sin(y*pi/2)*(10e-6);
Now how to plot (x,z)? I just use ezplot to plot (x,y), but I cannot pick up the concrete values of (x,y).

Akzeptierte Antwort

Torsten
Torsten am 24 Jun. 2015
Given x, calculate y from the relation
10000^x*cos(x*pi/2)+10000^y*cos(y*pi/2)=0
using MATLAB's fzero.
Then insert x and y in the relation
z =(1000.^x).*sin(x*pi/2)*(10e-6)+(1000.^y).*sin(y*pi/2)*(10e-6);
to calculate z.
Best wishes
Torsten.
  1 Kommentar
xiao dage
xiao dage am 25 Jun. 2015
Bearbeitet: xiao dage am 25 Jun. 2015
Thank you for your answer!
The above graph is produced by
ezplot('10000^x*cos(x*pi/2)+10000^y*cos(y*pi/2)=0',[0,4])
It can be seen that for one x, two or more values of y had been obtained is we expand the scope of x.
And with
y=@(a)fzero(@(y) 10000^x*cos(x*pi/2)+10000^y*cos(y*pi/2),1);
y1=y(0.1);
I can only calculate one y for one x, for example y1=y(0.1). So how to insert x and y in the relation
z =(1000.^x).*sin(x*pi/2)*(10e-6)+(1000.^y).*sin(y*pi/2)*(10e-6);
to calculate z if I want to plot (x,z) in the scope of (0,2).

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Torsten
Torsten am 25 Jun. 2015
xstart=0;
xend=2;
nx=10;
for i=1:nx+1
x0=xstart+(i-1)/nx*(xend-xstart);
x(i)=x0;
y0=fzero(@(y) 10000^x0*cos(x0*pi/2)+10000^y*cos(y*pi/2),1);
z(i)=(1000^x0)*sin(x0*pi/2)*(10e-6)+(1000^y0)*sin(y0*pi/2)*(10e-6);
end
plot(x,z)
Best wishes
Torsten.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by