Mathematica

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Kennt sich damit jemand gut aus?

Also ich hab mich damit ein bisschen auseinander gesetzt und würde mich freuen, wenn mir jemand bei ein zwei Sachen sagen würde, ob das geht was ich machen möchte oder nicht.

Da ich nur Ökonom bin gehts letzendlich nur ums lösen von linearen Gleichungen oder ne Minimierung von ner simplen convexen funktion
 
Mitglied seit
23.11.2004
Beiträge
1.142
Reaktionen
8
Ich kenne mich nur ein bisschen damit aus, aber die von dir erwaehnten Sachen gehen locker.

Zum Minimieren einer Funktion gibts z.B. einfach die Routine "Minimize". Zum Loesen von Gleichungen verwendet man "Solve". Schau einfach in die Hilfe zu den beiden Begriffen, dann siehst du schon wie das geht.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
najo so weit war ich dann wohl auch.

Ich hab jetzt z.B. das Problem dass ich eigentlich n Gleichungen habe die ich über nen Vektor von Variablen lösen möchte. Ok ich kann das als Table aufstellen und mit lauter indexvariablen aufschreiben ( mit vektor ging nicht so gut bzw bräuchte ich dann immer noch die indizierten Variablen). N muss ich leider auch als Zahl festlegen wegen der sonst unbestimmten Summe. Das mit minimize hat bisher so gar nicht geklappt daher einfach alles selber abgeleitet mit "D" Befehl und mit solve gelöst. Jetzt hätte ich aber noch gerne, dass sich einer meiner Variablen über n auf eins summiert. Dann klappts aber nicht mehr. Deswegen ist die Frage schon etwas spezifischer
 

Gelöschtes Mitglied 160054

Guest
Im zweifel kann mathematica übrigens alles, ultra gutes programm.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
das ist mir schon klar, die Frage ist halt nur wie ichs hinkriege, dass er macht was ich möchte
 
Mitglied seit
23.11.2004
Beiträge
1.142
Reaktionen
8
najo so weit war ich dann wohl auch.

Ich hab jetzt z.B. das Problem dass ich eigentlich n Gleichungen habe die ich über nen Vektor von Variablen lösen möchte. Ok ich kann das als Table aufstellen und mit lauter indexvariablen aufschreiben ( mit vektor ging nicht so gut bzw bräuchte ich dann immer noch die indizierten Variablen). N muss ich leider auch als Zahl festlegen wegen der sonst unbestimmten Summe. Das mit minimize hat bisher so gar nicht geklappt daher einfach alles selber abgeleitet mit "D" Befehl und mit solve gelöst. Jetzt hätte ich aber noch gerne, dass sich einer meiner Variablen über n auf eins summiert. Dann klappts aber nicht mehr. Deswegen ist die Frage schon etwas spezifischer

Kannst du dann nicht eine Variable explizit eliminieren (durch die Summe = 1)? Oder du nimmst einen Lagrange-Multiplikator. Ich vermute mal, du hast es bis jetzt als zusaetzliche Gleichung, die du bei Solve eingegeben hast, versucht. Warum das nicht geht, weiss ich allerdings auch nicht.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
ja das geht schon, aber halt etwas "unpraktische" beim erstellen des Problems. An sich sollte ja beides gehen. Dachte ich könnte das einfach als zusätzliche Gleichung einfügen bei SOlve aber dann krieg ich keien Lösung mehr.
 
Mitglied seit
23.11.2004
Beiträge
1.142
Reaktionen
8
Also wenn du das Minimieren mit D und Solve machst, ist es klar das das nicht direkt mit Zusatzbedingung geht (dazu koenntest du mal nach Lagrange-Multiplikatoren googeln falls du die nicht kennst). Minimize sollte das eigentlich auch koennen, aber Mathematikas Wege sind oft unergruendlich.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
ich brauche keine Lagrange Multiplikatoren und ich weiss tatsächlich was sie machen, obwohl ich Ökonom bin.

