Aufgabe:
Die Trendlinie einer Anzahl von Punkten soll durch Erzeugung einer möglichst passenden Exponentialfunktion angenähert werden.
Code 01:
load(descriptive); x:[-2,3,5]; mx:mean(x); y:[0.41,2.15,4.14]; my:mean(y); lny:log(y); mlny:mean(lny); xy:x*y; mxy:mean(xy); x2:x^2; mx2:mean(x2); xlny:x*lny; mxlny:mean(xlny); k:(mxlny-mlny*mx)/(mx2-mx^2); lnd:mlny-k*mx; d:exp(lnd); k:floor(k*100+0.5)/100.0; d:floor(d*100+0.5)/100.0; Ergebnis:Y=d*exp(k*X);
Die Verwendung von Unterprogrammen mit Hilfe von load() kann sinnvoll sein. Hier ist das nicht der Fall, weil nur die Funktion mean() dadurch zur Verfügung gestellt wird, das Programm aber nicht in allen Maxima-Interpretern funktioniert.
YAMWI, CESGA: Exponentielle_Regression
WxMaxima:
Code 02:
mittel(L):=sum(L[i],i,1,length(L))/length(L)$ x:[-2,3,5]; mx:mittel(x)$ y:[0.41,2.15,4.14]; my:mittel(y)$ lny:log(y)$ mlny:mittel(lny)$ xy:x*y$ mxy:mittel(xy)$ x2:x^2$ mx2:mittel(x2)$ xlny:x*lny$ mxlny:mittel(xlny)$ k:(mxlny-mlny*mx)/(mx2-mx^2)$ lnd:mlny-k*mx$ d:exp(lnd)$ k:floor(k*100+0.5)/100.0$ d:floor(d*100+0.5)/100.0$ Ergebnis:Y=d*exp(k*X);
Eine benutzerdefinierte Funktion kann die Rolle eines Unterprogramms transparent ersetzen.
Vroomlab: