Eine Polynomfunktion zu einer gegebenen Punkteliste bestimmen

Aufgabe:

Zu einer gegebenen (und geeigneten) Liste von Punkte ist die passende Polynomfunktion zu bestimmen. Der Grad des Polynoms ist automatisch um eins kleiner als die Anzahl der Punkte!

Programmcode:

kill(all);
Punkt:[[-3,0],[0,3],[2,0],[5,0]];
n:length(Punkt);
Grad:n-1;
g(x):=x[2]=sum(a[i]*x[1]^(n-i),i,1,Grad)+a[n];
Gleichungen:map(g,Punkt);
Unbekannte:makelist(a[i],i,1,n);
l:solve(Gleichungen,Unbekannte);
y=Unbekannte.makelist(x^(n-i),i,1,n),l;

Maxima Online: http://maxima-online.org/?inc=r-1848088314

Erklärung der Berechnung: prog-punkte

  1. Löschen aller Speicher (nicht notwendig!).
  2. Liste der gegebenen Punkte –> EINGABE (darf verändert werden).
  3. Anzahl der gegebenen Punkte.
  4. Der Grad des gesuchten Polynoms ist um eins kleiner als die Anzahl der gegebenen Punkte.
  5. Funktionsmuster für die Bestimmungsgleichung der Polynomfunktion.
  6. Das Funktionsmuster auf die Punkteliste anwenden. Die Koordinaten der Punkte werden eingesetzt und die Liste der Gleichungen automatisch erzeugt.
  7. Die Liste der Unbekannten erzeugen. Die Verwendung von indizierten Koeffizienten ist notwendig.
  8. Lösung des Gleichungssystems.
  9. Die gesuchte Funktion mit Skalarmultiplikation (von Vektoren = Listen) erzeugen.

Noch eine Aufgabe inkl. Graph und Faktorenzerlegung:
http://maxima-online.org/?inc=r-1201857931

Werbeanzeigen

Schaltung von Widerständen

Aufgabe: Mache einen Rechner für Schaltungen von Widerständen!
Unterschied zwischen Serien- und Paralellschaltung auf Youtube erklärt.

Lösung nach Wilhelm Haager:

""/* SERIENSCHALTUNG */;
"~~"([x]):=xthru(apply("+",x));
nary("~~",110);
R1~~R2;
R1~~R2~~R3;
R1~~R2~~R3~~R4;
""/* PARALLELSCHALTUNG */;
"||"([x]):=xthru(1/apply("+",1/x));
nary("||",110);
R1||R2;
R1||R2||R3;
R1||R2||R3||R4;
""/* GEMISCHTE AUFGABEN */;
(R1||R2)~~(R3||R4)

Maxima Online: http://maxima-online.org/?inc=r-396831697
Serienschaltung und Parallelschaltung: http://maxima-online.org/?inc=r-33349478
Gemischte Aufgaben: http://maxima-online.org/?inc=r-806327782

Eine Anwendung mit wxMaxima:

(%i20) ""/* SERIENSCHALTUNG */;
"~~"([x]):=xthru(apply("+",x));
nary("~~",110);

""/* PARALLELSCHALTUNG */;
"||"([x]):=xthru(1/apply("+",1/x));
nary("||",110);
(%o20)
(%o21) (~~([x])):=xthru(apply("+",x))
(%o22) "~~"
(%o23)
(%o24) (||([x])):=xthru(1/apply("+",1/x))
(%o25) "||"
(%i26) Widerstand:[R1=100,R2=200,R3=50,R4=300];
(%o26) [R1=100,R2=200,R3=50,R4=300]
(%i27) Schaltung1:(R1||R2)~~(R3||R4);
(%o27) (R1*R2*(R4+R3)+(R2+R1)*R3*R4)/((R2+R1)*(R4+R3))
(%i28) Schaltung1,Widerstand,numer;
(%o28) 109.52

Ein spanisches Online-Maxima

Ein spanisches Webinterface: http://maxima.cesga.es/

Das habe ich in den Seminarunterlagen von Wilhelm Haager gefunden 🙂

Es gibt eine sehr schöne Ausgabe, aber die zugrunde liegende Maxima-Version dürfte stark veraltet sein. Welche Version verwendet wird. konnte ich noch nicht herausfinden.

Einen Test können wir mit dem Kryptogramm „EINS+EINS=ZWEI“ machen:

(%i1)
for e:0 thru 9 do
for i:0 thru 9 do
for n:0 thru 9 do
for s:0 thru 9 do
for w:0 thru 9 do
for z:0 thru 9 do
block(
ev(Buchstaben:[e,i,n,s,w,z]),
if 2*(1000*e+100*i+10*n+s)=1000*z+100*w+10*e+i then
if cardinality(setify(Buchstaben))= length(Buchstaben) then
print(Buchstaben)
);
[0, 8, 5, 4, 7, 1] 
[1, 4, 0, 7, 8, 2] 
[1, 4, 5, 7, 9, 2] 
[1, 6, 0, 8, 2, 3] 
[1, 8, 0, 9, 6, 3] 
[1, 8, 5, 9, 7, 3] 
[2, 8, 1, 4, 6, 5] 
[2, 8, 6, 4, 7, 5] 
[3, 4, 1, 7, 8, 6] 
[3, 6, 1, 8, 2, 7] 
[3, 8, 1, 9, 6, 7] 
[4, 2, 7, 1, 5, 8] 

Man sollte dieses Programm noch modifizieren. „e“ und „z“ können nicht Null sein, weil führende Nullen ja nicht üblich sind. Durch diese Modifikation wird der Programmablauf wesentlich beschleunigt.
So geht es: http://maxima-online.org/?inc=r1869684681

Wie das Programm funktioniert:

nummerierter-programmcode

In den Zeilen 1 bis 6 werden alle Kombinationen der Buchstabenliste generiert.
In Zeile 9 wird das Kryptogramm geprüft.
In Zeile 10 wird darauf geachtet, dass kein Buchstabe mehrfach für Ziffern verwendet wird. In einer Menge gibt es nämlich nur wohlunterschiedene Objekte unserer Anschauung oder unseres Denkens!

Vortrag 1.4.2014 an der HTL St. Pölten

Hier sind die Unterlagen.

Maxima-Online-HTL-St-Pölten (Sicherung als PDF)

TIPP:

  • einen guten PDF-Druck mit aktiven Links kann man mit http://www.printfriendly.com machen – der ist besser als der Export direkt von http://bunkr.me.
  • Das PrintFriendy-Programm hilft bei vielen Anwendungen, vor allem bei BLOGs.
  • Bei diesem BLOG kann man es auch aus einer Schaltfläche aufrufen.

Da schauen die Unterlagen  so aus: Protokoll mit aktiven Links