Komplizierte Funktion < Maple < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Ich möchte eine extrem komplizierte Funktion die von 2 Variablen abhängt mit Maple auswerten. Die Gleichung besteht aus 186 Summen und in jeder dieser Summen kommt ein Integral vor.
Ich möchte das Minimum dieser Funktion finden. Die Funktion ist nicht mehr ableitbar also hab ich mir einen Algorithmus überlegt der das Minimum über Intervallschatchelung findet.:
chi2min:=3e5;
for bet from -3.0 by 0.1 to 0.0 do
for Ome from 0.1 by 0.1 to 0.4 do
chi2now:=evalf(chi2(bet,Ome)):
if chi2now<chi2min then chi2min:=chi2now: Omegamin:=Ome: betamin:=bet end if;
end do;
print(bet);
print(chi2min);
end do;
am Ende gibt er mir dann die Werte an, für die die Funktion chi2 am kleinsten ist. |
Das Problem ist nun das Maple dafür extrem lange braucht, ein paar Stunden kann das schonmal dauern.
Da ich Maple 15 besitze gibt es die möglichkeit vom Muli-Process Programming, d.h. Maple nützt alle Kerne voll aus.
Wenn ich Maple jetzt laufen lasse benutzt er immer nur max. 12%. Wie kann ich das erhöhen?
Es gibt zwar paar tolle Beispiel auf der Maplesite aber großartig was anfangen kann ich damit leider nicht.
|
|
|
|
> Ich möchte eine extrem komplizierte Funktion die von 2
> Variablen abhängt mit Maple auswerten. Die Gleichung
> besteht aus 186 Summen und in jeder dieser Summen kommt ein
> Integral vor.
> Ich möchte das Minimum dieser Funktion finden. Die
> Funktion ist nicht mehr ableitbar also hab ich mir einen
> Algorithmus überlegt der das Minimum über
> Intervallschatchelung findet.:
>
> chi2min:=3e5;
>
> for bet from -3.0 by 0.1 to 0.0 do
> for Ome from 0.1 by 0.1 to 0.4 do
> chi2now:=evalf(chi2(bet,Ome)):
> if chi2now<chi2min then chi2min:=chi2now: Omegamin:=Ome:
> betamin:=bet end if;
> end do;
> print(bet);
> print(chi2min);
> end do;
>
> am Ende gibt er mir dann die Werte an, für die die
> Funktion chi2 am kleinsten ist.
> Das Problem ist nun das Maple dafür extrem lange braucht,
> ein paar Stunden kann das schonmal dauern.
> Da ich Maple 15 besitze gibt es die möglichkeit vom
> Muli-Process Programming, d.h. Maple nützt alle Kerne voll
> aus.
> Wenn ich Maple jetzt laufen lasse benutzt er immer nur max.
> 12%. Wie kann ich das erhöhen?
>
> Es gibt zwar paar tolle Beispiel auf der Maplesite aber
> großartig was anfangen kann ich damit leider nicht.
Hallo Matheboy18,
wenn ich mir deinen Programmausschnitt ansehe, stelle
ich fest, dass du für die Suche die Funktion nur an 31*4=124
Stellen (Punkten) auswertest. Das ist eigentlich extrem
bescheiden und liefert bestimmt auch nur eine eher grobe
Approximation an die Lösung.
Das zeitfressende Problem scheint also die langwierige
Auswertung der Funktion für ein bestimmtes Paar (bet,Ome)
zu sein.
Um Möglichkeiten erkennen zu können, die dies schneller
bewerkstelligen, müsste man etwas über die Summen und
Integrale wissen, die in der Rechnung vorkommen.
LG Al-Chw.
|
|
|
|
|
Die Anzahl der Stüzstellen kann ich beliebig erhöhen. Das gute an der Funktion ist, dass sie wirklich nur ein Minimum besitzt und sonst kein Extrema mehr.
Mir wäre damit schon geholfen, wenn es evtl. einen Befehl gibt mit dem ich Maple sage, dass er alle 8 Kerne voll ausnutzen soll. Da er jetzt knapp 12% verwendet hätte ich bei 100% auslastung fast die 8fache Geschwindigkeit
|
|
|
|
|
> Die Anzahl der Stüzstellen kann ich beliebig erhöhen. Das
> gute an der Funktion ist, dass sie wirklich nur ein Minimum
> besitzt und sonst kein Extrema mehr.
sprachl. Hinweis: "kein Extremum" bzw. "keine Extrema"
> Mir wäre damit schon geholfen, wenn es evtl. einen Befehl
> gibt mit dem ich Maple sage, dass er alle 8 Kerne voll
> ausnutzen soll. Da er jetzt knapp 12% verwendet hätte ich
> bei 100% auslastung fast die 8fache Geschwindigkeit
zu Maple (oder gar Hardwarefragen) kann ich gar nichts
beitragen
Trotzdem würde mich interessieren, welche so zeitraubenden
Summen und Integrale denn in deiner Funktion drin stecken;
da lässt sich doch sehr wahrscheinlich irgendwas optimieren ...
Gib doch dies mal anhand von Beispielen an !
LG Al-Chw.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:46 So 26.06.2011 | Autor: | Niladhoc |
Hallo,
Vlt. könnte man ein genähertes Newton-Verfahren anwenden.
Dazu bräuchtest du 3 Punkte je Schritt, um den Gradienten zu nähern.
Mit einer Abbruchbedingung kannst du vlt die Anzahl der auszuwertenden Punkte drücken.
EDIT: Ein solches Verfahren könnte aber auch nach hinten losgehen und viel mehr Rechenzeit beanspruchen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:14 Mo 27.06.2011 | Autor: | Matheboy18 |
Hier ist ein Teil des ersten Summanten, der erste Summant ist eigenltich doppelt solang aber diese Art von Integralen ist in alle anderen 186 Terme auch enthalten. Das gemeine hieran ist halt, dass die Unbekannten a,b unter dem Integral stehen, alle anderen Zahlen die hier aufgelistet sind ändern sich pro Summant.
[mm] {692.5207755*ln(2.246400*10^{7}*\integral_{0}^{0.0400}{\bruch{1}{RotOf(Z^{2}-5184*72^{-a}*Z^a+5184*72^{-a}*Z^a*b-5184*b-15552*b*x-15552*b*x^2-5184*b*x^3} dx)}}-36.38)^{2}
[/mm]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:10 Mo 27.06.2011 | Autor: | Frankfurt |
Es fällt immer wieder quälend auf, das Du das letzte Wort haben musst und immer meinst andere zu verbessern zu muessen. Also einfach ein -1a Klugscheisser bist!!
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:43 Mo 27.06.2011 | Autor: | Loddar |
Hallo Frankfurt!
Auch (oder soll man schreiben: sogar) Dir hier ein !!
Wobei Dein Dein Erstpost in diesem Forum auch wirklich ein 1a-Einstieg ist.
Und irgendwie fällt dann sehr schwer zu glauben, wenn man von "immer wieder quälend" liest.
Aber in diesem Forum, in welchem es sich hauptsächlich um Mathematik dreht, ist es leider unabdingbar, dass man exakt und präzise formuliert.
Und ich kann auch nicht erkennen, dass die (berechtigten) Hinweise Al-Chwarizmis überheblich oder von oben herab gegeben wurden.
Gruß
Loddar
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:22 Mo 04.07.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:20 Mo 04.07.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|