Maximieren X in Basis+Exponent < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Hallo zusammen,
ich brauche Hilfe bei einer Berechnung mit Mathematica.
Und zwar möchte ich eine Gleichung, die von zwei Variablen abhängt, in der X sowohl in der Basis als auch im Exponenten steht nach X maximieren
Das Problem ist letztendlich die Ableitung aufzulösen, da X in der Basis und im Exponenten auftaucht. Ich habe mich schon an Solve und NSolve versucht konnte aber keine Lösung bekommen. Ich brauche eine reelle Lösung für X. Nebenbedinung ist, dass die Basis größer 0 sein muss.
Ist so ein Problem generell mit Mathematica lösbar? hat jemand eine Idee? gerne auch eine Lese-empfehlung zu einem Tutorial das so ein Problem behandelt
Vielen Dank für eure Hilfe!
MfG Ellu
Ich habe die Frage in keinem Forum auf einer anderen Internetseite gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 00:02 So 24.10.2010 | Autor: | Sigma |
Hallo Ellumiantor,
nenn doch das Kind beim Namen. Stell deinen Mathematica Code und deine Gleichung incl. Aufgabenstellung und Variablenbeschreibung hier ein. Dann kann man auch konkret helfen.
Zweitens habe ich noch nie gehört das man eine Gleichung maximieren kann.
Wenn dann suche ich das Maximum einer Funktion unter gegebenen Nebenbedingungen. Das erreicht man mit der Mathematica-Funktion Maximize.
mfg sigma
|
|
|
|
|
Ja war falsch ausgedrückt, die Funktion soll maximiert werden, nicht die Gleichung...
Mir gehts halt eigentlich darum zu verstehen,wie ich sowas löse.
Ich will die Werte für X finden, an denen die Funktion [mm]X (3-\bruch{3(X+2)Y}{X})^X[/mm] mit 1>Y>0 ein Maximum hat.
Mir ist klar, dass der Term in der Basis >0 sein muss, damit es eine reelle Lösung gibt.
Mein Code ist:
[mm]NSolve[\{\partial_x (X (3-\bruch{3(X+2)Y}{X})^X), 3-\bruch{3(X+2)Y}{X} > 0, Y>0, Y<1\},\{X\}] [/mm]
Es kommt die Fehlermeldung:
"Solve::dinv: The expression[mm](3-\bruch{3(X+2)Y}{X})^{-1+X}[/mm] involves unknowns in more than one argument, so inverse funktions cannot be used.>>"
NSolve scheint also nicht der richtige Weg zu sein.
Ich hatte zuvor bereits "Maximize" probiert, aber dabei wird einfach meine Eingabe auch wieder ausgegeben.
Letztendlich geht es mir aber um eine generelle Möglichkeit sowas zu lösen, deswegen hatte ich zuerst das konkrete Problem auch garnicht gepostet.
Vielen Dank, falls sich jemand die Mühe macht mir die richtige Methode zu erläutern! (falls es eine gibt)
|
|
|
|
|
Hallo,
wie Du vieleicht inzwischen der Mathematica-Hilfe entnommen hast, eignet sich (N)Solve hervorragend für algebraische Gleichungen. Bei transzendenten Funktionen klappt's eher selten.
Dafür gibt es dann z.B. FindRoot und für die Extremwerte und -punkte FindMininmum, NMinimum,NMinValue,NArgMin und all dies auch mit "Max" statt "Min" im Namen.
Du hast Dir ja ein ziemlich kniffliges Beispiel ausgedacht
Ich gehe davon aus, dass Du [mm]x_{max}(y)[/mm] bestimmen möchtest. Leider gibt es nicht für alle [mm]0 < y < 1[/mm] ein Maximum in Abhängigkeit von x. Die folgende Überlegung ist nicht genau, führt aber zu einem exakten Ergebnis:
Nennen wir den Ausdruck, der zur x-ten Potenz erhoben wird, $bas$. Dann ist zu sehen (ahnen), dass wenn bas für große x größer als eins sein sollte, wegen der Potenz x der gesamte Ausdruck riesig wird.
Schaun 'mer mal:
bas = Apart[3 - (3*(x + 2)*y)/x, x]
[mm]-\frac{6 y}{x}-3 (y-1)[/mm]
Reduce[x > 0 < bas < 1 > y > 0, y]
[mm]x>0\land \frac{2 x}{3 x+6}
Da [mm]0 < bas < 1[/mm] ganz besonders für große x gelten soll, kommen wir zum Grenzwert [mm]\frac{2}{3}
Na denn mal los:
ziel = x*(3 - (3*(x + 2)*y)/x)^x;
die Nebenbedingungen (auf [mm]bas < 1[/mm] wird hier verzichtet, weil es für große [mm]x[/mm] durch [mm]\frac{2}{3}
neben = Reduce[x > 0 && 2 < 3 y < 3 && bas > 0, {x, y}]
[mm]x>4\land \frac{2}{3}
und nun können wir bereits eine Funktion in Abhängigkeit von y erstellen:
1: | xmax[y0_?NumericQ]:=
| 2: | NArgMax[{ziel,x>2y/(1-y)}/.y->y0,x,
| 3: | MaxIterations->12345,Method->"NelderMead"] |
Für die Funktion NArgMax schlage bitte in der Mma-Hilfe nach; die Abfrage, ob y0 numerisch ist, dient dazu, die Auswertung von NArgMax zu verhindern, solange nicht alles bis auf die Unbekannte [mm]x[/mm] bekannt ist und die angegebene Methode hat sich als recht fix für dieses Problem erwiesen (siehe auch http://reference.wolfram.com/mathematica/tutorial/ConstrainedOptimizationOverview.html).
Wie erwartet ergibt xmax[.5] mehrere Überlauffehler und für Argumente zwischen [mm]\frac{2}{3}[/mm] und [mm]1[/mm] gibt die Funktion endliche Werte zurück (zu nah an die Grenzen darf man aber dennoch nicht).
Nun kann man sich den Verlauf von [mm]xmax[/mm] anzeigen lassen:
LogPlot[xmax[y], {y, 67/100, 97/100}]
[Dateianhang nicht öffentlich]
und andere feine Dinge damit machen.
Viele Grüße,
Peter
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|