Autor |
Beitrag |
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Di 06.11.12 16:29
Hallo Palladin700,
Palladin007 hat folgendes geschrieben : | Wie wärs, wenn du etwas ähnliches mal im dreidimensionalen Bereich mit Vektoren versuchst? |
Keine schlechte Idee. Mal sehen.
Palladin007 hat folgendes geschrieben : | Ach ja und wie steht es eigentlich mit der DLL, darf ich darauf noch hoffen? |
Ich bin schon am arbeiten.
Denn gegenwärtigen Stand hänge ich im ersten Eintrag an. In der DLL werden Koordinatensystem und Funktion mit einigen Parametern gezeichnet.
In dem Hauptprogramm MeinTest siehst Du, welche Größen und Parameter übergeben werden können. Dies muss ich noch erweitern. Für die Zeichnung benötigst Du außerdem eine Zeichenfläche mit Canvas-Eigenschaft.
Die Steuerung der Darstellungsintervalle muss im Hauptprogramm erfolgen, da in der DLL nur gezeichnet wird.
Das größe Problem ist aber: Wie man bei einer anderen Programmiersprache die DLL ruft, kann ich Dir nicht sagen.
Die von Bummi gegebene Lösung für Delphi mit
Delphi-Quelltext 1: 2: 3:
| TPaintIt = Procedure (DC:HDC;grafbx,grafhx:Integer;realwerte:trealwerte;maskex:tmaske); TSetFormulas = Procedure (Text:PAnsiChar); TListeleer = Procedure (); |
und
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Tfgraf.FormCreate(Sender: TObject); var dll:String; begin dll := ExtractFilePath(ParamStr(0)) + C_DLL; if FileExists(dll) then begin FDLLHandle := LoadLibrary(Pchar(dll)); if FDLLHandle <> 0 then begin @FPaintIt:=GetProcAddress(FDLLHandle,'PaintIt'); @FSetFormulas:=GetProcAddress(FDLLHandle,'SetFormulas'); @FListeleer:=GetProcAddress(FDLLHandle,'Listeleer'); Button1Click(nil); end; end; end; |
verstehe ich kaum unter Delphi.
Bevor ich weitere Arbeit in die DLL stecke, wäre es schön, wenn ich erfahren würde, ob die DLL z.B. auch unter C# funktioniert.
Beste Grüße
Mathematiker
Nachtrag: Trotz meiner "Hassliebe" zu Lazarus habe ich versucht, die DLL dort zu rufen. Das Ergebnis war zu erwarten. Lazarus kennt weder LoadLibrary noch GetProcAddress noch FreeLibrary.
Ich habe aber keine Lust nach einer Lösung zu suchen.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Zuletzt bearbeitet von Mathematiker am Di 06.11.12 18:34, insgesamt 1-mal bearbeitet
|
|
Palladin007
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Di 06.11.12 17:05
Grad bin ich zeitlich ziemlich unter Druck, sobald ich Zeit findet, versuch ich das mal zu verwenden.
Vielleicht dieses Wochenende, vielleicht aber auch nicht :/
Aber trotzdem danke erst mal für die Mühe ^^
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Di 06.11.12 17:15
Mathematiker hat folgendes geschrieben : | Nachtrag: Trotz meiner "Hassliebe" zu Lazarus habe ich versucht, die DLL dort zu rufen. Das Ergebnis war zu erwarten. Lazarus kennt weder LoadLibrary noch GetProcAddress noch FreeLibrary. |
Hallo Mathematiker! Von meinem Programm "Prozesse" (das müßte ich noch mal ein wenig überarbeiten) gibt es auch eine Lazarusversion. Ich bin mir sicher, daß ich dort wenigstens LoadLibrary verwandte, evtl. auch GetProcAddress und/oder Freelibrary. Schau es Dir doch einfach mal an. Ich fummelte zugegebenermaßen auch recht lang daran herum, doch meine Hartnäckigkeit wurde irgendwann belohnt.
Lazarus kann recht viel, ist aber vergleichsweise ziemlich zickig.
Ergänzung: Alle drei Funktionen verwandte ich, hier auf die Schnelle: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| {$mode objfpc}{$H+} ...
function GetEntyPoints:boolean; var lib:THandle; begin result:=true; lib:=Loadlibrary('advapi32'); if lib=0 then result:=false else begin Pointer(MyGetSecurityInfo):=GetProcAddress(lib,'GetSecurityInfo'); if not assigned(MyGetSecurityInfo) then result:=false; Pointer(MyConvertSidToStringSid):=GetProcAddress(lib,'ConvertSidToStringSidA'); if not assigned(MyConvertSidToStringSid) then result:=false; Pointer(MyConvertStringSidToSid):=GetProcAddress(lib,'ConvertStringSidToSidA'); if not assigned(MyConvertStringSidToSid) then result:=false end; FreeLibrary(lib) end; |
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Di 06.11.12 17:34
Hallo Delphi-Laie,
Delphi-Laie hat folgendes geschrieben : | Ich bin mir sicher, daß ich dort wenigstens LoadLibrary verwandte, evtl. auch GetProcAddress und/oder Freelibrary. |
Vielen Dank für Deinen Hinweis. Ich habe die Unit dynlibs eingefügt, und schon geht es. Der Aufruf der DLL funktioniert auch. Allerdings musste ich noch das Bitmap am Anfang weiß übermalen.
Verrückt ist, dass die Lazarus-Exe 14,6 MByte groß ist. Das ist echt gruselig.
Zufrieden bin ich trotzdem, dass die DLL zumindest auch bei Lazarus funktioniert, d.h. ich werde diese erweitern.
Die aktuelle DLL-Version befindet sich im 1.Eintrag. Bis auf die Markierung und Berechnung der Fläche der Funktion enthält die DLL alle Darstellungsmöglichkeiten des Programms.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Di 06.11.12 23:08
Mathematiker hat folgendes geschrieben : | Verrückt ist, dass die Lazarus-Exe 14,6 MByte groß ist. Das ist echt gruselig. |
Es gibt dazu unzählige Diskussionen im Lazarusforum und in den Delphiforen.
Nimm einfach das unter www.entwickler-ecke.....php?p=659928#659928 angebotene Miniprojekt. Es stammt genaugenommen nicht von mir, sondern aus der Delphipraxis, wo einer ein Esperantoprogramm damit vorstellte ( www.delphipraxis.net...ilo-de-alfabeto.html). Ich konnte dem Programmautor das Geheimnis nicht entlocken und war es irgendwann leid, danach zu recherchieren. Die üblich genannten Einstellungen, die ich auch in seinem/jenem Programm fand, bewirkten bei mir jedenfalls nicht diesen kleinen Compilatsgrößen, es war noch ein Quentchen größer.
Ergänzung: Mit der Unit dynlibs machte ich auch rum, ich klammerte (kommentierte) sie allerdings wieder aus, wie ich just feststellte. Also ist sie doch nicht zwingend nötig, jedenfalls nicht beim Compilieren mit meinem Lazarusinstallationen.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mi 07.11.12 20:43
Hallo,
die neue Programmerweiterung (Rev 12) enthält jetzt eine Unit uableitung.pas zum analytischen Differenzieren von Funktionstermen.
Klickt man auf den Schalter f1'(x), so wird die Gleichung der Ableitung als 4.Funktion eingetragen. Damit kann ich jetzt auch die Wendepunkte der 1.Funktion schnell und effektiv bestimmen und zeichnen.
Das formelmäßige Differenzieren funktioniert ziemlich gut. Für einen gültigen Funktionsterm (Großbuchstaben!) wird mit der Methode ableitung() der Funktionsstring der Ableitung zurückgegeben.
Die Ableitungsfunktion dürfte stets stimmen, auch für die problematische logarithmische Differenziation, z.B. für die Funktion y = x^x usw.
Interessant ist, dass in der grafischen Darstellung der Graph der numerischen Ableitung von dem Graphen der analytischen, wie zu erwarten, etwas abweicht.
Allerdings habe ich noch ein Problem. Trotz intensiver Überlegungen habe ich noch keine wirklich gute Idee, wie ich die entstehenden Ableitungsterme vernünftig vereinfachen kann.
Zum Beispiel erhalte ich für y = (X+1)/(X^2-1) die Ableitung y' = (X^2-1-(X+1)*(2*X))/(X^2-1)^2.
Im Normalfall würde ich "böse" werden, wenn ein Schüler mir das im Matheunterricht ohne Zusammenfassen, d.h. y' = -1/(X-1)^2, vorsetzt. Bei meinem Programm habe ich aber keine Idee, wie ich den Computer dazu bringen kann, vernünftig zu vereinfachen. Alle Versuche über eine Baumstruktur, wie bei der Differenziation, gingen "voll in die Hose".
Die Funktion red in der Unit uableitung.pas ist nur eine hässliche Notlösung zum Abfangen der schlimmsten sinnlosen Teilterme, wie +0 oder *1, ...
Vielleicht hat jemand von Euch eine Idee zum Vereinfachen solcher Terme.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Horst_H
Beiträge: 1652
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mi 07.11.12 22:49
Hallo,
im Grunde willst Du also, dass der Computer rausklamüsert, dass die Ausmultiplikation im Zähler
der ersten binomischen Formel entspricht
(X^2-1-(X+1)*(2*X)) ->(- (X^2+2x+1) = -(x+1)^2 ist
und der Nenner der dritten binomischen Formel.
(X^2-1)^2 -> ((X+1)*(x-1))^2 ->(X+1)^2 * (x-1)^2
und man dann letztendlich (X+1)^2 kürzen kann.
Geht das nicht einfach stur mit Polynomdivision.
(X^2-1)^2 => X^4-2*x^2+1
x^4-2*x^2+1 : -(x^2+2x+1) = x^2-2x+1
Gruß Horst
Ableitungen von Polynomen sind mit Hornerschema einfach, wenn man damit schon die Funktionswerte berechnet.
www.mathematik.net/P...mdivision/py-001.htm etc pp.
der macht sehr viel auf youtube: www.youtube.com/watch?v=B27pn1cnwn0
und natürlich
www.arndt-bruenner.d.../polynomdivision.htm
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mi 07.11.12 22:56
Hallo Horst_H,
vielen Dank für Deinen Hinweis. Für gebrochenrationale Funktionen ist mir das schon klar. Das habe ich auch schon gelöst (siehe www.entwickler-ecke....ewtopic.php?t=109634)
Ich suche aber eine möglichst allgemeine Lösung für die Termvereinfachung, d.h. auch wenn in dem Term andere Funktionen als Polynome auftreten, z.B. Wurzeln oder trigonometrische Funktionen. Allein das Ausmultiplizieren und Erkennen, welche Produkte dann zusammengefasst werden können, ist problematisch.
Um es mathematisch zu sagen: Mir gelingt es einfach nicht, Kommutativ-, Assoziatv- und Distributivgesetz algorithmisch so umzusetzen, dass das Programm richtig rechnet.
Schwierig ist es auch, mit absoluter Sicherheit zu erkennen, von welchem Typ eine Funktion ist. Ist sie ganzrational oder gebrochenrational oder versteckt sich irgendwo ein Teilterm mit ln, exp, sin, ...
Beste Grüße
Mathematiker
Nachtrag: In der Revision 13 werden nun auch die Wendetangenten gezeichnet.
Ich beende damit vorerst die Weiterentwicklung dieses Programms.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Anika
Beiträge: 30
Erhaltene Danke: 2
Windows 7
Delphi 7
|
Verfasst: Fr 09.11.12 14:48
Das Program ist schön und hilft mir bestimmt bei meinen Hausaufgaben.
Heute haben wir in der Schule x^3+x-1 untersucht. Gibt man das ein, so zeigt das Programm Extrempunkte bei -0,59 und 0,58. Sind beide richtig? In der Schule haben -0,58 gerechnet. Kann man auch die y-Werte anzeigen?
Danke, Anika
|
|
jaenicke
Beiträge: 19274
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 09.11.12 15:08
Mathematiker hat folgendes geschrieben : | Ich suche aber eine möglichst allgemeine Lösung für die Termvereinfachung, d.h. auch wenn in dem Term andere Funktionen als Polynome auftreten, z.B. Wurzeln oder trigonometrische Funktionen. |
Dafür habe ich entsprechende Umformungen für den geparsten Baum, in die der Term eingelesen wird (bei dir ja auch vermute ich?), eingebaut, die dann auf die entsprechenden Knoten losgelassen wurden. So ließ sich auch die symbolische Ableitung leicht implementieren. Erst bei der symbolischen Integration bin ich nicht bis zum Ende gekommen, da gingen bis zuletzt nur einfache Terme.
Am Ende wurde dann der Baum wieder als Term ausgegeben.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 09.11.12 18:00
Hallo Anika,
Anika hat folgendes geschrieben : | Sind beide richtig? In der Schule haben -0,58 gerechnet. Kann man auch die y-Werte anzeigen? |
Danke für den Hinweis. In meinem Programm ist ein Genauigkeitsfehler. Entschuldigung. Ich werde überprüfen, wie dies verbessert werden kann. Die Extrem- und Wendepunkte werde ich in der nächsten Version vollständig anzeigen.
Nachtrag: In der Revision 14 umgesetzt.
Hallo Jaenicke,
jaenicke hat folgendes geschrieben : | Dafür habe ich entsprechende Umformungen für den geparsten Baum, in die der Term eingelesen wird (bei dir ja auch vermute ich?), eingebaut, die dann auf die entsprechenden Knoten losgelassen wurden. |
Ebenfalls Danke für den Hinweis. Das habe ich im Ansatz versucht, nur leider stelle ich mich im Moment noch zu dumm an. Wird aber noch; hoffe ich.
Findet man Deine Lösung hier in der EE?
jaenicke hat folgendes geschrieben : | Erst bei der symbolischen Integration bin ich nicht bis zum Ende gekommen, da gingen bis zuletzt nur einfache Terme. |
Alle Achtung, wenn Du zumindest einfache Terme schaffst. Ich hatte mir das Buch "Symbolic Integration" von Manuel Bronstein gekauft, bin aber über die ersten 30 Seiten nicht hinausgekommen. Allein die Mathe war schon für mich eine Herausforderung und da wäre dann "nur" noch die Programmierung ...
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 09.11.12 19:43
jaenicke hat folgendes geschrieben : | Dafür habe ich entsprechende Umformungen für den geparsten Baum, in die der Term eingelesen wird (bei dir ja auch vermute ich?), eingebaut, die dann auf die entsprechenden Knoten losgelassen wurden. So ließ sich auch die symbolische Ableitung leicht implementieren. |
Mathematiker hat folgendes geschrieben : | Findet man Deine Lösung hier in der EE? |
Würde mich auch interessieren Grade das Pattern-Matching auf Bäumen wäre schon mal interessant, das betrifft ja alle Arten von Transformationen.
Mathematiker hat folgendes geschrieben : | Alle Achtung, wenn Du zumindest einfache Terme schaffst. Ich hatte mir das Buch "Symbolic Integration" von Manuel Bronstein gekauft, bin aber über die ersten 30 Seiten nicht hinausgekommen. |
Habs grad mal auf Google Books durchgeblättert. Ist das schlimm, wenn ich schon bei den Preliminaries aussteige?
Ich behaupte mal, außer 'ner Hand voll Leute bei Maplesoft hat das auch keiner verstanden.
Mal etwas rumgesponnen... könnte man die Integration nicht über Laplace machen? Hintransformieren, durch s teilen, zurücktransformieren? Keine Ahnung, wie viele fiese Sonderfälle es da nun wieder gibt.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 09.11.12 20:02
Hallo Martok,
Martok hat folgendes geschrieben : | Habs grad mal auf Google Books durchgeblättert. Ist das schlimm, wenn ich schon bei den Preliminaries aussteige?
Ich behaupte mal, außer 'ner Hand voll Leute bei Maplesoft hat das auch keiner verstanden. |
Nach einem Gerücht soll der Autor Manuel Bronstein sogar bei Wolframs "Mathematica" die Finger drin haben. Sicher ist, dass er bei Maple und Macsyma mitgewirkt hat.
Das Buch ist schon "harte" Kost und allein der 1.Teil mit 80 € auch nicht gerade preiswert. Faszinierend für mich ist, dass es einen Algorithmus zur symbolischen Integration gibt. Wer denkt sich so etwas nur aus?
Martok hat folgendes geschrieben : | Mal etwas rumgesponnen... könnte man die Integration nicht über Laplace machen? Hintransformieren, durch s teilen, zurücktransformieren? |
Klingt interessant. Noch weiß ich nicht aber nicht, was Du genau meinst.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 09.11.12 21:00
Mathematiker hat folgendes geschrieben : | Martok hat folgendes geschrieben : | Mal etwas rumgesponnen... könnte man die Integration nicht über Laplace machen? Hintransformieren, durch s teilen, zurücktransformieren? |
Klingt interessant. Noch weiß ich nicht aber nicht, was Du genau meinst. |
Ich weiß das auch noch nicht so genau, schau'n wir mal
Mal durch die Regelungstechnik-Unterlagen blättern. Ich hänge die Referenz hier mal an, nur zu Lehrzwecken bla Copyright blabla etc.
Nehmen wir mal als Funktion x(t):= sin(5*t) + 3e^t.
Dann gilt:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| X(s) = Laplace(x(t)) = 5 / (s^2 + 5^2) + 3 * 1 / (s-1)
Integration ist Xs(s) = 1/s*X(s), also: Xs(s) = 5 / (s^3 + s*5^2) + 3 * 1 / (s^2-s)
Zusammengefasst nach s: Xs(s) = -1/5 * s / (s^2+25) + 3 * 1/(s-1) - 14/5 * 1/s [Sagt Wolfram Alpha]
Nimmt man wieder die Korrespondenzen, diesmal in die andere Richtung: xs(t) = -1/5 * cos(5*t) + 3 * e^t - 14/5 * sigma(t) |
Wobei der Term mit Sigma(t) eigentlich hier Quatsch ist - alle verbleibenden Terme mit 1/s zusammengefasst sind an der Stelle die Integrationskonstante. Glaube ich
Passt auffallend zur richtigen Funktion, die da wäre xs(t) = 3*e^t - 1/5*cos(5*t) + C.
Nur dass das halt ein sehr einfaches Beispiel ist, keine Ahnung ob man damit alles erschlagen kann. Im Zweifelsfall per partieller Integration vorbereiten und das für die einzelteile nehmen oder so.
Einloggen, um Attachments anzusehen!
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 09.11.12 21:08
Hallo Martok,
das habe ich noch nie gesehen und das ist faszinierend!
Den PDF-Text werde ich mir sofort genau ansehen. Vielleicht eröffnen sich damit völlig neue Möglichkeiten. Danke!
Obwohl ich angekündigt hatte, vorerst nicht weiter zu machen, kann ich es nicht lassen. Ich bin wohl "besessen".
In der Revision 15 kann man nun schnell auch die vier Ausgangsfunktionen zu- und abschalten.
Außerdem, und das ist wohl interessanter, berechnet und zeichnet das Programm auch die Schnittpunkte zwischen der 1. und 2.Funktion.
Beste Grüße
Mathematiker
Nachtrag: Meine Euphorie war wohl verfrüht. Nach einer langen Nacht muss ich leider feststellen, dass die Probleme trotz Martoks Idee nicht kleiner werden.
Die Funktionstypen der einzelnen Terme müssen erkannt und aufwändig behandelt werden und schon bei solch einfachen Funktionen wie y = sin x / x bin ich ratlos. Schade.
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Sa 10.11.12 23:14
Hallo,
mit der neuen Revision 16 habe ich nun wirklich den Stand erreicht, bei dem mir die Ideen ausgehen.
Wird außer der 1.Funktion auch Funktion f2(x) gezeichnet, so wird jetzt nicht mehr die Fläche unter der 1.Funktion sondern die Fläche zwischen den 2 Funktionen ausgewertet, markiert und berechnet.
Weitere Programmänderungen werde ich nur noch durchführen, wenn entweder (hoffentlich nicht) sich ein Fehler versteckt hat oder von dem einen oder anderen ein Wunsch geäußert wird.
Beste Grüße und einen schönen Sonntag
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Anika
Beiträge: 30
Erhaltene Danke: 2
Windows 7
Delphi 7
|
Verfasst: Mo 12.11.12 09:48
Das Programm rechnet jetzt auch mit x^3+x-1 richtig. Danke.
Kann man die Zahlen auch Speichern und Drucken? Abschreiben ist nicht schön.
Heute werde ich meinem Mathelehrer das Programm zeigen.
Anika
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 12.11.12 10:58
Hallo,
Anika hat folgendes geschrieben : | Kann man die Zahlen auch Speichern und Drucken? Abschreiben ist nicht schön. |
Für alle jungen Damen(?), die das Abschreiben nicht mögen , enthält das Programm jetzt eine Ergebnisliste.
Alle rechts ausgewählten Punkte werden in der zu- und abschaltbaren Liste mit Ihren Koordinaten angezeigt. Über den Menüpunkt "Ergebnisliste kopieren" wird die Liste in die Zwischenablage transportiert und kann z.B. in Word oder wo anders eingefügt werden. Dort dürfte dann Drucken oder Speichern kein Problem sein.
Kopiert man zusätzlich noch die Vektorgrafik, kann man eine (fast) vollständige Kurvendiskussion erhalten.
"Fast vollständig", da das Programm nur einige Werte und außerdem nur numerisch rechnet. In einem Mathe-LK wird wohl eher ein exaktes Ergebnis, wenn möglich, notwendig sein.
Zum Beispiel würde ich bei y = x³+x+1 im LK als Minimum nur ( Wurzel(3)/3, (9-2 Wurzel(3))/9 ) akzeptieren, entsprechend für das Maximum. Mein Programm liefert mit (0,58 ; 0,62) nur eine Näherungslösung.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Anika
|
|
jfheins
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: Mo 12.11.12 13:10
Zum Problem mit der Integration: Mein Matheprof sagt mal "Differenzieren ist Arbeit, Integrieren ist Kunst". Das symbolische Integrieren ist halt wesentlich schwerer als das differenzieren, letzteres kann i.d.R. mit den 3 Regeln vollständig gelöst werden. Symbolische Integration ist ein ganz anderes Feld, auch da es Funktionen ohne elementare Stammfunktion gibt! ein "Workaround" für sowas ist ja z.B. erf() - die Funktion ist definiert als "Stammfunktion der gaußschen Glockenkurve".
Die Laplace-Transformation ist bei manchen Problemen (Insbesondere bei Addition mehrerer einfacher Terme) extrem hilfreich. Leider nicht immer zielführend, da die Rücktransformation nicht immer gelingt.
Für diesen Beitrag haben gedankt: Martok
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 12.11.12 17:05
Hallo jfheins,
jfheins hat folgendes geschrieben : | Zum Problem mit der Integration: Mein Matheprof sagt mal "Differenzieren ist Arbeit, Integrieren ist Kunst". |
Stimme ich Dir vollkommen zu und deshalb versuche ich mich auch am symbolischen Integrieren gar nicht erst. Wer das dringend braucht, muss wohl auf Mathematica usw. zurückgreifen.
Allerdings lässt mich das Zusammenfassen der Ableitungsterme nicht los.
Da ich im Moment keine richtige Lösung sehe , habe ich eine Notlösung eingebaut, die nicht richtig zusammenfasst, aber das Gröbste hoffentlich bereinigt.
In der Ressource wverein.res (Rev 18 ) sind Terme und deren Vereinfachung enthalten, mit denen die Ableitungsfunktion überprüft wird.
Zum Beispiel ersetzt das Programm -x+x durch 0, 2*sin(x)*cos(x) durch sin(2*x) oder entfernt einige überflüssige Klammern usw.
Wie gesagt, eine unvollkommene Notlösung.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
|