pipe_network

Scilab function
Last update : 16/06/2004

pipe_network - résout le problème du réseau de tuyaux

### Calling Sequence

  `[x,pi] = pipe_network(g)`

### Parameters

- `g` : graphe (liste)
- `x` : vecteur ligne des valeurs des flots sur les arcs
- `pi` : vecteur ligne des potentiels sur les sommets

### Description

`pipe_network` renvoie les valeurs des flots et des potentiels pour le problème du réseau de tuyaux (problème de flots avec deux lois de Kirchhoff). Le graphe doit être orienté. Le problème doit être soluble (la somme des demandes des sommets doit être égale à 0). Les résistances sur les arcs doivent être strictement positives et sont données par les valeurs de l'élément 'edge_weight' du graphe.

Le problème est résolu à l'aide d'une factorisation LU creuse.

### Examples

    ta=[1 1 2 2 3 3 4 4 5 5 5 5 6 6 6 7 7 15 15 15 15 15 15];
    ta=[ta, 15 8 9 10 11 12 13 14];
    he=[10 13 9 14 8 11 9 11 8 10 12 13 8 9 12 8 11 1 2 3 4];
    he=[he, 5 6 7 16 16 16 16 16 16 16];
    n=16;
    g=make_graph('foo',1,n,ta,he);
    g('node_x')=[42 615 231 505 145 312 403 233 506 34 400 312 142 614 260 257];
    g('node_y')=[143 145 154 154 147 152 157 270 273 279 269 273 273 274 50 376];
    show_graph(g);
    g('node_demand')=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 -100 100];
    w = [1 3 2 6 4 7 8 1 2 2 2 4 7 8 9 2 3 5 7 3 2 5 8 2 5 8];
    g('edge_weight')=[w, 6 4 3 5 6];
    [x,pi] = pipe_network(g)