nonlin_bisect, an Octave code which interactively applies bisection to seek a root of f(x) over a change-of-sign interval a <= x <= b.
The user enters a formula for f(x), and the values of a and b. It must be the case that the signs of f(a) and f(b) are opposite.
The program then repeatedly applies bisection until the width of the interval is very small.
The program can be invoked by a function call, in which case the string specifying f(x) must be quoted:
[ a, b, fa, fb ] = nonlin_bisect ( 'x^2-4', -1, 3 )or, if called with no arguments, it will request them:
[ a, b, fa, fb ] = nonlin_bisect ( ); Enter function formula, like x^2-4: x^2-4 Enter left limit, a: -1 Enter right limit, b: 3
The function is specified as a string which is either:
The string should not contain any spaces between symbols, except when it is passed as a function argument in quotes.
It is not necessary to use the "dot" notation for expressions involving '*', '/', or '^', but it doesn't hurt either.
Examples of function specifications:
x^2 x.^2 3/(x^4+5*x-6) sin(7*x)*sqrt(x)/8 wiggle(x) <-- where "wiggle.m" is a user-provided M file.
The information on this web page is distributed under the MIT license.
nonlin_bisect is available in a MATLAB version and an Octave version.
approx_bernstein, an Octave code which interactively approximates a function f(x) in the interval [a,b] by constructing a Bernstein polynomial.
approx_chebyshev, an Octave code which interactively approximates a function f(x) in the interval [a,b] by constructing a Chebyshev polynomial interpolant that is often a good estimate of the minmax polynomial.
approx_leastsquares, an Octave code which interactively approximates a function f(x) in the interval [a,b] by constructing an m-degree polynomial which minimizes the square root of the sum of the squares of the error with n sample data points.
diff_center, an Octave code which interactively uses centered differences to estimate the derivative of a function f(x), using a stepsize h.
diff_forward, an Octave code which interactively uses forward differences to estimate the derivative of a function f(x), using a stepsize h.
diff2_center, an Octave code which interactively uses centered differences to estimate the second derivative of a function f(x), using a stepsize h.
dot_l2, an Octave code which estimates the L2 dot product of two functions over an interval [A,B], with the functions entered as a string.
interp_chebyshev, an Octave code which interactively uses n Chebyshev spaced nodes in the interval [a,b] to interpolate a function f(x) with a polynomial.
interp_equal, an Octave code which interactively uses n equally spaced nodes in the interval [a,b] to interpolate a function f(x) with a polytnomial.
interp_ncs, an Octave code which interactively constructs a natural cubic spline (NCS) interpolant to a function f(x), using the 'zero second derivative' end condition.
interp_spline, an Octave code which interactively constructs a cubic spline interpolant to (x,y) data.
iplot, an Octave code which interactively plots a function f(x) over a domain a ≤ x ≤ b;
nonlin_fixed_point, an Octave code which interactively uses fixed point iteration x=g(x) to seek a zero of a function f(x) given a starting point x0 and a number of iterations it;
nonlin_newton, an Octave code which interactively uses Newton's method to find the zero of a function, given formulas for f(x), f'(x), and a starting point.
nonlin_regula, an Octave code which interactively uses the regula falsi method to seek a zero of a function f(x) within a domain a ≤ x ≤ b;
nonlin_secant, an Octave code which interactively uses the secant method to seek a zero of a function f(x) given two starting estimates a and b.
nonlin_snyder, an Octave code which interactively uses Snyder's variation of the regula falsi method to seek a zero of a function f(x) within a change of sign interval [a,b];
norm_l1, an Octave code which estimates the L1 norm of a function over an interval [A,B], with the function entered as a string.
norm_l2, an Octave code which estimates the L2 norm of a function over an interval [A,B], with the function entered as a string.
norm_loo, an Octave code which estimates the L-infinity norm of a function over an interval [A,B], with the function entered as a string.
norm_rms, an Octave code which estimates the root mean square (RMS) norm of a function over an interval [A,B], with the function entered as a string.
ode_euler, an Octave code which interactively applies the Euler method to estimate the solution of an ordinary differential equation (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
ode_euler_backward, an Octave code which interactively applies the backward Euler method to estimate the solution of an ordinary differential equation (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
ode_euler_system, an Octave code which interactively applies the Euler method to estimate the solution of a system of ordinary differential equations (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
ode_midpoint, an Octave code which interactively applies the midpoint method to estimate the solution of an ordinary differential equation (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
ode_midpoint_system, an Octave code which interactively applies the midpoint method to estimate the solution of a system of ordinary differential equations (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
ode_rk4, an Octave code which interactively applies a fourth order Runge-Kutta method to estimate the solution of an ordinary differential equation (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
ode_trapezoidal, an Octave code which interactively applies the trapezoidal method to estimate the solution of an ordinary differential equation (ODE) y'=f(x,y), over the interval [a,b], with initial condition y(a)=ya, using n steps.
opt_golden, an Octave code which interactively estimates a minimizer of a function f(x) over the interval [a,b], assuming f(x) is unimodular (U-shaped) over the interval [a,b].
opt_gradient_descent, an Octave code which interactively seeks a local minimum of a function f(x), given a formula for the derivative f'(x), a starting point x0, and a stepsize factor gamma.
opt_quadratic, an Octave code which interactively uses quadratic interpolation to estimate a critical point of a function f(x) given three starting points, an iteration limit n, and tolerances for x and y.
opt_sample, an Octave code which interactively estimates the minimum and maximum of a function f(x) over an interval [a,b], using n random sample values, with the function entered as a string.
quad_gauss, an Octave code which interactively uses an n-point Gauss quadrature rule to estimate the integral of a function f(x) in the interval [a,b].
quad_monte_carlo, an Octave code which interactively uses n random samples to estimate the integral of a function f(x) in the interval [a,b].
quad_trapezoid, an Octave code which interactively applies a trapezoidal quadrature rule using n intervals to estimate the integral of a function f(x) over an interval [a,b].