## 4.5 `FIT`: Fit a curve

### 4.5.1 Syntax

`FIT` *x1,y1 x2,y2 ...* *args*
### 4.5.2 Purpose

Fits a set of data using piecewise polynomials, or splines.
### 4.5.3 Comments

This function fits a set of piecewise polynomials to a set of data.

For fixed sources, it defines voltage or current as a function of
time.

The meaning of the `x` and `y` values depends on the component type:

component |
X |
Y |

C (capacitor) |
voltage |
charge |

E (VCVS) |
voltage |
voltage |

F (CCCS) |
current |
current |

G (VCCS) |
voltage |
current |

H (CCVS) |
current |
voltage |

I (current source) |
time |
current |

L (inductor) |
current |
flux |

R (resistor) |
current |
voltage |

V (voltage source) |
time |
voltage |

Y (admittance) |
voltage |
current |

VCCAP |
voltage |
capacitance |

VCG |
voltage |
conductance |

VCR |
voltage |
resistance |

trans-capacitor |
voltage |
charge |

The values of *x* must be in increasing order.

If *order* is 1, it is the same as `PWL`. If *order* is
3, it will use cubic splines. The result and its first two
derivatives are continuous.

Outside the specified range, it uses linear extrapolation. The
behavior depends on the parameters *below* and *above*. The
value of *below* or *above* is the derivative to use, which
is a resistance for resistors, voltage gain for a VCVS, and so on. If
it is not specified, the value is automatically determined.

The properties are determined by the value of *order*.

#### Order = 3 (cubic splines)

The default is to use “natural” splines, which sets the second
derivative to zero at the boundary. If a value of *below* or
*above* is specified, “clamped” splines will be used. In any
case, there will be a smooth transition at the boundaries. When using
“clamped” splines, the second derivative may have a discontinuity at
the boundaries

#### Order = 2 (quadratic splines)

By default, the derivative at the upper end is determined by the slope
of the last segment. This is also the derivative above the range.
Below the range, the derivative determined at the lower bound is used.
It is recommended that only one of *below* and *above* be
specified. If both are specified, the splines are determined using
*above*, and there will be a discontinuity in the derivative at
the lower bound.

#### Order = 1 (piecewise linear interploation)

For first order (linear) interpolation, the default slope outside the
range is the extension of the slope in the end segments. The
parameters *below* and *above* have no effect inside the
range.

#### Order = 0 (piecewise constant interploation)

The resulting value is constant over the interval, and has
discontinuities at the specified points. The parameters *below*
and *above* are ignored. The slope is always 0.
### 4.5.4 Parameters

`Order` = *x*- The order of the polynomial to fit,
within the supplied data. (Default = 3) Legal values are 0, 1, 2,
and 3, only.

`Below` = *x*- The value of the derivative to use
below or before the specified range.

`Above` = *x*- The value of the derivative to use
above or after the specified range.

### 4.5.5 Example

`C1 (2 0) fit (-5,-5u 0,0 1,1u 4,2u 5,2u) order=1`-
This “capacitor” stores 5 microcoulombs at -5 volts (negative,
corresponding to the negative voltage, as expected). The charge
varies linearly to 0 at 0 volts, acting like a 1 microfarad capacitor.
(C = dq/dv). This continues to 1 volt. The 0,0 point could have been
left out. The charge increases only to 2 microcoulombs at 4 volts,
for an incremental capacitance of 1u/3 or .3333 microfarads. The same
charge at 5 volts indicates that it saturates at 2 microcoulombs. For
negative voltages, the slope continues.