Next: Waar gaan we Up: Computeralgebra:wiskunde klaar om ingezet Previous: Voordelen

Beperkingen

Het beeld dat we tot nog toe van computeralgebra geschetst hebben is te mooi om waar te zijn. Systemen schieten bij het oplossen van wiskundige problemen soms tekort, bijvoorbeeld op aspecten als correctheid als efficiëntie.

Ten aanzien van de correctheid van de resultaten, is het van belang zich te realiseren dat bij elk software systeem afwegingen tussen praktische bruikbaarheid en wiskundige correctheid worden gemaakt. Bijvoorbeeld, bij het werken met parameters zal bij veel systemen geen uitzonderingen meegenomen worden voor speciale waarden van de parameters:


In[1]:= Integrate[x^a, x]

          1 + a
         x
Out[1]= ------
         1 + a
Dit is evident fout voor .

Zo is ook het volgende antwoord alleen generiek juist.


In[2]:= Solve[a x^2 + b x + c == 0, x]

                          2                             
               -b - Sqrt[b  - 4 a c]   
Out[2]= {{x -> ---------------------},
                        2 a            

		                   2
		        -b + Sqrt[b  - 4 a c]
		  {x -> ---------------------}}
		                 2 a
Macsyma geeft een andere aanpak te zien, het gaat een discussie met de gebruiker aan.

(C1) integrate(X^A, X);

Is  A + 1  zero or nonzero?
nonzero;
                                     A + 1
                                    X
(D1)                                ------
                                    A + 1

``Plot aliasing'' is het fenomeen dat de uitkomst van het grafische algoritme niet de wezenlijke kenmerken van de grafiek weergeeft.


In[3]:= Plot[x + Sin[Pi x], {x, 0, 24}];
Hoe zou de grafiek er uit moeten zien en hoe verhoudt zich dat tot het Mathematica resultaat in Figuur 4?

De prijs die men betaalt voor exact rekenen met formules is grootgebruik van rekentijd en computergeheugen. Ook al zijn begin- en eindformules niet zo groot, tussenliggende uitdrukkingen zijn dat vaak wel. Er wordt dan ook vaak in computeralgebra-land gesproken over ``intermediate expression swell''. Dit verschijnsel treedt al op bij een eenvoudig algoritme van Euclides om grootste gemene delers van twee veeltermen te berekenen:


f[1] := 7*x^7 + 2*x^6 - 3*x^5 - 3*x^3 + x + 5;

f[2] := 9*x^5 - 3*x^4 - 4*x^2 + 7*x + 7;

Het volgende Maple programma berekent de rij van resten die optreden bij delingen in het algoritme van Euclides.


Euclid_gcd := proc( f::polynom, g::polynom, x::name )
  local r:
  if g = 0 then  sort( f )
  else 
    r := sort( rem( f, g, x ) );
    if r <> 0 then print( r ) fi;
       Euclid_gcd( g, r, x )
  fi
end:
Euclid_gcd( f[1], f[2], x ):

De conclusie is hier dat de veeltermen en relatief priem zijn want hun grootste gemene deler is een rationaal getal. Maar kijk eens wat een grote tellers en noemers er optreden in de breuken.

Het moge duidelijk zijn dat computeralgebraci veel tijd en moeite stoppen in het ontwikkelen, analyseren, en implementeren van efficiënte wiskundige algoritmen. Desalniettemin is de efficiëntie van general purpose systemen soms toch niet toereikend is voor de doeleinden van onderzoek. We zien dat nieuwe computeralgebra software ontwikkeld worden voor speciale toepassingen. Dan wordt wel een veel hogere capaciteit gerealiseerd. Er ontstaat een tweede golf van ``special purpose systemen'' met systemen als FORM, Macaulay 2, CoCoA en Symmetrica. Voor een overzicht van deze systemen, zie [1], of raadpleeg het electronische informatie systeem CAIN (www.can.nl).




Next: Waar gaan we Up: Computeralgebra:wiskunde klaar om ingezet Previous: Voordelen