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 Comment

Soliver Fusi
Soliver Fusi on 16 Oct 2015
Edited: Soliver Fusi on 16 Oct 2015
fsolve: fzero I think only works for one point

Sign in to comment.

 Accepted Answer

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 Comments

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.
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.
Thank you very much.
Note: returning all zeros of an arbitrary function is a theoretical impossibility.

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Asked:

on 1 Oct 2013

Edited:

on 16 Oct 2015

Community Treasure Hunt

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

Start Hunting!