Hier mal ein praktisches Beispiel, wie man durch geeignete Polynome & geeignete Bereichseinschränkungen solche "Extremwertaufgaben" mathematisch angeht. Wie bereits beschrieben betrachte ich nur die Funktion unter dem Bruchstrich, wo man also das Minimum (jedoch > 0) sucht (rotes Tal):
Extremwertaufgaben löst man durch Nullsetzung der jeweiligen partiellen Ableitung (Untersuchung, ob lokales Min oder max lasse ich mal aus Zeitgründen weg, da man es schon an der 3D Grafik eindeutig erkennt)):
mathematica
P1[x_] := x^4*0+ x^3*0+ x^2*6/10+ x*(-2)+7;
f[x_, y_] := x/P1[x]+ y/P1[y]+(1- x - y)/P1[1- x - y];
Reduce[{D[f[x, y], x] == 0, D[f[x, y], y] == 0,
0.1< x <1.6, -1.9< y <1.9}, {x, y}, Reals]Out: x == 0.333333333333333&& y == 0.333333333333333
Das Maximum für p=1/f also 1/f[1/3, 1/3] = 6.4
was die Grafik anschaulich widerspiegelt:
Für "universelle Polynome p1" bekommt man jedoch zu 90% immer viele Nulldurchgänge (Ebene mit z==0), was nach Kehrwertbildung für p ein Sprung von
-unendlich nach +unendlich bedeutet -> was ohne starke Einschränkung des Suchbereiches also unpraktikabel ist:
Übrigens: es gibt auch fertige (numerische) Funktionen zum Suchen von Min & Max,
ABER:
- zig Parameter zu beachten wie hier z.B. bei Mathematica
(Do[Print[NMinimize[f, {{x, -50, 50}, {y, -50, 50}},
Method -> {"NelderMead", "ShrinkRatio" -> 0.95,
"ContractRatio" -> 0.95, "ReflectRatio" -> 2,
"RandomSeed" -> i}]], {i, 5}] )
- meist werden nur kleine lokale Punkte gefunden
- bei komplizierten 2D-Funktionen, die aus verschachtelten Polynomen bestehen -> ist es fast schon Zufall, im großen Suchbereich wirklich was globales zu finden
...
noch zum letzten Beitrag:
wenn man die Nullstellenfunktion von Fxy sucht, und dann x für den Bereich 1.27...3.36 einschränkt, spuckt Mathematica tatsächlich eine Formel y(x) aus, die den gesamten Bildschirm ausfüllt!!!
Für x=2 habe ich mal eine Probe angesetzt:
(Formel abgeschnitten, da zu groß zum Hochladen)
Komplexes Zwischenergebnis und richtige Nullstelle,
was nach Kehrwertbildung wieder unendlich große Maxima entlang y(x) liefert!
Also selbst für "festgezurrte" p1=p2=p3 ergibt das mehrere Ultrahochkomplizierte Isolinien-Funktionen,
um dann unendlich große Maxima zu bekommen.
Nun Fälle mit x>0 und y>0 und konkretem Polynom
P1[x] := x^4/4 + x^3/3 + x^2/2 + x + 1/2;
Daraus wird nach Zusammenfassung für den zu minimierenden Term unter dem Bruchstrich:
mathematica
FullSimplify[x/P1[x]+ y/P1[y]+(1- x - y)/P1[1- x - y]](12 x)/(6+x (12+x (6+x (4+3 x))))-(1-x-y)/(-(3/2)+x+y-1/2(-1+x+y)^2+1/3(-1+x+y)^3-1/4(-1+x+y)^4)+(12 y)/(6+y (12+y (6+y (4+3 y))))
Da es unendlich viele Nullstellen hat (und p somit an unendlich vielen Stellen gegen Unendlich geht), hier mal die 3D Grafik:
Entlang der "Schnittkante" habe ich mal einen "relativ leicht" zu berechnenden Punkt bei x=1 genauer untersucht und mit der PQRSTUVW-Formel die Nullstelle (für Polynome vom Grad 4 mit Hilfe von Mathematica) berechnet:
Trotz der imaginären Zwischenergebnisse ist die irrationale Zahl reell:
2.398284905811659253583752555805656598475028....
Je genauer man sie berechnet (hier 42 Nachkommastellen)
-> um so kleiner wird Fxy[1, 2.398284905811659253583752555805656598475028]=10^-42
und um so größer wird das Maximum bei p=1/Fxy , also um 10^42.
Wenn man also nur "praktikable Punkte" sucht, sollte man den Suchbereich stark einschränken, um nicht unendlich viele Stellen mit unendlich großem Maximum zu bekommen.
2020-12-08 22:28 - Crashdemon in Beitrag No. 5 schreibt:
Wieso kann man dann nichts sagen? Ich will ja keinen exakten Wert sondern nur das Verfahren wissen wie man es lösen würde. Die Polynome sind jeweils vierten Grades. Also:
Ich denke die konkreten Koeffizienten sind hierfür unrelevant.
Wenn a0...a4 identisch -> dann sind auch p1...p3 identisch!
(oder anders: es gibt nur p1, und zwar p1(x), p1(y), p1(1-x-y)
Wenn nicht, dann haben wir statt 5 dann 3*5 = 15 Koeffizienten!
(a[1,0], a[1,1]...a[3,4] diesen extrem komplizierten Fall klammere ich mal aus)
Statt Max(p(...)) sucht man besser Min(1/p(...)) -> was dann nur die Summe unter dem Bruchstrich ist.
Was ist mit dem Fall x=y=0? Erlaubt?
Wenn ja, dann vereinfacht sich alles zu
Maximize[p3(z)] , da z dann 1 wäre
=Maximize[a0+a1+a2+a3+a4]
Zwar kann man Nullstellen von Polynomen bis Grad 4 analytisch lösen (PQRSTUVW-Formel), aber ich probiere im nächsten Beitrag mal was aus (x > 0, y> 0)...
Schon die Partial-Summe ist falsch in Mathematica -> das müssen die Programmierer von Mathematica korrigieren! Hier 2 Wege, wie man die Summe bis n=13 berechnen kann:
Egal ob ich Gammafunktion oder Fakultät nehme! (nicht dass jemand sagt, dass x! nur für ganze Werte definiert ist)
Interessant:
bei x^5 - 5*x + 12 = 0 schreibt Wikipedia unter de.wikipedia.org/wiki/Gleichung_f%C3%BCnften_Grades
"Allerdings können die Lösungen auch wesentlich komplexer sein. Zum Beispiel hat die Gleichung {\displaystyle x^{5}-5x+12=0}x^{5}-5x+12=0 die Galoisgruppe D(5), welche von „(1 2 3 4 5)“ und „(1 4) (2 3)“ erzeugt wird, und die Lösung benötigt ausgeschrieben etwa 600 Symbole."
Ich konnte in Wurzelschreibweise & mit hypergeometrischen Funktionen je mit weniger als 90 Zeichen auskommen :-)
Als ich diesen Beitrag unter arxiv.org/pdf/math/9411224.pdf
gelesen hatte, freute ich mich, da Mathematica hieraus hypergeometrische Funktionen erstellen kann:
Natürlich rechne ich solche Behauptungen immer nach. Mathematica fand auch immer (N=2...10) für die unendliche Summe aus Gammafunktionen einen (expliziten) Funktionsausdruck (auch wenn viele die hypergeometrischen Funktionen nicht kennen).
t=-1/10 und immer 55 Nachkommastellen genau berechnet.
Für N=2,3,5 stimmten auch alle Funktionswerte exakt überein! Wow!
Doch dann kam das Problem:
bei N=4 und N > 5 stimmten nur 5...8 Nachkommastellen !!!????
Zunächst dachte ich an Fehler bei der hypergeometrischen Funktion: entweder bei der Wandlung der Summe oder bei der Berechnung, was bei hypergeometrischen Funktionen schon mal passieren kann.
Doch auch schon die Summe stimmte nicht:
mathematica
ReplaceAll[-(-1)^(1/3)+1/9(-1)^(1/3)(-9+9HypergeometricPFQ[{-(1/12),1/6,5/12},{1/3,2/3},-((256 t^3)/27)]+3(-1)^(2/3) t HypergeometricPFQ[{1/4,1/2,3/4},{2/3,4/3},(256 t^3)/27]-2(-1)^(1/3) t^2HypergeometricPFQ[{7/12,5/6,13/12},{4/3,5/3},(256 t^3)/27]),{t->-1/10}]N[%,55]N[ReplaceAll[E^(-2*Pi*I/(N-1))-t/(N-1)*Sum[(t*E^(2*Pi*I/(N-1)))^k*Gamma[N*k/(N-1)+1]/(Gamma[k+2]*Gamma[k/(N-1)+1]),{k,0,Infinity}],{N->4,t->-1/10}],55]N[Root[-1/10-#1+#1^4&,3,0],55]Out[12]= -(-1)^(1/3)+1/9(-1)^(1/3)(-9+9HypergeometricPFQ[{-(1/12),1/6,5/12},{1/3,2/3},32/3375]-3/10(-1)^(2/3)HypergeometricPFQ[{1/4,1/2,3/4},{2/3,4/3},-(32/3375)]-1/50(-1)^(1/3)HypergeometricPFQ[{7/12,5/6,13/12},{4/3,5/3},-(32/3375)])Out[13]= -0.4657150992796921053323676818804594107984544059877255403-0.8681601284116940201930913793676416918455303015641596986IOut[14]= -0.4657150992796921053323676818804594107984544059877255403-0.8681601284116940201930913793676416918455303015641596986IOut[15]= -0.4657143012057157092760533344103470042004310361851366751-0.8681587461070187036986367695107440069270115875731152708I-> nur hier stimmen alle Nachkommastellen!!
Also habe ich mal mit NSum numerisch (ohne Abkürzung) nachgerechnen:
Mathematica konnte diese trotz WorkingPrecision -> 66
nur auf 31 Stellen genau berechnen
ABER dann stimmte das Ergebnis!
Es liegt also an Mathematica: vermutlich wird immer mit hypergeometrischen Funktionen gerechnet, wenn mathematica denkt, dass die Wandlung in hypergeometrische Funktionen perfekt funktioniert hat & man sie als Abkürzung für Sum[,inf] nehmen kann.
Ich werde mal versuchen, ob ich hyg3F2 nachrechnen kann...
@cramilu: die Wanne ist ja selbst für Lilli...
zu klein
Ich habe auch schon zig andere Tipps bekommen, aber das ersetzt alles nicht das Schwimmgefühl. Außerdem merkt man es auch am Muskelkater, da ganz andere Muskeln im Wasser als an Land gebraucht werden...
@Primentus:
Danke für Deine Motivation. Nach Suche fand ich auch Parameter für deutsche Wiki-Daten:
nicht nur Dateninhalte von aktuellen Wiki-Webseiten (das kann ich über meinen Server mit php auch),
sondern auch monatliche & tägliche Anfrage-Häufigkeit nach Artikeln seit 2015:
Leider funktioniert das nur mit der engl. Version. Bei der Gruppe Solar Fake gibt es leider nur einen deutschen Beitrag :-(
Aber man kann so indirekt die Beliebtheit (besser aktuelles Interesse) einer Musik-Band abfragen.
Ah @cramilu, ich lese "Genesis"
-> hier dazu mal eine tolle Power Mix-Version, bei der sportliche Menschen nicht still stehen können:
So ein Zufall: ich hatte gerade WolframAlpha offen und tippte statt einer Formel die Musik-Gruppe
Depeche Mode ein -> und da kamen doch tatsächlich passende Daten:
Das probierte ich gleich mit Mathematica aus & auch hier kamen tatsächlich Datensätze an:
Bisher kannte ich nur Befehle wie WolframAlpha["Depeche Mode"]
aber auch Daten von Wikipedia lassen sich zur Laufzeit abrufen:
mathematica
TextSentences[WikipediaData[DaveGahan]][[;;2]]Out[25]= {DaveGahan(; born DavidCallcott;,9May1962) is an English singer-songwriter, best known as the lead singer of the electronic band DepecheMode since their debut in 1980.}