Um ehrlich zu sein versteh ich nicht was du hier machst. Ist zwar nett das du den thread pushest aber ausser der ELiminerungsidee, die ich selber schon hatte, bringst das irgendwie nicht.

Die Frage war spezifisch an Leute die Ahnung vom Programm haben.

An sich sollte das nicht so schwer sein das im Programm hinzukriegen. Ich kann das Problem ja selber per Papier auf nen paar Seiten lösen, aber würde es für simulieren mit Werten gerne in Mathematica stehen haben.
 
Mitglied seit
23.11.2004
Beiträge
1.142
Reaktionen
8
Mir war nur langweilig und ich dachte ich kann eventuell helfen. Ich verstehe aber nicht, warum du glaubst keine Lagrangemultiplikatoren zu brauchen, wenn du eine Zwangsbedingung hast, die du nicht durch Variableneliminierung einbaust. Dein Ansatz mit Ableitung 0 setzen funktioniert dann halt einfach nicht mehr.

Der Hinweis auf die Multiplikatoren war übrigens nicht arrogant gemeint, ich hab halt keine Ahnung gehabt was dein Wissensstand ist.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Die minimierung ist nicht über die Variablen die sich auf 1 Addieren.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Versuch ichs noch mal konkret:

ich hab z.B. als Output dass

X=(a1+a2-e1-e2)/(b1+b2)

Gibts ne Möglichkeit ihm beizubringen, dass er die Summe der Variablen über i als A, E und B ersetzt?

ALso X=(A-E)/B
 
Mitglied seit
22.03.2008
Beiträge
1.672
Reaktionen
0
versteh ich nicht.
machs doch einfach so:
lolwhatdklb6.png


:troll:

niemand versteht was du eigentlich willst :)
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Danke, wobei mich das jetzt irgendwie noch aus der Bahn wirft wenn ich vorher A=Sum[ai] defininert habe. Da muss ich mal gucken.

ICh möchte einfach nur N gleichungen über einen n langen Vektor minimieren.

im ersten schritt erst mal nur das ganze Einfache hier mit dem Constraint das Sum(wi)=Sum(ei)

Bisher mach ichs ableiten per Hand und Solve dann auf die n+1 GLeichungen für die n ei und p
 
Zuletzt bearbeitet:

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Wie mach ich das am besten mti dem Grafik anhängen?

den Konvertert? http://www.codecogs.com/latex/eqneditor.php

und dann die Gif selber hochladen?

Edit das mit dem Eliminieren wie oben vorgeschlagen, hat später für mich den Vorteil, dass mit dann das x_1 fehlt beim Minimieren oder ableiten weil dafür dann immer X-sum(x_i) eingesetzt wird. Das fände ich zwar später bei den Ergebnissen praktsichen aber vorher eher blöd. Kanns natürlich nacher definineren. Eventuell mache wohl das..
 
Zuletzt bearbeitet:

zoiX

Administrator
Mitglied seit
07.04.2002
Beiträge
22.364
Reaktionen
9.690
Zum Schluß nochmal die wichtigste Adresse
Im Netz sind mehrere Latex-Converter zu finden. Hier eine Auswahl:
http://www.codecogs.com/latex/eqneditor.php
http://www.mr.ethz.ch/~majer/formula/formula.php
http://rogercortesi.com/eqn/index.php

Bedenkt, daß die generierten Bilder Traffic auf fremden Seiten erzeugen, wenn sie direkt eingebunden werden. Die erstellten LateX-Bilder sollten daher immer zunächst als Beitragsanhang oder bei einem Imagehoster hochgeladen werden, bevor sie in einem Beitrag verwendet werden:

Aus dem "Formeldarstellung mit Latex"-STICKY

Also alles richtig gemacht ;)
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
wenn das Bild grösser wäre so wie bei brusko wäre noch ganz cool
 

zoiX

