
PGraph
1. Zeichnen
a. 2 Funktionen und deren Ableitungen
b. Arbeitsbereich hervorheben
· Als Kurve
· Als Fläche
c. Freier Farbauswahl für Zeichnen
2. Berechnen
a. Kurve
·
Schnittpunkten finden (Regula Falsi)
· Bogenlänge
- die Numerische Lösung von
· Schwerpunkt
b. Fläche (zw. Funktion und X-Achse, oder
zw. beide Funktionen)
·
Numerische Integration
(nach Simpson)
· Schwerpunkt
- Zwischen zwei Funktionen
· Trägheitsmoment
c. Rotationskörper (um die X - Achse)
· Volumen
· Mantelfläche
· Schwerpunkt
· Trägheitsmoment
3. Makrosprache + Makroeditor - Sie können die
Funktionalität von PGraph mit Ihre eigene PLUA Makros beliebig
erweitern
4. Die Texte für die Benutzeroberfläche sind frei
definierbar
a. z.Zt. 3 Sprachen Verfügbar
. Bulgarisch
. Deutsch
. Englisch
5. Integrierter Texteditor
6. Integrierte Hilfe
7. Bildschirmfoto*
8. HTML export*
*) Benöigt wird externe Speicherkarte (MMC/SD/MS)
ANFORDERUNGEN:
- Palm OS
ab 3.1
- PluaRT
- MathLib.
INSTALLATION:
PGRAPH.ZIP auspacken. Inhalt:
PGraph.prc - Programm
PGT.pdb - Programmdatenbank
MathLib.prc - Mathematikbibliothek
PluaRT.prc - Laufzeitumgebung
Liesmich.txt - diese Datei
Readme.txt - Liesmich Datei English
ReadmeBG.txt - Liesmich Datei Bulgarisch
DATEIEN DIE UNBEDINGT ZU INSTALIEREN SIND:
1) PGraph.prc
2) PGT.pdb
3) MathLib.prc
4) PluaRT.prc
Die vier Dateien sind auf Palm zu bertragen, benutzen Sie dazu Ihre
bevorzugte Methode (HotSync, Speicherkarte, PalmInstall u.s.w.) Evtl.
vorhandenen MathLib, könen Sie behalten. Alte Versionen von PluaRT
und PGraph sind vorher zu entfernen!
Hier kann ich die Gelegenheit nutzen Plua von Marcio Andrade zu loben.
Dies ist eine Palm Portierung von LUA (Programmiersprache entwickelt
von TeCeGraf und PUC Rio Brazilien) . Meine Meinung nach das BESTE
Programmierumgebung fr Palm.
Kompatibilität:
PGraph ist mit folgende Geräte und Programme Entwickelt und
getestet:
Palm Tungsten T
Palm Tungsten C
Palm OS Simulator 5.0
Palm OS Simulator 5.2
Geräte die unterstützte hochauflösende
Displays haben werden automatisch erkannt und
entsprechend benutzt (z. Zt. alle 320x320 Palm Modelle).
BEDIENUNG:
PGraph ist eine Zumutung was Bedienbarkeit betrifft. Hier
können Sie sich mit die Bedienkonzepte vertraut
machen.
PGraph starten. (Tappen auf PGraph Icon).
Die Zeichnung erscheint. Oben links haben sie "Menü" - Liste,
von da aus wird das ganze gesteuert
PGraph’s benehmen wird von einige Variablen bestimmt (Xmin,
Xmax, Ymin, Ymax, Scl
u.s.w.)
Über die Menüliste ist es möglich die
Variablen zu verändern.
Menüeinträge:
Menü
- zeigt "Info über PGraph" - wenn die List Box geschlossen ist
werden hier die X/Y Koordinaten gezeigt
(nach berührung des Bildshirms)
Hilfe
- zeigt die Hilfedatei (falls Instaliert)
f(x)=...
- aktuelle funktion f(x) - Eingabefeld für
f(x) wird aufgemacht
g(x)=...
- s.o.
Nur Plua Ausdrücke und Funktionen mit einer Variable sind
erlaubt. Name der Variable ist "x". Das Programm benutzt
"dostring(Ausdruck)" - Operator, dem zufolge ist an Plua - Syntax
gebunden. Unter "Ausdruck" ist jeder zulässiger Plua -
Ausdruck zu
verstehen. Alle Abweichungen von Plua - Syntax führen zu
Fehlermeldung!
Quadratische Wurzel: sqrt(Ausdruck)
ln(x): log(Ausdruck)
e: exp(Ausdruck)
Potenzieren: (Ausdruck)^Potenz
Radizieren: (Ausdruck)^(1/Wurzel)
Multiplizieren: (Ausdruck)*(Ausdruck)
Summieren: (Ausdruck)+(Ausdruck)
Dividieren: (Ausdruck)/(Ausdruck)
Substrachieren: (Ausdruck)-(Ausdruck)
Arcusfunktionen: asin(Ausdruck), acos(Ausdruck), atan(Ausdruck)
Trigonometrische Funktionen: sin(deg(Ausdruck)), cos(deg(Ausdruck)),
tan(deg(Ausdruck))
WARNUNG:
der Argument der Trigonometrische Funktionen muss zuerst konvertiert
werden! Ohne "deg()" funktion bekommen Sie verfäschte werte!
Hyperbelfunktionen und Areafunktionen: sinh(x), cosh(x), tanh(x),
coth(x),
arsinh(x), arcosh(x),artanh(x), arcoth(x)
Beispiele:
-
sqrt(exp(sin(deg(x)))+cos(deg(x))) , (deg() BEACHTEN!)
- (x^3+3*x^2-x+16)/(x^5-x^8).
- (sinh(x)^2+tanh(x)^2)^(1/5)
Arbeiten mit ...
- Wechselt zw. Kurve/Fläche/Körper
von ... -
wechselt zw. f(x), g(x), f(x)-g(x)
Je nachdem was Sie in die beiden Positionen haben ändert sich
die Zeichnung und die Rechnungs
-Vorgaben bzw. -Ergebnisse.
Min. / Max. der X / Y Achse
- ist klar.
Skalierung
- Skalierung der Achsen (Abstand zw. der
Striche)
Punktdichte
- Abstand zw. Punkten (kleinere Zahlen ergeben schönere
Graphiken, beanspruchen aber mehr Zeit. Eine Kompromisslösung
wird immer intern berechnet )
f(x)' und g(x)' zeichnen -
wechselt zw. Ja und Nein - Zeichnet
(oder nicht) die gewählte 1. Ableitungen mit.
Ober- und Untergrenze
- Grenzen für die Berechnungen
(für Integrale, Schnittpunkte u.s.w.). Bei aufruf wird zuerst
gefragt ob Sie Regula Falsi anwenden möchten (auf letzte X
koordinate), Ergebnis hängt von der Auswahl in Positionen
"Arbeiten mit... / von...".
z.B. f(x) ausgewählt - Regula Falsi sucht Schnittpunkt von
f(Letzte X
Koordinate) und der X-Achse.
Simpson, Bogenlänge,
Regula Falsi
etc.
- Führt die Entsprechende Berechnung durch
Nur Objektrelevante Rechnungsarten sind zulässig:
- Kurve / Regula Falsi
- Fläche / Simpson
- Körper / Volumen
...
unzulässige Beispiele:
- Kurve / Volumen
- Fläche / Regula Falsi
- Fläche / Mantelfläche
Bei unzulässige Kombinationen wird kein Report generiert,
sondern nur kleine
Fehlermeldung.
Da der Programminterne Texteditor für darstellung des Reports
benutzt wird, können Sie
speichern, editieren, laden und in andere Programme kopieren (s.
Texteditor). Die Zahlen werden automatisch in die Variablen Ergebnis 1
bis Ergebnis 5 gespeichert
(je nach Rechnungstyp).
- Ergebnis 1 bis 5
- Je nach Berechnungsart werden hier die Ergebnisse gespeichert
- Speicherplätze 1 bis 5
- Speicherplätze zur Zwischenspeicherung von Werte
- "Farben"
- Farbauswahl für Zeichnen. Wählen Sie was
geändert werden soll
(z.B.) f(x) automatisch wird die aktuelle Farbe gezeigt,
ändern Sie die Farbe mit der Schiebereglern "R", "G", "B"; die
geänderte Farbe ist automatisch
gespeichert, "Zurück" verlässt modul "Farben".
- "Benutzeroberfläche"
- Die Textbausteine für die Benutzeroberfläche lassen
sich hier ändern - so können Sie eine angepasste
Lokalisierung für Ihre Sprache
erstellen. Wenn Sie mir diese geänderte Datei (PGUIText)
zuschicke,n kann ich die in darauffolgende PGraph versionen
übernehmen.
- Einstellungen Laden / Speichern
- "die
Einstellungen" d.h. alle Variablen die das Verhalten von PGraph
bestimmen (wie
z.B. xmin, xmax, scl, step etc.) werden automatisch ohne Ihr zutun in
die Datei PGini
gespeichert. (Wenn die Datei nicht existiert wird sie neu erstellt).
Unter diese Positionen sind Sie in der Lage Ihre eigene
"INI" Dateien zu erstellen und zu laden, sozusagen alle Variablen "am
Block" mit neue Werte füllen.
- "Texteditor"
- Hier können sie Texte erstellen und editieren und auf
gespeicherte Texte
zugreifen. Die Einschränkungen zuerst - nur für
Dateien bis 8 KB grösse! Es ist möglich auch PalmDoc
Dateien
aufzumachen. VORSICHT beim Speichern: PGraph kennt nur sog. StreamDB
Format und wenn Sie eine PalmDoc Datei
aufmachen, ändern and anschließend speichern ist die
ursprüngliche Datei überscrieben in StreamDB - der
lässt sich nun nur mit PGraph
(oder Plua) aufmachen. Wenn Sie PalmDoc Dateien ändern,
speichern Sie diese anschließend bitte unter anderen
Namen! Die StreamDB Dateien lassen sich problemloss am Desktop
öffnen (ich bevorzuge das Programm KWrite unter Linux /
KDE).
- "Ausführen"
hier gebe ich Ihnen direkten zugriff auf die Plua Runtime, es ist
möglich alle Plua Ausdrücke auszuführen.
Sehen Sie bitte unter
"Makroeditor" nach.
- "Makro Ausführen"
- Vorher gespeicherte Makro ausführen
- "Makroeditor"
- hier können Sie die Funktionalität des PGraph
beliebig
erweitern: eigene Funktionen definieren, auf Pgraph interne Funktionen
/ Variablen zugreifen etc. sogar völlig
neue/andere Programme können Sie hier schreiben.
Jedoch müssen Sie Vorsichtig vorgehen - ich kann hier keine
Routine einbauen die Sie von Fehlern schützt - Sie sind auf
sich allein gestellt - wenn Sie ein Fehler
machen, wird das GESAMTE Programm abgeschossen!
Anleitung:
-- So schreibt man Kommentare in Lua / Plua
PGraph interne Variablen:
xmin
- ...
xmax
- ...
ymin
- ...
ymax
- ...
scl
- Skalierung
step - Punktdichte
Beispiel:
xmin,xmax,ymin,ymax=-3,3,-3,3
-- das ist ein typischer Merkmal von Lua - multiple
Wertübernahme, das ist das selbe wie:
xmin=-3
xmax=3
ymin=-3
ymax=3
ft[1] - f(x) als text
ft[2] - g(x) als text
Beispiel:
ft[1]="sin(deg(x))
dostring("function f(x) return y="..ft[1].." end"])
-- Sie müssen danach dostring("function f(x) return
y="..ft[1].." end"]) ausführen um f(x) zu ändern, das
gleiche gilt für g(x)
ft[1],ft[2]=ft[2],ft[1]
-- Kleiner Trick, tauscht die Werte der beiden Variablen aus, ft[1]
bekommt der Wert von ft[2], ft[2] von ft[1]
-- Arbeitet mit alle Variablen
a - Untere Grenze
b - Obere Grenze
Beispiel:
a=exp(1)
-- a wird 2.71828....
b=PI
--b ist 3.14...
b=-a
-- kleiner Trick
text[1] ... text[60] die Texte für die
Benutzeroberfläche
fkr - ist interne Variable - Bildschirmfaktor für Niedrig /
Hoch Auflösende Geräte, so können wir alles
immer in die richtige Position platzieren ohne Kentniss, ob das Program
auf Niedrig- oder Hochauflösenden Gerät
läuft.
pmode(): gibt 4 Werte zurück: Bildschirmbreite (Punkte),
Bildschirmhöhe (Punkte), Bildschirmtiefe (Bit) und 1 oder 0
als Indikator ob das Gerät Farbbildschirm hat oder nicht.
w,h,d,c=pmode()
--wir benutzen a,b,c,d,e=... so können wir mehr als ein von
der Funktion zurückgegebenen Wert abfangen.
fkr=w/320
-- so fkr ist 1 bei HiRes und 0.5 bei LowRes Geräte
-- wenn die gewünschte HiRes Koordinate mit fkr multipliziert
wird, ist Ihr Obejkt immer auf derselbe relative Bildschimposition
platziert, auch wenn das Programm auf niedrig auflösenden
Gerät arbeitet.
xc - Koordinatensystem Center - X -Komponente
yc - Koordinatensystem Center - Y -Komponente
xf und yf sind Korrecturfaktoren für die X/Y Axen.
M0-M4 - Resultat 1 .. Resultat 5
M5-M9 - Speicher 1 .. Speicher 5 variables
Beispiel:
M5=M0-M1*PI
PGraph interne Funktionen:
rf(a,b,n) - Regula Falsi
-- a, b sind die Untere / Obere grenze the lower/upper limit (local
variables for rf)
--n kann folgende Werte haben:
-- 0 - Arbeiten mit f(x) - bedeutet suche Schnittpunkt zwischen f(x)
und X - Achse
-- 1 - Arbeiten mit g(x) - bedeutet suche Schnittpunkt zwischen g(x)
und X - Achse
-- 2 - Arbeiten f(x)-g(x) - bedeutet suche Schnittpunkt zwischen f(x)
und g(x)
-- gibt die gefundene X Koordinate oder 1 wenn keine Lösung
ist gefunden.
Beispiel:
x=rf(0,1,0)
- sucht Schnittpunkt zwischen f(x) und X - Achse in Bereich von 0 bis 1
simpson(n) - Numerische
Integration
-- n hat selbe Bedeutung wie bei rf(a,b,n) - "0" - Arbeiten mit f(x) -
Fläche unter f(x), "2" g(x), u.s.w..
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt die Fläche unter (zwischen) der Funktion(en) in die M0
Variable zurück.
Beispiel:
a=-1
b=1
simpson(1)
--Fläche zwischen g(x) und die X-Achse in Bereich von -1 bis 1
volumen(n)
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt das Volumen von Rotationskörpern in die M0 Variable
zurück
schwerk(n)
- Schwerpunkt von Kurvenstück
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt Schwerpunkt von Kurvenstück zurück:
-- M0 - Bogenlänge
-- M1 - Xs*Bogenänge
-- M2 - Ys*Bogenlänge
-- M3=M1/M0 -Xs
-- M4=M2/M0 -Ys
schwerf(n)
- Schwerpunkt von Fläche
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt Schwerpunkt von Fläche zurück:
-- M0 - Fläche
-- M1 - Xs*Fläche
-- M2 - Ys*Fläche
-- M3=M1/M0 -Xs
-- M4=M2/M0 -Ys
schwerb(n)
- Schwerpunkt von Rotationskörpern
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt Schwerpunkt von Rotationskörper zurück
-- M0 - Xs
-- M1 - Volumen
-- (Ys=Zs=0)
momentf(n)
-
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt Flächenträgheitsmoment zurück
-- M0 - Ix
-- M1 - Iy
-- M2 =M1+M0 - Ip
momentb(n)-
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- gibt Massenträgheitsmoment zurück
-- M0 - Jx
wurzabl(n)
- gibt die Numerische Lösung des Integrals -
sqrt(1-f'(x))
wurzabla(n)
- gibt die Numerische Lösung des Integrals - f(x)*sqrt(1-f'(x))
wurzablb(n)
- gibt die Numerische Lösung des Integrals - x*sqrt(1-f'(x))
-- n hat selbe Bedeutung wie oben
-- Bevor Sie die Funktion aufrufen müssen die Variablen a
& b (global) die entsprechende Werte haben
-- diese werden bei berechnen von Bogenlänge and
Mantelfläche benutzt.
Beispiel:
var=wurzabl(1)
--Integral von sqrt(1-f'(x))
var=wurzabla(2)
--Integral von g'(x)*sqrt(1-g'(x))
Plua functions:
palert("TEXT")
-- zeigt kleinen FEnster mit "TEXT" und OK Button, Sie können
Zahlen benutzen stat Text.
var=pinput("text", Start_Wert)
-- zeigt Eingabefeld, var bekommt der eingegebene Wert oder NIL wenn
Cancel ist
gedruckt.
Beispielmakro:
--zeigt den berechneten Flächen- oder Kurvenscwerpunkt
--Sie müssen vorher eine Fläche / Kurve definiert
haben und die Schwerpunkt Berechnung muss durgeführt sein
-- dann haben wir die Werte für Xs und Ys in die M3 und M4
Variable.
pcolor(prgb(245,45,178))
-- Setzen Farbe 245 für Rote , 45 für Grüne
und 178 für Blaue Komponente.
pline(0, yc-M4*yf, 320*fkr,
yc-M4*yf)
pline(xc+M3*xf,320*fkr,xc+M3*xf)
-- das zeichnet 2 gekreuzte Linien, direkt durch den berechnten
Schwerpunkt.
Für Weiterführende Informationen schlagen Sie bite in
die sehr gut dokumentierten Lua / Plua Projekte (geben Sie einfach Lua
oder Plua in google...).
- Über PGraph
- ... ;-)
LIZENZ:
PGraph ist Freeware.
PGraph wird im folgenden als Software bezeichnet.
GARANTIENAUSSCHLUSS:
Diese Software wird geliefert wie sie ist, ohne irgendwelche
ausdrückliche oder inbegriffene
Garantie. Wir machen darauf aufmerksam, dass es nach dem Stand der
Technik nicht
möglich ist, Computersoftware zu erstellen, die unter allen
Hard- und Software
Kombinationen fehlerfrei arbeitet. Der Nutzer der Software
trägt selbst jedes
Risiko.
Der Autor haftet nicht für Datenverluste, finanzielle
Verluste, Beschädigungen oder andere
Verluste die mit dem Gebrauch oder Missbrauch der Software in
Zusammenhang
stehen.
VERTEILUNG:
Die Software darf frei verteilt werden, vorausgesetzt die ZIP - Datei
wird unverändert und
intakt weitergegeben. Sie dürfen keine Gebühr
für PGraph erheben (außer angemessenen
Gebühren für die Datenträger).
Copyright (C) 2006 Emil Tchekov. All rights reserved.
PGraph benutzt zwei Näherungsverfahren die ich nur Oberflächlich zu Erläutern versuche. Tiefergehende Informationen werden Sie in alle gute Mathematikbücher finden. Dieser Text dient nur zur Erweiterung des PGraph Bedienungsanleitung, weitergehende Zwecke sind nicht Beabsichtigt.
Der sog. Falsche Regel (Sekantenverfahren) ist ein Verfahren zur Ermittlung von Schnittpunkten (und somit Perfekt für Lösen von Gleichungen geeignet).

Gesucht wird der x-Wert bei der F(x)=0 (Schnittpunkt von F(x) und die X-Achse).
F(x) wird durch die Sekante ersetzt, die Formel:
,
liefert uns ein Näherungswert (der Schnittpunkt der Sekante mit der X- Achse). Dann müssen wir der Verfahren oft genug mit der Werten x1 und x3 oder x2 und x3 wiederholen (bei PGraph 1000 mal, oder bis F(x1)=F(x2) ) um ein Wert zu bekommen der sehr Nah an der Tatsächlichen liegt. Die Näherung ist für dir Alltägliche Zwecken ausreichend, Mathematisch ist sie aber nicht Richtig. Dieser Verfahren funktioniert nur wenn einige Grundvoraussetzungen gegeben sind - für weitere Infos schlagen Sie bitte in die entsprechende Bücher nach.
PGraph Beispiel: Gesucht wird die 1. Lösung der Gleichung sin(x)=1/x-1, also geben wir für f(x) sin(deg(x)) und für g(x) 1/x-1. Zuerst wollen wir etwas überblick bekommen und schauen uns die Zeichnung an, klicken etwas links von der 1. Schnittpunkt (die 1. Lösung) an, der Wert (0.5875) nehmen wir für die Untergrenze, als Obergrenze wählen wir 1 (genauer wäre wenn wir noch mal die Zeichnung aufrufen um diesmal rechts von der Schnittpunkt anzuklicken, um ein Wert für die Obergrenze zu erhalten). Dann sind wir soweit und können Regula Falsi aufrufen - s.u.
Die Verfahren zur Numerische Ermittlung von Fläche unter Funktion (Integration) beruhen auf derselben Grundprinzip: Die Fläche wird in mehrere Teilflächen (Streifen) geteilt, die Teilflächen werden ermittelt und anschließend summiert.

Da das Simpson Verfahren als Oberbegrenzung der Teilflächen Parabel benutzt (bei andere Verfahren sind es geraden Linien) liefert dieser bessere Näherungswerte. Um ein Parabel definieren zu können braucht man mind. 3 Punkte, deshalb bei Simpson werden Doppeltstreifen benutzt.



Zuerst wird die Fläche an geraden Anzahl Teilflächen geteilt (bei PGraph - 100), nachfolgend die Streifenbreite h berechnet (ergibt sich nach o.g. Formel aus Unter- , Obergrenzen und der Streifenanzahl). Danach werden die drei Summen gebildet (Summe1 = erste + letzte Streifen, Summe2 = Summe der Ungeraden Streifen, Summe3 = Summe der Geraden Streifen). Dann wird der letzten Formel angewandt und wir erhalten ein Numerischer Näherungswert für die Fläche unter die Funktion.
Beispiel in PGraph: Wie Groß ist die Fläche zwischen der Funktionen sqrt(1-x^2) und -sqrt(1-x^2)?
Zuerst müssen wir die Funktionen in die Oberen beiden Quadranten verschieben sonst bekämen wir verfälschten Werte (Die Funktionen sind bis auf unterschiedlichen Vorzeichen gleich, d.h. wenn die eine Unter- und die andere Oberhalb der X-Achse steht werden wir 0 bekommen, obwohl da sichtbar eine Fläche vorhanden ist). Also wir nehmen stattdessen 1+sqrt(1-x^2) und 1-sqrt(1-x^2). So stehen beide Funktionen oberhalb der X-Achse. Es ist leicht zu erkennen dass wir es mit eine Grundform zu tun haben (Kreis mit r=1), also Untergrenze ist -1, Obergrenze ist 1, die Fläche ist gleich eine Naturkonstante - nämlich ... p. S.u.
Alle weitere auf Integration beruhende Fähigkeiten von PGraph bauen auf das Simpsonsche Verfahren auf.
Marcio Miguelleto de Andrade - für die Entwicklung von PLua, ohne ihm hätte ich PGraph nie für Palm OS schreiben können.
TeCeGraf und PUC Rio - für die Entwicklung von Lua (und dass Sie es FREI zur Verfügung stellen)
Meine Frau und meine Kinder für deren GEDULD mit meine Nebenbeschäftigung.
