Getting 3 zeros from a function using fzero
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I'm trying to collect the 3 zeros over the interval [-5,5] for the function in my code below. I can't seem to figure out how to used the fzero function so I can collect all three zero values and store them.
my_function = @(x) (-x^2 - 5*x - 3 + e^x);
a = fzero(my_function,[-5 5]);
0 Kommentare
Akzeptierte Antwort
Ashikur
am 16 Okt. 2011
Try this
my_function = @(x) (-x^2 - 5*x - 3 + exp(x));
for i = -5:.01:5
a = fzero(my_function,i)
ind = int8((5.01+i)*100)
b(ind) = a;
end
result = unique(b)
Note: fzero outputs only one value, and the limit must evaluate the function +Ve and -Ve in the limiting edges. So you have to try a loop.
Weitere Antworten (1)
Fangjun Jiang
am 16 Okt. 2011
Are there three zeros? I only get one. Use exp(x), instead of e^x
>> my_function = @(x) (-x^2 - 5*x - 3 + exp(x));
a = fzero(my_function,[-5 5])
a =
-4.306510588580705
3 Kommentare
Walter Roberson
am 16 Okt. 2011
There are 3 zeros,
-.5426539024,
3.482467600,
-4.306510589
Remember, fzero stops when it finds a single zero.
Fangjun Jiang
am 16 Okt. 2011
That is good to know. I didn't spend time on it. I thought the OP could get there after passing the e^x error.
Siehe auch
Kategorien
Mehr zu Function Handles finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!