Flächen und Listenverarbeitung

Flächen und Listenverarbeitung

Das Fünfeck, welches hier in sechs rechtwinkelige Dreiecke zerlegt wurde, hat eine Fläche von 52 cm² (was man durch Kopfrechnen herausfinden kann). Welch komplexer Vorgang diese Kopfrechnung ist, kann man durch Formalisierung mit Listenverarbeitung herausfinden.

Dabei kann man viel Verständnis für ein Koordinatensystem erreichen.

Notwendige Listen sind:

  1. die Liste der Punkte
  2. die Liste der rechtwinkeligen Dreiecke
  3. die Liste der Kathetenpaare

1. Aufgabe:

Man bestimme die notwendigen Listen durch Ablesen aus der Zeichnung.

Programmcode (Formalisierung):

  1. Liste der Punkte
    A:[1,5];B:[5,1];C:[10,1];D:[13,5];E:[7,8];F:[7,5];G:[5,5];H:[10,5];
    Punkt:[A,B,C,D,E,F,G,H];
  2. Liste der rechtwinkeligen Dreiecke
    D1:[A,B,G];D2:[C,G,B];D3:[G,C,H];D4:[C,D,H];D5:[E,A,F];D6:[D,E,F];
    Dreieck:[D1,D2,D3,D4,D5,D6];
  3. Liste der Kathetenpaare
    Nicht ablesen, sondern berechnen!

2. Aufgabe:

Zeichne die Dreiecksliste mit Geogebra:

[[[1, 5], [5, 1], [5, 5]], [[10, 1], [5, 5], [5, 1]], 
[[5, 5], [10, 1], [10, 5]], [[10, 1], [13, 5], [10, 5]], 
[[7, 8], [1, 5], [7, 5]], [[13, 5], [7, 8], [7, 5]]]

So geht es laut Youtubehttp://youtu.be/721h4vkwfNU

3. Aufgabe:

Flächenberechnungen:

Man könnte leicht aus der Dreiecksliste die einzelnen Flächen nach der Heronschen Formel ermitteln. Aber das eignet sich ja nicht zum Kopfrechnen, und genau das wollten wir ja analysieren. Also stellt sich die Frage: Ablesen der Kathetenlängen? Das wäre wohl „unsportlich“.

Wir berechnen zunächst die drei Seiten der Dreiecke in der Dreiecksliste. Wir arbeiten das an einem Dreieck aus und verwenden danach Listenarithmetik.

Das ausgewählte Dreieck sei D1.

D1:[[1, 5], [5, 1], [5, 5]];

Programmcode für die Berechnung der Strecken mit Listenverarbeitung:

D1:[[1, 5], [5, 1], [5, 5]];
S1:setify(D1);
P1:powerset(S1,2);
P1:listify(P1);
S1:map(listify,P1);

Maxima liefert:

Seiten:[[[1, 5], [5, 1]], [[1, 5], [5, 5]], [[5, 1], [5, 5]]]

Daraus können wir nunmehr die Seitenlängen berechnen!

Eine Seitenlänge:

Herkömmlich: http://maxima-online.org/?inc=r-968527119

Mit komplexen Zahlen: http://maxima-online.org/?inc=r1711871624

Alle drei Seitenlängen und die Fläche für ein Dreieck:http://maxima-online.org/?inc=r1264415508

Für die Abrechnung der gesamten Dreiecksliste verwenden wir die gute alte FOR-Schleife:
http://maxima-online.org/?inc=r41436217

Programmcode:

D:[[[1, 5], [5, 1], [5, 5]], [[10, 1], [5, 5], [5, 1]], 
[[5, 5], [10, 1], [10, 5]], [[10, 1], [13, 5], [10, 5]], 
[[7, 8], [1, 5], [7, 5]], [[13, 5], [7, 8], [7, 5]]];
n:length(D);
s(X):=sqrt(X[1]^2+X[2]^2);
Gesamt:0;
for i:1 thru n do block(D1:D[i],
S1:setify(D1),
P1:powerset(S1,2),
P1:listify(P1),
S1:map(listify,P1),
AS:makelist(S1[i][2]-S1[i][1],i,1,3),
Seiten:map(s,AS),
Seite:sort(Seiten),
Kathetenpaar:[Seite[1],Seite[2]],
Flaeche:Seite[1]*Seite[2]/2,
Gesamt:Gesamt+Flaeche,
display(Kathetenpaar,Flaeche));
display(Gesamt);
Werbeanzeigen

Ellipse aus 5 Punkten

Obwohl die allgemeine Ellipsengleichung 6 Koeffizienten hat, reichen 5 Punkte aus, um diese Ellipse zu bestimmen. Dass man dabei auf ein unterbestimmtes Gleichungssystem stößt, ist in der Sekundarstufe II ein sehr interessantes Thema.

Mit Geogebra gezeichnet: http://www.geogebratube.org/student/m90326

Programm-Code:

xA:0;yA:2;
xB:3;yB:-2;
xC:10;yC:-1;
xD:12;yD:4;
xE:6;yE:5;
ellipse(x,y):=a*x^2+b*x*y+c*y^2+d*x+e*y=f;
g1:ellipse(xA,yA);
g2:ellipse(xB,yB);
g3:ellipse(xC,yC);
g4:ellipse(xD,yD);
g5:ellipse(xE,yE);
g6:a=1 /* Man braucht 6 Gleichungen, wenn
man die gesamte Gleichung auch a dividiert,
vermindert man die Anzahl der Koeffizienten! */;
l:solve([g1,g2,g3,g4,g5,g6],[a,b,c,d,e,f]);

Mit Maxima Online gerechnet: http://maxima-online.org/?inc=r-149060398

Mit der gerechneten Gleichung gezeichnet (Geogebra):
http://www.geogebratube.org/student/m90323

Zusammenfassende Erklärung (Youtube): http://youtu.be/AwsHov4AFi4

Wenn die Verfügbarkeit von Internet unsicher isthttp://youtu.be/LOoICcOlnQU

Dezimalzahl in gemischte Zahl verwandeln

Gemischte Zahlen wie 3 1/2 bestehen aus einer ganzen Zahl und beigefügtem Bruch.
3,5 = 3 1/2 bedeutet eigentlich 3+1/2. Mit dem Ergebnis als gemischte Zahl kann man nicht direkt weiter rechnen 🙂

Die Umwandlung einer gegebenen Dezimalzahl in eine gemischte Zahl ist aber eine schöne Querverbindung zur Informatik.

Programmcode:

x:1.25 /* Eingabe einer Dezimalzahl */;
x:rat(x);
z:num(x);
n:denom(x);
y:mod(z,n);
t1:floor(x);
t2:y/n;
t1:string(t1);
t2:string(t2);
concat("Gemischte_Zahl:",t1," ",t2);

Erklärungen dazu:

  • rat(x) verwandelt die Zahl x in einen unechten Bruch
  • num gibt den Zähler
  • denom gibt den Nenner
  • mod gibt den Divisionsrest
  • string verwandelt Zahl in Text

Es ist ratsam, die folgenden Aufgaben auch mit wxMaxima zu berechnen, da die Rechengenauigkeit offenbar unterschiedlich ist. Wenn man die Probe macht, sind offenbar die Lösungen mit wxMaxima besser.

Ausführung mit Maxima Online: http://maxima-online.org/?inc=r1034719141

Listenverarbeitung: http://maxima-online.org/?inc=r-881228801

Verbesserte Ausgabe: http://maxima-online.org/?inc=r2111573605



			
					

Dualzahlen in Dezimalzahlen verwandeln

aufgabe101

Programmcode:
Dualzahl:[1,1,0,1]/* Eingabe, darf veraendert werden */;
n:length(Dualzahl);
Umwandler:makelist(2^(n-i),i,1,n);
Dezimalzahl:Dualzahl.Umwandler /* Skalarprodukt */;

Lösung mit Maxima Online: http://maxima-online.org/?inc=r78755656

Ein Beispiel für das Zahlensystem mit der Basis 6 mit einem verbesserten Algorithmus:
http://maxima-online.org/?inc=r1035833127

S-förmiger Kostenverlauf

Begriffserklärung:
Eine Kostenfunktion stellt (innerhalb der Wirtschaftswissenschaften) eine eindeutige Zuordnung der Kosten K(x) zu einer Bezugsgröße x  dar.
Unsere Bezugsgröße ist meistens die Produktionsmenge in ME (Mengenheiten, z.B. Stück).
Ein s-förmiger Kostenverlauf (zuerst degressiv und nach der Kostenkehre progressiv) lässt sich aus dem Gesetz vom abnehmenden Grenzertrag herleiten. Die praktische Anwendbarkeit wird allerdings angezweifelt.

Ausgangssituation:

In den Mathematiklehrbüchern werden bei den Aufgaben der Kosten- und Preistheorie häufig Funktionen vorgegeben. Zur Theorie passende Funktionen muss man aber erst einmal finden.
Hier hilft Geogebra: http://www.geogebratube.org/student/m108070
Erklärung zur „Konstruktion“:sfkk_konstruktionDurch Ziehen an den Punkten kann man die Aufgabenstellungen einfach verändern.
Man kann die Geogebra-Datei für die lokale Verwendung herunterladen: http://www.geogebratube.org/material/download/format/file/id/108070

Aufgaben für die Lösung mit Maxima:

  1. Man bestimme die Kostenfunktion aus den Punkten A,B,C und D.
  2. Man bestimme die Fixkosten.
  3. Man bestimme die Kostenkehre.
  4. Man bestimme das Betriebsoptimum.
  5. Man bestimme die langfristige Preisuntergrenze.

Ein ungewöhnlicher Programmcode zur Bestimmung der Kostenfunktion:Berechnung von PolynomfunktionenWenn in Zeile (1) zwei Punkte gegebenen sind, erhält man eine lineare, bei drei Punkten eine quadratische und bei vier Punkten eine kubische Kostenfunktion. Um die kubische Kostenfunktion geht es beim s-förmigen Kostenverlauf.

Erklärung, wie das Programm Nr. 1 welches nicht nur für kubische, sondern auch für lineare und quadratische Kostenfunkitonen geeignet ist, funktioniert:

  1. Eingabe der gegebenen Punkte in Listenform.
  2. Da zwei, drei oder vier Punkte sinnvoll sein können, muss das Programm prüfen, wie viele Punkte gegeben sind.
  3. Der Grad des Polynoms ist um eins niedriger als die Anzahl der Punkte.
  4. Hier  wird ein raffinierter Ansatz verwendet.
    g(x) ist eine Funktion mit einem Punkt x:[x[1],x[2]] als Argument.
    Die Obergrenze der Summation muss n-1 = Grad und nicht n sein, da sonst der unbestimmte Fall 0^0 auftreten könnte. Dafür einfach a[n] ausserhalb hinzufügen.
  5. Die zwei, drei oder vier Gleichungen werden automatisch mit map erzeugt.
  6. Wie wir in (4) bemerkt haben, sind die unbekannten Koeffizienten nicht a,b,c,… sondern a[1],a[2],…,a[n].
  7. Die Lösungsmenge des Gleichungssystems wird ermittelt.
  8. Mit Hilfe der Skalarmultiplikation von Vektoren (Listen) wird die Kostenfunktion berechnet und ausgegeben.

Lösungen mit Maxima-Online unter Verwendung eines früheren Programms: https://casmaxima.wordpress.com/2014/04/08/ein-polynom-zur-einer-gegebenen-punkteliste-bestimmen/

  1. http://maxima-online.org/?inc=r-1197448632
  2. http://maxima-online.org/?inc=r-375516577
  3.  http://maxima-online.org/?inc=r-32032642
  4. http://maxima-online.org/?inc=r1686026510
  5. http://maxima-online.org/?inc=r1686026510

 

Insertion Sort

Einleitung:
Grundkompetenzen
sind Lesen, Schreiben, Rechnen und Ordnen. Rechnen ist wohl die Grundaufgabe eines Computers. Schreiben hat mich zum Kauf des ersten Computers veranlasst. Lesen kann der Computer auch schon perfekt. Und der Wunsch nach Ordnung hat dazu geführt, dass man beim Programmieren von Anfang an über Sortieralgorithmen nachdenken musste. Ein solcher Algorithmus wird hier behandelt.

Quelle (für Insertion Sort): https://www.youtube.com/watch?v=JPyuH4qXLZ0

Programmcode:

A:[3,2,5,1,10,8];
for i:2 thru length(A) do
block(
wert:A[i],
j:i,
while j>1 and A[j-1]>wert do
block(
A[j]:A[j-1],
j:j-1,
A[j]:wert
)
);
A;

Ausführung mit Maxima Online: http://maxima-online.org/?inc=r-1715728250

Zum Nachlesen: http://de.wikipedia.org/wiki/Insertionsort

 

Eine Kurvendiskussionsaufgabe mit Lösungen generieren

Aufgabe: Durch Veränderung der Eingabe kann man verschiedene Kurvendiskussionsaufgaben (mit den zu erwartenden Lösungen) generieren.

Maxima Online Programm dafür: http://maxima-online.org/?inc=r687730420

Die generierte Aufgabe soll mit Geogebra gelöst werden!

Hier die kontrollierte Grundaufgabe: http://www.geogebratube.org/student/m113304

Eine erste Übung dazu:

uebung

Und hier wird eine weitere Übungsaufgabe generiert:
http://maxima-online.org/?inc=r-611083516