Lineare Gleichungen

Grundaufgabe:

image

Man erfinde 10 lineare Gleichungen und ermittle ihre Lösungen mit Maxima Online,

  • zuerst einzeln und dann
  • mit Listenverarbeitung.

Programmcode mit Listenverarbeitung:

g:[
(x-3)+(x-5)-(x+4)=3,
3*(x+4)-2*(x+8)=5*(x-3),
-4*(x-8)+a*(x-3)=b
];
makelist(solve(g[i],x),i,1,length(g));



Faktorenzerlegung von Termen

Faktorenzerlegung von Termen
Aufgabe: Man erstelle eine Lösung mit Listenverarbeitung!
Programmcode:
Term:[x^2-8*x+15,x^2-8*x+16,x^2-8*x+17,x^2-8*x+12];
Faktorisiert:factor(Term);
[transpose(Term),transpose(Faktorisiert)];


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

Tangenten und ihre Hüllkurve

Aufgabe:
Die Tangenten an y=x² im Bereich [-5,5] sind zu ermitteln und in einer Grafik darzustellen. Wenn man die Funktion auch einzeichnet, ergibt sich eine Hüllkurve für die Tangenten.
Die Lösung soll schrittweise entwickelt werden. Wo liegen die Schwächen der einzelnen Programmversionen? Es soll eine Anwendung auch auf andere Funktionen möglich werden.
Lösungsüberlegungen:
  1. Maxima Online: http://maxima-online.org/?inc=r-1294288297
  2. Mit Hüllkurve: http://maxima-online.org/?inc=r2099680601
  3. Mit Ermittlung der Tangentengleichung: http://maxima-online.org/?inc=r872193857
  4. Verbesserte Plot-Anweisung: http://maxima-online.org/?inc=r384379534
Programmcode:
p(x):=x^2;
ab:diff(p(x),x);
k:ab,x=a;
f:k*(x-a)+p(a);
a:makelist(i,i,-5,5);
f:2*a*(x-a)+a^2;
f:append(f,[p(x)]);plot2d(f, [x,-5,5]);

Die Ausführung mit Maxima-Online: http://maxima-online.org/?inc=r-857523419
Eine weitere Programmverbesserung: http://maxima-online.org/?inc=r-873546065 (es wäre noch interessant, wenn geeignete Bereichsgrenzen automatisch ermittelt werden könnten)

Programmcode mit Eingabe der Grenzen:
p(x):=-x^2;
D:[-20,20];
ab:diff(p(x),x);
k:ev(ab,x=a);
g:k*(x-a)+p(a);
a:makelist(i,i,D[1],D[2]);
f:''g;
f:append(f,[p(x)]);
plot2d(f, [x,D[1],D[2]]);

Ergebnis für p(x)=x² und D:[-5,5]:

parabel_tangenten

Wie man das besser macht, hat mir Richard Fateman von der Berkeley-Universität in Kalifornien mitgeteilt:

It would be more idiomatic and much smaller to write the code this way.  


/*better */

p(x):=-x^2; 
D:[-20,20];
ab:diff(p(x),x); 
define(f(z), at(ab,x=z)*x+p(z));  /* each f(z) is a straight line tangent equation in x */
plot2d(  makelist(f(v),v,D[1],D[2]),   [x,D[1],D[2]]);

/* I think the composition of functions illustrated here is an important
tool.  Also the use of    ''  and ev  should be avoided if
possible. */

RJF