/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 15.08.1 ] */ /* [wxMaxima: comment start ] Übungsaufgabe 1: Summen [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Summe(n):=block([k,s], s: 0, for k from 1 thru n do s: s+k^2, s )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Summe(100); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sum(k^2,k,1,n); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ nusum(k^2,k,1,n); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Übungsaufgabe 2: Fibonaccizahlen mit Divide-and-Conquer [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ showtime: true; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Fib3[0]: 0$ Fib3[1]: 1$ Fib3(n):=block([temp, fib], if not(integerp(Fib3[n])) then if evenp(n) then (fib: Fib3(n/2), temp: fib*(fib+2*Fib3(n/2-1)), Fib3[n]: temp ) else Fib3[n]: Fib3((n+1)/2)^2+Fib3((n-1)/2)^2, Fib3[n] )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ res1: Fib3(100000); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ res2: fib(100000); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ res1: Fib3(1000000)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ res2: fib(1000000)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ res2-res1; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Modulo-Funktion [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Mod(a,b):=block([t], t:a, while t>b do t:t-b, t )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Mod(1234567,1234); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ mod(1234567,1234); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Euklidischer Algorithmus [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ggT(a,b):= if ay then res:EEA(y,x) else if mod(y,x)=0 then res:[x,1,0] else ([g,s1,t1]:EEA(mod(y,x),x), s:t1-s1*part(divide(y,x),1), t:s1, res:[g,s,t]), res )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ res:EEA(1234,56789); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ load(gcdex)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ result:igcdex(1234,56789); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ result[1]*1234+result[2]*56789; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ EEA(12347394837*56784394830489,56784394830489); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Chinesischer Restsatz [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(gcdex)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ chrem(llist,mlist):=block([k,j,m,i,mu,g,s,t], k:length(mlist), m:product(mlist[j],j,1,k), for i from 1 thru k do ( mu[i]:m/mlist[i], [s[i],t[i],g]:igcdex(mu[i],mlist[i]) ), mod(sum(llist[j]*s[j]*mu[j],j,1,k),m) )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ chrem([2,3,1],[3,4,7]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ chinese([0,0,1],[2,3,5]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Prüfzeichenverfahren [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ISBNPruefziffer(liste):=mod(sum(k*liste[k],k,1,length(liste)),11)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ISBNPruefziffer([3,5,4,0,2,9,8,9,4]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ EANPruefziffer(liste):=mod(-sum(liste[k],k,1,length(liste))-2*sum(liste[2*k],k,1,length(liste)/2),10)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ EANPruefziffer([9,7,8,3,5,4,0,2,9,8,9,4]); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$