Need to find x intercepts Using Matlab

Hi,
I have the following function and I am supposed to find the # of x intersects within the domain of [-20, 5].
3*x^2-1 = exp(-0.5*x)
I have the following commands typed into my script.
func = inline('3*x^2-1-exp(-0.5*x)')
fzero(func,[-20,5])
I am getting only 1 value showing me the x intercept but i am sure there are more than 1 intercepts.
How can i find all the x Intercepts.
PLEASE HELP...!!

1 Kommentar

Soliver Fusi
Soliver Fusi am 16 Okt. 2015
Bearbeitet: Soliver Fusi am 16 Okt. 2015
fsolve: fzero I think only works for one point

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 2 Okt. 2013

0 Stimmen

fzero() only calculates one intercept.
Plot the function and use the result to divide the distance between [-20, 5] into as many sub-ranges as necessary, each containing one intercept. Then fzero() over each of those sub-ranges.

4 Kommentare

Ravi
Ravi am 2 Okt. 2013
I actually figured this out and I have already done it that way using -20,-10 -10,0 0,5. I was wondering if there is one command which will give all three intercepts using one range.
Thank you very much for taking time to respond.
Walter Roberson
Walter Roberson am 2 Okt. 2013
No, there is no command that can be given an arbitrary function and will return all of its zeros. There is a contribution from Roger Stafford in the File Exchange that tries to return multiple roots.
Ravi
Ravi am 2 Okt. 2013
Thank you very much.
Walter Roberson
Walter Roberson am 2 Okt. 2013
Note: returning all zeros of an arbitrary function is a theoretical impossibility.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by