Administrator
Mitglied seit
07.04.2002
Beiträge
22.364
Reaktionen
9.690
Dafür müsstest du halt die img-Tags benutzen...sollte einfach gehen, wenn man auf die Bildaddresse des Dateianhangs benutzt *test*

attachment.php
 
Mitglied seit
22.03.2008
Beiträge
1.672
Reaktionen
0
jo, also ich hänge die bilder meistens nicht direkt hier im Forum an, sondern lade sie auf abload.de hoch, und füge sie dann hier mittels img tags ein, also so:

blabla oder so*
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Es gibt wahrscheinlich keinen Weg Listen mit dem Table Befehlt zu erstellen, wo ich den Iterator nicht festlege, also "n" einfach stehen lasse?

Bei Summen geht das z.B.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Noch mal ich

kann mir das einder direkt mit nem Befehlt maximieren

Obj = {x[1]^0.5 - (x[1] + x[2])^2, x[2]^0.5 - (x[1] + x[2])^2}

Ich kanns sonst nur per Hand mit erst ableiten udn dann die FOC=0 solven. Aber das muss doch auch direkt gehen. Ich bin scheinbar zu dum es zu finden.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Ums mal zu pushen

Das mit dem undefinierten n für den Table Befehl oder ähnliches wäre ultrapraktisch wenn möglich... Gibts da wirklich keinen Weg?
 
