PGraph

 

 

English

DOWNLOAD

 

Das ist ein Programm für Abbilden und Analysieren von Funktionen.



MÖGLICHKEITEN:

    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.

 

 

Mathematische Hintergründe

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.

 

Regula Falsi

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.

 

Numerische Integration nach Simpson

 

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.

 

 

DANKSAGUNG

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.

 

DOWNLOAD PGRAPH.ZIP

 

E-Mail

emil@tchekov.net