Given y, how do I find the value for x?

I plotted the function:
x = 0:0.01:2;
y=(1.96./x).*(1-exp(-0.83.*x));
I want to know the x value when y=1. I want to use an interp1 function, but that will only give me y values. Is there a function to find x values?
Also, I can't get my x-axis correct. I want it to span 0-2 (the value I'm looking for is around 1.3) with step sizes of 0.001 (for more precision). Currently, it goes 0 to 200 and I'm at a loss of what to do.
Thanks for the help.

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 18 Sep. 2013

0 Stimmen

>> f2 = @(y)arrayfun(@(y)fzero(@(x)1.96./x.*(1-exp(-0.83.*x))-y,1),y);
>> f2([.03 1 12])
ans =
65.333 1.2859 -3.8605

1 Kommentar

Will
Will am 18 Sep. 2013
Thanks! That gets me the correct answer. However, my matlab understanding is very limited, could you explain a little more how the fzero function and the arrayfun work?
Also, I still have the issue with my x axis being on the wrong order of magnitude.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by