Mitglied seit
03.08.2002
Beiträge
163
Reaktionen
0
kannst du vielleicht näher erläutern, was du erreichen willst. Ich verstehs nicht ganz :(
meinst du, dass man die (min/)max werte festlegen muss, bei table?
willst du sozusagen ne liste mit variabler länge erstellen?
und was willst du danach mit der liste machen?

ok, ich hab mir dein posting oben nochmal durchgelesen. es geht wohl immer noch darum :p
kannst du mir kurz sagen, wie die funktionen für n variablen definiert sind?

Suchst du sowas hier:

f[x_] := Sqrt[x[[1]]] - Total[x]^2

dim = 3;
vars = Array[x, dim];
ds = Table[D[f[RotateLeft[vars, i - 1]], vars[]], {i, dim}]
Solve[Map[# == 0 &, ds], vars]

vielleicht hab ich die maximierung auch nicht ganz verstanden.
vielleicht kannst du mir das dann nochmal erklären?
 
Zuletzt bearbeitet:

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Naja letztendlich geht es eher darum dass ich für N länder Kostenfunktionen annehmen will und diese Kostenstruktur mit ner Liste und der Table funktion erstelle.

Table[C_i+D_I,{i,1,n}] also die C_i und D_i ausgeschrieben. Aber ich muss n definieren sonst geht das nicht. z.B. n=3
 
Mitglied seit
03.08.2002
Beiträge
163
Reaktionen
0
was willst du denn danach machen?
willst du n irgendwann später festlegen, oder willst du es durch die gesamte rechnung hindurch undefniert lassen und dein ergebnis in abhängigkeit von n erhalten?
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
so in etwa bzw gibt noch paar weitere Annahmen wo ich die Gleichungen dann über n aufsummiere etc. Per Hand auf dem Papier klappt das schon, würde es trotzdem gerne "nachrechnen" in Mathematica und für nen Zahlenbeispiel wärs auch nett.
 
Mitglied seit
03.08.2002
Beiträge
163
Reaktionen
0
und warum nimmst du nicht einfach ne funktion und arbeitest damit?

f[i_]:=C+D
Sum[f,i]
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Also statt des table Befehls die FUnktion schreiben? Ist ihm dann egal das i unbestimmt ist?

muss ich morgen mal probieren.

Also k.a. noch kurz überlegt, wird das dann gehen?

Klar ich kann die generische FUnktion für jeden Spieler/Land aufstellen, aber kann ich ihm dann den Befehl geben dass zu minimieren über ein bestimmtes x_i aus den beiden FUnktionen C_i(x) und D_i(x) ohne im zu sagen wieviele Elemente das x hatt? x wäre dann quasi ein vektor der Länge n über die Variable über die ich minimiere.

das sum bringt mir in der Hinsicht nur was wenn ich ihm den einen Zwischenschritt abnehmen, irgendwann muss ich Solve verwenden und da muss ich dem i wahrscheinlich schon ne Zahl geben, weil

Solve[f_i==0, x] nicht gehen wird ? bzw ohne nen vektor unbestimmter Länge n
 
Zuletzt bearbeitet:
Mitglied seit
03.08.2002
Beiträge
163
Reaktionen
0
Also so wie du es jetzt machst wird es dann wohl nicht gehen.
Letztendlich musst du ja ein n-dimensionales Gleichunssystem lösen, mit n unbestimmt.
Ich weiss nicht ob/wie das im allgemeinen geht, aber vielleicht hat dein problem irgendwelche eigenschaften/symmetrien, die man ausnutzen kann.
Aber wenn du mir mal explizit zeigst wie du minimierst, dann fällt mir vielleicht was ein.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Ich schon zwei Punkt bzw Annahmen in der Aufstellung die es mir erleichtern, dass zu lösen. Von einer Variable ist die Summe 1 und bei ner anderen Sache ist die Summe der eine Variable = der SUmme der anderen Variable. Ist jetzt etwas salopp aufgeschrieben.

Vielleicht schreib ichs morgen noch mal besser auf.

Hatte glaub ich mal oben geschrieben, dass es um ne spieltheoretsiche Modelierung eines Klimaabkommnes geht. Gibt 3 Stufen, in der ersten Phase wird sich entschieden ob alle mitmachen oder keiner, in der 2. wählt man die Anzahl seiner permits w_i und in der 3. emitiert man abhängig von der Anzahl der permits.

Daher fängt man in der 3 stufe an seiner Kosten zu minimieren wissend wieviele permits es gibt.
Daher
min/e_i über C_i(e_i)-p(w_i-e_i) daher C_i'=p und p=1/n*C_i'
oder als Beispielfunktion
min/e_i über 1/2(ebau-e_i)^2-p(w_i-e_i)

p gleich preis für die permits und w_i ist gegeben. Das löst man mit der Nebenbedingung das Sum[w_i]=Sum(e_I) und kriegt dann alle Ergebnisse in Abhängikeit von suM(W_i) aus der 2. Stufe.

2 Stufe ist dann ähnlich das man die w_i wählt und minimiert über w_i
C_i(e_i*)+D_i(sum(w_i)-p*(w_i-e_i*)
oder als Funktion
1/2(ebau-e_i*)^2+1/2(Sum(w_i))^2-p*(w_i-e_i*)

die * sind die best response aus der dritten Stufe. Dann kürzen sich praktischerweise zwei Terme bei der Foc weg

C_i'e_i*'+D_i'-p*'(w_i-e_i*)-p(1-e_i*')!=0 wo sich das p*e_i*' und C_i'e_i*' wegkürzen weil C_i'=p*

und dann bleibt
D_i'-p*'(w_i-e_i*)-p*!=0

Das kann ich dann auch wieder mit bisschen hin und herschieben lössen wenn cih die Gleichung über n aufsummiere weil dann z.B. der Mittelterm rauskürz weil sum(w_i)=sum(e_i) und bleibt erst mal nur noch
Sum(D_i')=n*p

und dann bekomme ich lösungen für W=sum(w_i), w_i, p, e_i etc in Abhänigkeit der funktionalen Form meiner Funktionen.

Bin gerade nicht 100% sicher weil eher so aus dem Kopf aufgeschrieben. Gucke morgen noch mal, scheint aber ok. Dann mache ich das Modell ein klein bisschen kompliziert in dem ich ne Art Mechanism modelliere, wobei das die Sache nicht viel ändert. Das oben kann ich schon nicht lösen wenn ich nicht nen n bestimme.

edit:

ALso ich kann natürlich K[i_] := 1/2/a*(ebau - e)^2 - p*(w - e) definieren, was ich sonst mit dem Table Befehl mache, aber ich wüsste dann nicht mal wie ich das Minimiere..

Minimize[K[1], e[1]] ginge ja noch aber Minimize[{K[1],K[2]}, {e[1],e[2]}] oder ähnliche Ideen gehen nicht.

Und selbst wenn das ginge, ist immer noch die Frage ob es ne Liste unbestimmer Länge geben darf.
 
Zuletzt bearbeitet:

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Ums mal hochzuholen. Da ichs wohl simulieren möchte. Kommt Matlab eher mit nem Vektor der Länge n klar, oder sollte ich bei Mathematica bleiben?

Will mir die MÜhe nicht zwingend umsonst machen mein Modell in Matlab zu schrieben und dann bringst auch nichts..

Kann ich definieren dass ein Ranking von Funktionen wlog halten muss?
 

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Was bedeutet "eher damit klarkommen"? Sofern n nicht in viele Tausend bis Millionen geht, sollten beide Programme kein Problem haben, falls doch hängt es von den Anforderungen ab (und ich habe bislang keines der Programme mit solchen Riesenvektoren genutzt)

Kann ich definieren dass ein Ranking von Funktionen wlog halten muss?
??
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
nene wie ob versucht zu erklären, nicht so krasses spieltheorie modell mit N playern, wobei N einfach nur ne Zahl ist wie z.B. 7, aber Mathematica mag keinen undefiniert langen Vektor der Länge N.

Ich muss bei meiner Erweiterung wenn ich per Hand löse annehmen dass ein Ranking von Funktionen oder Werten ex-post halten soll ums zu lösen. Also F1>=F2>=F3>=.... wlog. Damit ich da was lösen kann.
 

mfb

Mitglied seit
18.07.2003
Beiträge
791
Reaktionen
0
Website
diablo3.ingame.de
Also Matlab ist mit Längen von Vektoren sehr flexibel. Du kannst einfach an Stelle N etwas einfügen, egal ob du den Vektor vorher initialisiert hast. Zum Zugriff sollte es aber vorher belegt worden sein.

Was das mit deinen Funktionen und dem Ranking zu tun hat, verstehe ich nicht.
 
Mitglied seit
16.01.2015
Beiträge
26
Reaktionen
0
Habe Mathematica selber mal in einem Statistik Fach benutzen müssen. Ich hatte nun die Freude mit SPSS zu arbeiten und es ist um einiges intuitiver als Mathematica. Sofern du nicht gezwungen wirst Mathematica für das Fach zu benutzen, würde ich mir diese Alternative mal anschauen.
 

Gelöschtes Mitglied 683020

Guest
SPSS verleitet zum Knöpfchendrücken, bei denen man die Voreinstellungen übersieht und gerne mal Scheiße rauslässt ohne es zu merken. Finde SPSS daher ziemlich blöd. Wenn man nicht genug Übung hat / es nicht nötig hat, wäre die beste Lösung zwischen R und SPSS als Extremen STATA zu nutzen.
 

Benrath

Community-Forum
Mitglied seit
19.05.2003
Beiträge
19.531
Reaktionen
687
Mathematica und SPSS sind doch zwei völlige verschiedene Paar Schuhe??? ich versteh ja dass du 25 Post haben willst, aber bitte...

Btw hab ichs nun mit Maxima gemacht, dass find ich ganz praktisch für so Spieltheorie Sachen, das Problem mit der undefinierten Liste lässt sich per se wohl nicht lösen, aber das Programm ist recht intuitive, wobei am Ende ist die Syntax fast die Gleich wie Mathematica oder Maple.

Cool ist, dass man den Output direkt nach Latex rüber kopieren kann.

Ich glaub meine Kollegin rechnet alle ihre Modelle damit nach und gerade für n=2 oders o ist das praktisch und mann kann auch gut "numerische Beispiele" machen.
 
Oben