Autor Beitrag
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 06.11.12 16:29 
Hallo Palladin700,
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Wie wärs, wenn du etwas ähnliches mal im dreidimensionalen Bereich mit Vektoren versuchst?

Keine schlechte Idee. Mal sehen.
user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
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
ausblenden Delphi-Quelltext
1:
2:
3:
  TPaintIt      = Procedure (DC:HDC;grafbx,grafhx:Integer;realwerte:trealwerte;maskex:tmaske);
  TSetFormulas  = Procedure (Text:PAnsiChar);
  TListeleer    = Procedure ();

und
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Di 06.11.12 17:15 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden 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+}//dann muß bei GetProcAddress mit Pointern operiert werden
//{$mode DELPHI}{$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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 06.11.12 17:34 
Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Di 06.11.12 23:08 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: 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. :D 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. :nixweiss:

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". :bawling:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: 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. :gruebel:

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Anika
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30
Erhaltene Danke: 2

Windows 7
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 09.11.12 15:08 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 09.11.12 18:00 
Hallo Anika,
user profile iconAnika hat folgendes geschrieben Zum zitierten Posting springen:
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,
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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?
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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 ... :nixweiss:

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 09.11.12 19:43 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
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.


user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
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? :P
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 09.11.12 20:02 
Hallo Martok,
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Habs grad mal auf Google Books durchgeblättert. Ist das schlimm, wenn ich schon bei den Preliminaries aussteige? :P
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?
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 09.11.12 21:00 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden 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 :angel:

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: 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". :nut:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30
Erhaltene Danke: 2

Windows 7
Delphi 7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 12.11.12 10:58 
Hallo,
user profile iconAnika hat folgendes geschrieben Zum zitierten Posting springen:
Kann man die Zahlen auch Speichern und Drucken? Abschreiben ist nicht schön.

Für alle jungen Damen(?), die das Abschreiben nicht mögen :wink: , 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 12.11.12 17:05 
Hallo jfheins,
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
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 :cry: , 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. :nixweiss:

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein