Ein Simplex

Aufgabe:

Man bestimme die Ungleichungen, die diesen Simplex erzeugen.

(0,10) -> (5,8)
(5,8) -> (9,5)
(9,5) -> (11,0)
Code:


powerdisp:true;
kgv(x,y):=abs(x*y)/gcd(x,y);
g(x,y):=y=k*x+d;
g1:g(0,10);
g2:g(5,8);
g3:g(9,5);
g4:g(11,0);
l1:solve([g1,g2],[k,d]);
l2:solve([g2,g3],[k,d]);
l3:solve([g3,g4],[k,d]);
u1:[-k*kgv(denom(k),denom(d)),kgv(denom(k),denom(d)),d*kgv(denom(k),denom(d))],l1;
u2:[-k*kgv(denom(k),denom(d)),kgv(denom(k),denom(d)),d*kgv(denom(k),denom(d))],l2;
u3:[-k*kgv(denom(k),denom(d)),kgv(denom(k),denom(d)),d*kgv(denom(k),denom(d))],l3;
transpose([u1,u2,u3]);

Verallgemeinerung:
(die letzte Zeile funktioniert in Maxima Online nicht)

kill(all);
powerdisp:true;
kgv(x,y):=abs(x*y)/gcd(x,y);
polygon:[[0,10],[5,8],[9,5],[11,0]];
n:length(polygon);
g(x):=x[2]=k*x[1]+d;
G:map(g,polygon);
System:makelist([G[i],G[i+1]],i,1,n-1);
l(x):=solve(x,[k,d]);
L:map(l,System);
u(x):=ev([-k*kgv(denom(k),denom(d)),kgv(denom(k),denom(d)),d*kgv(denom(k),denom(d))],x);
transpose(map(u,L));

Advertisements

Geplanter Inhalt

Grundlagen,
Funktionen,
Listen,
Lineare Algebra,
Boolesche Algebra,
Statistik,
Wahrscheinlichkeitsrechnung;
Finanzmathematik,
Geometrie und Trigonometrie,
Analysis.

Maximumsaufgabe

Kommentar Maxima Anweisung
„*“/* LINEARE OPTIMIERUNG */;
„*“/* Nichtnegativitätsbedingungen */; x>=0;y>=0;
„*“/* Eingabe erste Nebenbedingung */; u1:x+y<=90;
„*“/* Eingabe zweite Nebenbedingung */; u2:3*x+4*y<=360;
„*“/* Eingabe dritte Nebenbedingung */; u3:400*x+200*y<=24000;
„*“/* Eingabe vierte Nebenbedingung */; u4:y>=50;
„*“/* Eingabe Zielfunktion */; ZF:450*x+150*y;
„*“/* Berechnung Liste Nebenbedingungen */; NB:[u1,u2,u3,u4];
„*“/* Laden Unterprogramm */; load(simplex);
„*“/* Berechnung Maximumsaufgabe */; maximize_lp(ZF,NB);

Ein Produktionsproblem

Aufgabe:

Zwei Produkte A und B sollen in 3 Abteilungen F1, F2 und F3 hergestellt werden. Der Gewinn soll maximal werden!

produktionsproblem

Programmcode:

load(simplex);
u1:x>=0;
u2:y>=0;
u3:10*x+2*y<=200;
u4:8*x+20*y<=400;
u5:3*y<=180;
ZF:100*x+200*y;
NB:[u1,u2,u3,u4,u5];
maximize_lp(ZF,NB);

Lösung mit Maxima Onlinehttp://maxima-online.org/?inc=r-158896368

 

Extremwerte

Aufgabe: Das Maximum in der folgenden Grafik muss rechnerisch nachgeprüft werden.

Kubische_Parabel

 

Rechnerische Kontrolle mit Maxima-Online:
http://maxima-online.org/?inc=r819714133

Übung: Man kontrolliere die Extremwerte durch Berechnung mit CAS Maxima http://maxima.online.org
Man kann sich auch mit dem Geogebra-Zeichenblatt einen Überblick verschaffen: http://www.geogebratube.org/student/m96676

MAXI_MO
Programmcode dazu:

Punkt: matrix(
[-3,0],
[0,-1],
[3,2],
[6,0]
);
Punkt:args(Punkt);
f(x):=x[2]=a*x[1]^3+b*x[1]^2+c*x[1]+d;
g:map(f,Punkt);
l:solve(g,[a,b,c,d]);
KP:y=a*x^3+b*x^2+c*x+d,l;

ratprint:false;
e:solve(diff(rhs(KP),x)=0,x),numer;
x1:x,e[1];x2:x,e[2];
y1:rhs(KP),x=x1;y2:rhs(KP),x=x2;
x1:floor(x1*100+0.5)/100.0;x2:floor(x2*100+0.5)/100.0;
y1:floor(y1*100+0.5)/100.0;y2:floor(y2*100+0.5)/100.0;
Extremwerte:[[x1,y1],[x2,y2]];

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

Fischverkauf

Aufgabe: Der Fischverkäufer

Ein Junge züchtet Goldfische als Hobby. Eines Tages beschließt er, alle Fische zu verkaufen. Er tut es in fünf Schritten:
1. Er verkauft die Hälfte seiner Fische und einen halben Fisch.
2. Er verkauft ein Drittel des Restes und einen drittel Fisch.
3. Er verkauft von dem, was ihm bleibt, ein Viertel und einen viertel Fisch.
4. Er verkauft ein Fünftel des Restes und einen fünftel Fisch.

Nun hat er noch 11 Goldfische übrig. Natürlich wird kein Fisch zerteilt oder irgendwie verletzt. Wie viele Fische hatte er am Anfang?

Aus J. Weilharter, Spaß mit Algorithmen, Seite 28ff

Programmcode:

g1:x1=x-(x/2+1/2);
g2:x2=x1-(x1/3+1/3);
g3:x3=x2-(x2/4+1/4);
g4:x4=x3-(x3/5+1/5);
g5:x4=11;
l:solve([g1,g2,g3,g4,g5],[x,x1,x2,x3,x4]);

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

 

Lineare Regression

Learning App: http://LearningApps.org/view361083

Man kontrolliere die einzelnen Rechnungen mit dem Geogebrazeichenblatt: http://www.geogebratube.org/student/m96676

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


Geogebrabook zum Thema: http://geogebratube.org/student/b119441#


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