fzero — Find scalar function zeros with bracketed root-finding in MATLAB and RunMat.
x = fzero(fun, x0) searches near scalar initial point x0 for a sign-changing bracket, then refines the root with a Brent-style method. x = fzero(fun, [a b]) uses the supplied bracket directly. Optional outputs follow MATLAB's standard contract: [x, fval], [x, fval, exitflag], and [x, fval, exitflag, output].
Syntax
x = fzero(fun, x0)
x = fzero(fun, x0, options)
[x, fval] = fzero(fun, x0)
[x, fval] = fzero(fun, x0, options)
[x, fval, exitflag] = fzero(fun, x0)
[x, fval, exitflag] = fzero(fun, x0, options)
[x, fval, exitflag, output] = fzero(fun, x0)
[x, fval, exitflag, output] = fzero(fun, x0, options)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
fun | Any | Yes | — | Scalar-valued callback. |
x0 | Any | Yes | — | Initial point or two-element bracket. |
options | Any | No | — | Options struct from optimset. |
Returns
| Name | Type | Description |
|---|---|---|
x | NumericScalar | Estimated root location. |
fval | NumericScalar | Function value at x. |
exitflag | NumericScalar | Convergence status code. |
output | Any | Iteration/function-count metadata struct. |
Returned values from fzero depend on how many outputs the caller requests.
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:fzero:InvalidArgument | Argument grammar/options struct are invalid. | fzero: invalid argument |
RunMat:fzero:InvalidInput | Callback/bracket/initial-point semantics are invalid. | fzero: invalid input |
RunMat:fzero:TooManyOutputs | `fzero` is called with more than four requested output arguments. | fzero: too many output arguments |
How fzero works
- The function handle must return a finite real scalar.
- Bracket endpoints must have opposite signs unless one endpoint is already a root.
- Options are supplied as a struct, usually created with
optimset.TolX,MaxIter,MaxFunEvals, andDisplayare accepted. fvalis the function value at the returnedx;exitflagis 1 for convergence and 0 when the iteration/function-evaluation budget is exhausted.- The four-output
outputstruct containsiterations,funcCount,algorithm, andmessagefields. - Requests for more than four outputs are rejected.
- Anonymous functions, named function handles, and function-handle strings work through RunMat's existing
fevaldispatch path.
Examples
Find the fixed point of cosine
f = @(x) cos(x) - x;
x = fzero(f, 0.5)Expected output:
x =
0.7391Use an explicit bracket
x = fzero(@sin, [3 4])Expected output:
x =
3.1416Return the root and function value
f = @(x) x.^2 - 4;
[x, fval] = fzero(f, [0 3])Expected output:
x =
2.0000
fval =
0Set a tighter tolerance
opts = optimset('TolX', 1e-10, 'Display', 'off');
x = fzero(@sin, [3 4], opts)Expected output:
x =
3.1416Using fzero with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how fzero changes the result.
Run a small fzero example, explain the result, then change one input and compare the output.
Related Math functions
Optim
coneprog · fminbnd · fminunc · fsolve · integral · linprog · lsqcurvefit · lsqnonlin · optimset · quad · secondordercone
Elementwise
abs · angle · bsxfun · complex · conj · double · erf · erfcinv · exp · expm1 · factorial · flintmax · gamma · gammaln · heaviside · hypot · idivide · imag · intmax · intmin · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · realmax · realmin · realsqrt · rescale · sign · single · sqrt · swapbytes · times · uint32
Trigonometry
acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · cospi · deg2rad · pol2cart · rad2deg · sin · sind · sinh · sinpi · tan · tand · tanh
Reduction
all · any · bounds · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · maxk · mean · median · min · mink · movmax · movmean · movmedian · movmin · movprod · movstd · movsum · movvar · nnz · prod · rms · std · sum · trapz · var
Structure
bandwidth · isdiag · ishermitian · issymmetric · istril · istriu · symrcm
Signal
blackman · butter · buttord · cheb2ord · conv · conv2 · deconv · downsample · envelope · filter · filtfilt · fir1 · freqz · gauspuls · hamming · hann · hilbert · periodogram · pulstran · pwelch · rectpuls · resample · sawtooth · sinc · spectrogram · square · tripuls · unwrap · upsample · zplane
Ops
cross · ctranspose · dot · mldivide · mpower · mrdivide · mtimes · pagemtimes · pagetranspose · trace · transpose
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how fzero is executed, line by line, in Rust.
- View the source for fzero in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.