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.
The user enters a formula for f(x), the starting values x1, x2, x3, the iteration limit n, and tolerances for the size of the final x and y intervals.
The program returns an estimate for a critical point x, which might be a minimum, maximum or just an inflection point. It also returns the number of iterations.The program can be invoked by a function call, in which case the string specifying f(x) must be quoted:
[ x, it ] = opt_quadratic ( 'x^2+sin(4*x)', -1, 1, 2, 25, 0.00001, 0.000001 )or, if called with no arguments, it will request them:
[ x, it ] = opt_quadratic ( ); Enter function formula, like x^2: x^2+sin(4*x) Enter point 1, x1: -1 Enter point 2, x2: 1 Enter point 3, x3: 2 Enter number of iterations, n: 25 Enter x tolerance: 0.00001 Enter y tolerance: 0.00001
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.
opt_quadratic 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_bisect, an Octave code which interactively uses bisection to seek a zero of a function f(x) within 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.
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 [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_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].