# Als weiteres Kriterium zur Beurteilung der Güte der Näherungen kann
# die  Fehlernorm (7.133) herangezogen, die mit Hilfe der MAPLE-Software
# für die einzelnen Näherungen (26), (32) und (33) bestimmt worden ist,
# wie der nach-stehende Computerausdruck zeigt.
# 
# Ermittlung der L- zwei- Fehlernormen für die einzelnen Näherungen: 
# 
> L_2 := sqrt(int(F(xi)^2, xi = 0..1));
> 

                            /   1           \1/2
                            |  /            |
                            | |        2    |
                     L_2 := | |   F(xi)  dxi|
                            | |             |
                            |/              |
                            \  0            /

# Darin ist F die Differenz aus der exakten Lösung und der Näherung,
# d.h. der wahre Fehler.
# 1) Näherungslösung mit eingliedrigem GALERKIN -Ansatz:
> F[1](xi) := sqrt(4-3*xi)-2+xi-0.326237923*(1-xi)*xi;

                           1/2
     F[1](xi) := (4 - 3 xi)    - 2 + xi - 0.326237923 (1 - xi) xi

> L_2[1] := evalf(sqrt(int(F[1](xi)^2,xi = 0..1)));
> 

                       L_2[1] := 0.007695174732

# 2) Näherungslösung mit quadratischen shape functions (FEM / GALERKIN):
# 
> F[q](xi) := sqrt(4-3*xi)-2+0.673762076*xi+0.326237924*xi^2;
> 

                         1/2                                      2
   F[q](xi) := (4 - 3 xi)    - 2 + 0.673762076 xi + 0.326237924 xi

> L_2[q] := evalf(sqrt(int(F[q](xi)^2,xi = 0..1)));
> 

                       L_2[q] := 0.007695174712

# 3) Näherungslösung nach der "subdomain method":
# 
> F[s](xi) := sqrt(4-3*xi)-2+2*xi/3+xi^2/3;
> 

                                                       2
                                    1/2       2 xi   xi
              F[s](xi) := (4 - 3 xi)    - 2 + ---- + ---
                                               3      3

> L_2[s] := evalf(sqrt(int(F[s](xi)^2,xi = 0..1)));
> 

                       L_2[s] := 0.007667395106

# Man erkennt, dass sich die L-zwei-Fehlernormen für alle drei
# Näherungen kaum unterscheiden, wobei die "subdomain method" am besten
# abschneidet. 
# Der nachstehende Computerausdruck zeigt die Ermittlung der Residuen
# und "optimalen" Kollokationspunkte, d.h. der Kollokationspunkte, die
# man wählen muss, damit das Kollokationsverfahren dieselben Ergebnisse
# liefert wie die drei angegebenen Verfahren.
# Ermittlung der Residuen und optimalen Kollokationspunkte für die
# einzelnen  Näherungen: 
# 
> R(xi) := (1+
> a*Theta(xi))*(diff(Theta(xi),xi$2))+a*(diff(Theta(xi),xi))^2;
> 

                              /  2           \
                              | d            |     / d           \2
   R(xi) := (1 + a Theta(xi)) |---- Theta(xi)| + a |--- Theta(xi)|
                              |   2          |     \dxi          /
                              \dxi           /

# Mit dem Parameter a = 1 erhält man folgende Ergebnisse:
# 1) Näherungslösung mit eingliedrigem GALERKIN-Ansatz:
# 
> Theta[1] := 1-xi + 0.326237923*(1-xi)*xi;
> 

             Theta[1] := 1 - xi + 0.326237923 (1 - xi) xi

> R[1](xi):=simplify((1+Theta[1])*(diff(Theta[1],xi$2))+(diff(Theta[1],x
> i))^2);
> 

                                                                2
    R[1](xi) := -0.8509963556 + 1.318840444 xi + 0.6385870944 xi

> X[1]:=solve(R[1](xi)=0,xi);
> 

                  X[1] := 0.5162260059, -2.581473574

# 2) Näherungslösung mit quadratischen shape functions (FEM / GALERKIN):
# 
> Theta[q] := 1 - 0.673762076*xi - 0.326237924*xi^2; 
> 

                                                          2
           Theta[q] := 1 - 0.673762076 xi - 0.326237924 xi

> R[q](xi):=simplify((1+Theta[q])*(diff(Theta[q],xi$2))+(diff(Theta[q],x
> i))^2);
> 

                                                                2
    R[q](xi) := -0.8509963609 + 1.318840446 xi + 0.6385870983 xi

> X[q]:=solve(R[q](xi)=0,xi);

                  X[q] := 0.5162260075, -2.581473567

# 3) Näherungslösung nach der "subdomain method":
# 
> Theta[s] := 1 -2*xi/3 -xi^2/3;
> 

                                                  2
                   Theta[s] := 1 - 2/3 xi - 1/3 xi

> R[s](xi):=simplify((1+Theta[s])*(diff(Theta[s],xi$2))+(diff(Theta[s],x
> i))^2);
> 

                                                    2
                 R[s](xi) := - 8/9 + 4/3 xi + 2/3 xi

> X[s]:=evalf(solve(R[s](xi)=0,xi));
> 

                  X[s] := 0.527525232, -2.527525232

# Von den ermittelten Kollokationspunkten X liegen nur die positiven
# innerhalb der Schichtbreite.
# Das folgende Bild zeigt die grafische Darstellung der Residuen. 
# 
> plot({R[1](xi),R[q](xi),R[s](xi)},xi = 0..1);
> 
>  
> 

> 
> 
