> Y := X*(1-X)*(C[1] + C[2]*X);

                    Y := X (1 - X) (C[1] + C[2] X)

ein und erhält aus der Forderung (7.126) drei Gleichungen zur Bestimmung der beiden Freiwerte:
> eqn1 := subs(X = 1/4,diff(Y,X$2) +Y +X = 0);

                          29        35
                 eqn1 := --- C[1] + -- C[2] + 1/4 = 0
                          16        64

> eqn2 := subs(X = 1/2,diff(Y,X$2) +Y +X = 0);

                eqn2 := -7/4 C[1] - 7/8 C[2] + 1/2 = 0

> eqn3 := subs(X = 3/4,diff(Y,X$2) +Y +X = 0);

                         29        151
                eqn3 := --- C[1] - --- C[2] + 3/4 = 0
                         16        64

Diese Gleichungen kann man in der Matrixform [ A ]*{c} = {a} schreiben, wenn  man folgende Matrizen einführt.
> with(linalg):
> A := matrix(3,2,[[116, -35],[112, 56],[116, 151]]);

                               [116    -35]
                               [          ]
                          A := [112     56]
                               [          ]
                               [116    151]

> a := matrix(3,1,[[16],[32],[48]]);

                                   [16]
                                   [  ]
                              a := [32]
                                   [  ]
                                   [48]

Multipliziert man die Matrizengleichung [ A ]*{C} = {a} von links mit der Transponierten von [ A ],so erhält man eine neue Gleichung [ B ]*{C} = {b} mit folgeden Matrizen:
> B := multiply (transpose(A),A);

                             [39456    19728]
                        B := [              ]
                             [19728    27162]

> b := multiply (transpose(A),a);

                                  [11008]
                             b := [     ]
                                  [ 8480]

Damit kann der Lösungsvektor mit den beiden Konstanten ermittelt werden:
> C := linsolve(B,b);

                                  [7376 ]
                                  [-----]
                                  [38223]
                             C := [     ]
                                  [ 16  ]
                                  [ --  ]
                                  [ 93  ]

Der Näherungsansatz ergibt sich damit zu:
> Y := x*(1-x)*(7376/38223 + (16/93)*x);

                                   /7376    16 x\
                    Y := x (1 - x) |----- + ----|
                                   \38223    93 /

Die exakte Lösung lautet:
> y[ex] := sin(x)/sin(1) -x;

                                  sin(x)
                         y[ex] := ------ - x
                                  sin(1)

Im folgenden Bild sind diese beiden Lösungen dargestellt.
> plot({Y,y[ex]},x = 0..1);

Die Näherung weicht nur im Rahmen der Strichstärke von der exakten Lösung ab !
> 
> 
