how to find value of x for a known value of y(x), using fplot?

Hi !
I am using the function fplot to plot 5 functions. and the plot is working good.
now for each function I am trying to get the value of the x axis that makes the function equal to a certain value.
my current code is:
syms z(x)
z(x)=h(x)-f(x);
zValues=[0.6250 2.5000 10.0000 15.6250 22.5000];
%plot z(x)
figure;
fplot(z,'-','LineWidth',2)
axis([-35 35 -35 35]);
grid on;
yline(0);
xline(0);
and I get this plot:
I want to use the variable zValues to get 5 x values. such that for the blue line z(x) = 0.625 then x= ...
is there a way to do that?
Edit/ Note:
if the function z(x) was only one plot ( say the blue one ) I can use this:
solve(z(x)==zValues,x)
in this case zValues would be be one constant not a vector.

 Accepted Answer

The only way I was able to do this is to change z(x).
insted of having all the lines in one plot. I created a loop such that at each eteration z(x) is one line.
then I used
solve(z(x)==zValues,x)
it takes time but I got the results.

3 Comments

Switch to vpasolve() instead of solve(), it will go faster.
Also for convenience you can use arrayfun:
arrayfun(@(zV) double(vpasolve(z(x) == zV, x)), zValues)
Thank you!
one thing though, I don't understand what the array function does?
https://www.mathworks.com/help/matlab/ref/arrayfun.html

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!