lsqnonlin

lsqnonlin minimizes the squared 2-norm of a vector-valued residual callback fun(x) using RunMat's shared finite-difference Levenberg-Marquardt least-squares solver. Scalar, vector, and matrix x0 inputs are supported and the returned solution preserves the shape of x0.

Syntax

x = lsqnonlin(r, [0; 0])

GPU memory and residency

lsqnonlin gathers residuals and bounds to the host for iterative solving. Callback bodies can still use GPU-aware builtins; provider-native nonlinear least-squares is deferred to the GPU fast-path audit.

Examples

r = @(x) [x(1)-2; x(2)-3; x(1)+x(2)-5];
x = lsqnonlin(r, [0; 0])

Expected output:

x = [2; 3]
x = lsqnonlin(@(x) [x-2, x-2], 0, -1, 1)

Expected output:

x = 1
opts = optimoptions("lsqnonlin", "Algorithm", "levenberg-marquardt", "Display", "off");
[x, resnorm, residual, exitflag, output, lambda, jacobian] = lsqnonlin(@(x) [x(1)-1, 2*x(2)-4], [0 0], [], [], opts)

Expected output:

x approaches [1 2], resnorm approaches 0, and jacobian is 2-by-2.

Using lsqnonlin with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how lsqnonlin changes the result.

Run a small lsqnonlin example, explain the result, then change one input and compare the output.

FAQ

Does lsqnonlin support linear or nonlinear constraints?

Not yet. Empty A, b, Aineq, bineq, Aeq, beq, and nonlcon placeholders are accepted so common option-forwarding scripts run, but non-empty constraints are rejected because RunMat does not yet have the interior-point constrained least-squares infrastructure.

Does lsqnonlin run on the GPU?

The solver is host iterative work. Callback code may call GPU-aware builtins, but residuals and bounds are gathered for the solver. Provider-native nonlinear least-squares execution belongs to the queued GPU fast-path audit rather than this compatibility slice.

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

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · decomposition · eig · eigs · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · null · pinv · rank · rcond · rref · vecnorm

Symbolic

digits · int · limit · piecewise · sym · syms · vpa

Fft

fft · fft2 · fftshift · ifft · ifft2 · ifftshift

Discrete

lcm · primes

Ode

ode15s · ode23 · ode45

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how lsqnonlin is executed, line by line, in Rust.

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.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.