# newrbe

## Syntax

```net = newrbe(P,T,spread) ```

## Description

Radial basis networks can be used to approximate functions. `newrbe` very quickly designs a radial basis network with zero error on the design vectors.

`net = newrbe(P,T,spread)` takes two or three arguments,

 `P` `R`x`Q` matrix of `Q` `R`-element input vectors `T` `S`x`Q` matrix of `Q` `S`-element target class vectors `spread` Spread of radial basis functions (default = 1.0)

and returns a new exact radial basis network.

The larger the `spread` is, the smoother the function approximation will be. Too large a spread can cause numerical problems.

## Examples

Here you design a radial basis network given inputs `P` and targets `T`.

```P = [1 2 3]; T = [2.0 4.1 5.9]; net = newrbe(P,T); ```

The network is simulated for a new input.

```P = 1.5; Y = sim(net,P) ```

## Algorithms

`newrbe` creates a two-layer network. The first layer has `radbas` neurons, and calculates its weighted inputs with `dist` and its net input with `netprod`. The second layer has `purelin` neurons, and calculates its weighted input with `dotprod` and its net inputs with `netsum`. Both layers have biases.

`newrbe` sets the first-layer weights to `P'`, and the first-layer biases are all set to `0.8326/spread`, resulting in radial basis functions that cross 0.5 at weighted inputs of +/– `spread`.

The second-layer weights `IW{2,1}` and biases `b{2}` are found by simulating the first-layer outputs `A{1}` and then solving the following linear expression:

```[W{2,1} b{2}] * [A{1}; ones] = T ```

## Version History

Introduced before R2006a