|
|
|
|
Würde ich auch sagen, und Renga hast du mal hier geschaut, was TikZ alles kann?
Und wenn es nicht nativ in TikZ ist, dann halt mit ner Software, die dahin exportiert, was wiederum alles an Software sein kann, inklusive selbstgeschriebenem Skript.
|
|
|
|
|
|
|
Die Grafik auf Seite 20 löst bei mir akute Arachnophobie aus...
|
|
|
|
|
|
|
Nah an der Wahrheit. Je nachdem mit welchen Abteilungen man eingepfercht wird...
|
|
|
|
|
|
|
Ab wann wäre ein System von nichtlinearen Gleichungen, dessen 0 ihr finden wollt, groß? Sprich: Ab wann sollte man Löser verwenden, die explizit auf große Systeme ausgelegt sind?
Irgendwie finde ich in meiner Literatur dazu keine Antwort.
¤DIT:
Nebenbei: GROAR! Warum muss das so schwer sein, über soviele Terme den Überblick zu bewahren!
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 04.04.2014 23:26]
|
|
|
|
|
|
Ab wenn der "normale" keine Lösung findet oder dir persönlich zu lange braucht.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wuerde uach sagen TikZ oder inkscape. Ich finde TikZ ziemlich gut, auch wenn es einiges an Einarbeitung bedarf.
|
|
|
|
|
|
|
inkscape mit dem export nach tikz gefällt mir gut.
danke euch!
|
|
|
|
|
|
|
Der resultierende Code wird absolut unlesbar sein...
Ich kann mir nicht vorstellen, dass dabei auf die vorgefertigten Makros für Graphen zurückgegriffen wird.
May the force be with you!
|
|
|
|
|
|
|
Die sind irgendwie sehr viel witziger als die üblichen "lol blöder code"-Sammlungen.
|
|
|
|
|
|
|
Ich find Nr. 123 ganz nett und #400 könnte so exakt aus dem Minecraft-Sourcen stammen
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 05.04.2014 16:24]
|
|
|
|
|
|
Ich habe ähnlich schlimme Dinge in der eigenen Code-Basis gesehen /o\
Grausame Bilder kommen da hoch...
|
|
|
|
|
|
|
Hey WoS, wo hast du denn vor zu promovieren?
|
|
|
|
|
|
|
| Zitat von pinnback
Hey WoS, wo hast du denn vor zu promovieren?
| |
Bei ihm.
Sobald ich absehen kann, dass ich mit Mathe fertig werde, werde ich ihn anschreiben, ob er Ressourcen frei hat, dann beginnt der Bewerbungslimbo.
What's wrong with scientists is that you do see wonder and beauty in everything.
|
|
|
|
|
|
|
Ich hab jetzt ein wenig Angst weil die Antwort so fix war
Neuseeland klingt aber cool ... und von der Forschung versteh ich natürlich kein Wort, wie zu erwarten war
|
|
|
|
|
|
|
Stöber hier mal durch den Inhalt - du wirst überrascht sein, wie viel du wiedererkennen wirst, zumindest Stichworten nach.
Die Geschwindigkeit war purer Zufall. Und ich habe, weil ich die Bewerbung schonmal vorbereite, alle möglichen Links offen.
¤DIT:
:mad:
...vielleicht sollte ich doch erstmal an einer kaskadischen Lösungsfindung arbeiten statt brute-force mit 200 Interpolationspunkten anzufangen. Wie auch immer das Newtonverfahren auf DIESES Polygon kam. Die letzten paar dutzend Punkte sind btw immer die gleichen... ...kein Wunder, das alle Jacobimatrizen null sind und ständig NaNs und inftys auftreten...
Dass ich erkenne, was die Welt/ Im Innersten zusammenhält.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Wraith of Seth am 06.04.2014 1:26]
|
|
|
|
|
|
Ok, ich brauche mal wieder Hilfe:
Ich habe ein np.array. Das muss mal wieder in der richtigen Form an eine Funktion gereicht werden, die ein anderes Array in gleicher Form ausspucken muss. (soweit ich die Fehlermeldungen von hybr richtig verstanden habe - warum auch immer hybr und lm andere Anforderungen haben als krylov, wenn alles Methoden der gleichen Funktion 'root' sind...)
|
Code: |
/.../geopluspara.sagedGOIBq.py in EXPshoot(Y, zeta, I, poladapt)
333 Y.append(Y[_sage_const_0 ]+zeta)
334 print('Y2 wird nun berechnet, EXP2 liefert Ausgabe über verbose')
--> 335 expI = EXP2(Y[_sage_const_0 ],zeta,poladapt).x
336 Y.append(expI)
337 print('EXPshoot nun ein Array von Laenge',len(Y))
/.../geopluspara.sagedGOIBq.py in EXP2(p0, zeta, poladapt)
311 p2 = scipy.optimize.root(FEXP2, guess,(p0,p1),method='krylov',options={'disp':True,'line_search' : 'wolfe'})
312 else:
--> 313 p2 = scipy.optimize.root(FEXP2, guess,(p0,p1),method='hybr',options={})
314 #p2 = scipy.optimize.root(FEXP2, guess,(p0,p1),method='anderson',options={'disp':True})
315 return p2
/.../_root.py in root(fun, x0, args, method, jac, tol, callback, options)
169
170 if meth == 'hybr':
--> 171 sol = _root_hybr(fun, x0, args=args, jac=jac, **options)
172 elif meth == 'lm':
173 sol = _root_leastsq(fun, x0, args=args, jac=jac, **options)
/.../scipy/optimize/minpack.py in _root_hybr(func, x0, args, jac, col_deriv, xtol, maxfev, band, eps, factor, diag, full_output, **unknown_opti
ons)
197 maxfev = 200*(n + 1)
198 retval = _minpack._hybrd(func, x0, args, 1, xtol, maxfev,
--> 199 ml, mu, epsfcn, factor, diag)
200 else:
201 _check_func('fsolve', 'fprime', Dfun, x0, args, n, (n,n))
TypeError: Cannot cast array data from dtype('O') to dtype('float64') according to the rule 'safe' |
|
Ich habe den Verdacht, dass irgendwo auf den Type-Eintrag des np.arrays zugegriffen wird. Ich weiß nur nicht wo. Alle kleinen Tests, die ich gemacht habe, geben z.B. bei len(nptestarray) die Länge des eigentlich interessanten Inhaltes an - und nicht diese Länge + 1, weil am Ende immer noch ein Eintrag der Form "dtype =..." ist.
|
Code: |
sage: arr1 = [[0,1,2],[pi,e,1]]
sage: arr1 = np.array(arr1)
sage: arr1
array([[0, 1, 2],
[pi, e, 1]], dtype=object) |
|
Also vermute ich, dass der Hase da im Pfeffer liegt: Die Arrays werden nicht mit Numpy/Scipy gemacht, also lungert irgendwo dieser Eintrag dtype rum. Denn dieser Eintrag ist scheinbar dtype='O'...
Wo setze ich an, um das zu debuggen? Ich habe keine Ahnung, warum das z.B. in meinen anderen Algorithmen ähnlicher Art noch nicht aufgetreten ist...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 06.04.2014 1:47]
|
|
|
|
|
|
Es wär hilfreicher, wenn du die ganze Funktion EXP2 postest, weil mir jetzt wieder unklar ist, wo du eigentlich FEXP2 her aus dem Hut zauberst. (Wobei mir jetzt grade klar wird, dass das wohl die zu optimierende Funktion ist und das Problem dann wahrscheinlicher in p0 liegt. Dann ist aber genauso unklar was Y[sage_constant_0] sein soll.)
Außerdem: Ändert sich was, wenn du statt "pi" und "e" da Werte in den Array schreibst?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von RichterSkala am 06.04.2014 2:59]
|
|
|
|
|
|
| Zitat von RichterSkala
Außerdem: Ändert sich was, wenn du statt "pi" und "e" da Werte in den Array schreibst?
| |
|
Code: |
sage: nptest
array([[-0.140494062453033, -0.464602179413757],
[0.656986598718789, 0.924412375280624]], dtype=object) |
|
Nope.
| Zitat von RichterSkala
Es wär hilfreicher, wenn du die ganze Funktion EXP2 postest, weil mir jetzt wieder unklar ist, wo du eigentlich FEXP2 her aus dem Hut zauberst. (Wobei mir jetzt grade klar wird, dass das wohl die zu optimierende Funktion ist und das Problem dann wahrscheinlicher in p0 liegt. Dann ist aber genauso unklar was Y[sage_constant_0] sein soll.)
| | Das Y[sage_constant_0] steht für Y[0] - der preparser macht den Fehlercode leider etwas unlesbar. sage_constant_ kann im Endeffekt meist vergessen werden.
FEXP2
|
Code: |
def FEXP2(p2,p0,p1):#POLYGONE müssen rein!!!
glg = np.empty((nint,2))
p2 = p2.reshape(nint,2)
p0 = p0.reshape(nint,2)
p1 = p1.reshape(nint,2)
for i in range(-2,nint-2):
glg[i] = WI(p0,p1,i) + WII(p1,p2,i) + WIII(p0,p1,i) + WIV(p1,p2,i)
glg = glg.flatten()
return glg |
|
WI-WIV sind Funktionen, die Vektoren ausspucken. Das auch sehr zuverlässig.
|
Code: |
def startEXP(p0,zeta):#POLYGON muss rein, kein Array von Polygonen
guess = np.empty((nint,2))
for i in range(0,nint):
guess[i] = vector(p0[i]) + 2*vector(zeta[i])
print('guess shape',np.array(guess).shape, '-- wir haben einen Schaetzer!')
return guess # will ein np.array sein...
def EXP2(p0,zeta,poladapt):
guess = startEXP(p0,zeta) #sollte ein FLACHES Polygon-np.array sein
p1 = np.empty((nint,2))
for i in range(0,nint):
p1[i] = vector(p0[i]) + vector(zeta[i])
p0 = np.array(p0).reshape(nint,2) #testet vor allem, ob alles funktioniert
p0 = p0.flatten()
p1 = p1.flatten()
guess = guess.flatten()
if K*nint > 128:
p2 = scipy.optimize.root(FEXP2, guess,(p0,p1),method='krylov',options={'disp':True,'line_search' : 'wolfe'})
else:
p2 = scipy.optimize.root(FEXP2, guess,(p0,p1),method='hybr',options={})
return p2 |
|
Jetzt funktioniert es.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 06.04.2014 3:27]
|
|
|
|
|
|
Und der Krylov läuft?
¤: war dann vielleicht der 1-3 Uhr Nachts bug
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von RichterSkala am 06.04.2014 3:28]
|
|
|
|
|
|
...ich bin ja erst seit 15h wach. Und dank neuer MEdis wohl auch noch bis mindestens dann im Büro.
Ich hangel mich gerade durch die Fehler. Die Lösung scheint gewesen zu sein, alles(!) auf np.array umzustellen (np.concatenate ist aber soviel hässlicher als .append() ...), nur heißt das, dass ich jetzt tausend andere Winzfehler bekomme, weil ich einfach die Syntax von allem nicht kann...
Aktuell mag er folgende Variablendeklaration nicht:
|
Code: |
--> 340 Y1 = np.empty(nint,_sage_const_2 )
TypeError: data type not understood |
|
¤DIT:
Ah. Fehlende Klammern.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 06.04.2014 3:32]
|
|
|
|
|
|
Hey WoS, wo wir hier unsere Ruhe haben - ich hoffe, du hast meinen Post im Newsthread nicht so ernst genommen. Als der nächste dann das gleiche im Ernst gepostet hat, fühlte sich das auch für mich etwas bitter an.
|
|
|
|
|
|
|
Ich dachte mir schon, dass du das nicht ernst meinst - das doofe ist nur, dass das zuviele Leute ernst meinen. Bin dir da nicht böse - mache so Sprüche ja selbst-, auch wenn im Kontext mit den nächsten Antworten sich meine Igelstacheln schon massiv aufstellten...
Ich frotzelte letztens auch auf Facebook von wegen "psychische Krankheiten sind nur Einstellungssache" und wurde warnend drauf hingewiesen, dass man diesen Witz lieber nicht macht, weil - gerade schriftlich - zuviele Leute sich da im Ernst mit bestätigt fühlen.
Bei HJs Ignoranz wollte ich irgendwann nur noch reinschlagen.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 06.04.2014 14:35]
|
|
|
|
|
|
Was anderes: Ich habe ein np.array von shape (a,b,c) und will jetzt daraus eines mit shape (a,2b,c) machen. Als reguläres Array ist das simpel:
|
Code: |
def NintDouble(poly): # macht aus einem Polygon ein Polygon mit doppelt so vielen Stützstellen, linear interpoliert
polout = []
for i in range(-1,len(poly)-1):
polout.append(poly[i])
temp = 1/2*(vector(poly[i+1]) - vector(poly[i]))
polout.append(poly[i]+temp)
return polout |
|
Leider tut das auf meinem np.array... ...nüscht.
Füge ich ein
|
Code: |
polout=np.array(polout) |
|
vor dem return ein, bekomme ich den - zu erwartenden Fehler
|
Code: |
ValueError: could not broadcast input array from shape (16,2) into shape (8,2) |
|
¤DIT:
Eine Lösung gefunden, die wahrscheinlich hässlich ist. Wie wahrscheinlich alles, was ich hier produziere...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 06.04.2014 14:54]
|
|
|
|
|
|
| Zitat von Ballardbird_Lee
Hinkefuss dein beschränkter Horizont macht dir das argumentieren zwar leicht, recht hast du dadurch aber nicht.
| |
Gut, dass ihr mich darauf noch aufmerksam gemacht habt.
|
|
|
|
|
|
|
| Zitat von Wraith of Seth
lieber nicht macht, weil - gerade schriftlich - zuviele Leute sich da im Ernst mit bestätigt fühlen
| |
Ich weiß ehrlich gesagt gar nicht, wie ich die letzten anderthalb Jahrzehnte im Textinternet überleben konnte und trotzdem noch soziale Kontakte habe. WIE hoch die Missverständnisquote eigentlich ist, wurde mir erst in den letzten Jahren klar. Eigentlich egal, was man sagt, die einen verstehen es falsch und die anderen verstehen es gar nicht. Die längste Zeit habe ich ausbleibende Antworten immer als verstehende Zustimmung interpretiert, aber offensichtlich ist es weitaus öfter "versteh ich wieder nicht, was der da gerade will".
|
|
|
|
|
|
|
| Zitat von Rufus
| Zitat von Wraith of Seth
lieber nicht macht, weil - gerade schriftlich - zuviele Leute sich da im Ernst mit bestätigt fühlen
| |
Ich weiß ehrlich gesagt gar nicht, wie ich die letzten anderthalb Jahrzehnte im Textinternet überleben konnte und trotzdem noch soziale Kontakte habe. WIE hoch die Missverständnisquote eigentlich ist, wurde mir erst in den letzten Jahren klar. Eigentlich egal, was man sagt, die einen verstehen es falsch und die anderen verstehen es gar nicht. Die längste Zeit habe ich ausbleibende Antworten immer als verstehende Zustimmung interpretiert, aber offensichtlich ist es weitaus öfter "versteh ich wieder nicht, was der da gerade will".
| |
Dieses Forum ist echt eine Perle des vorhandenen Leseverständnisses bei Usern. Glücklicherweise habe ich auch in meinem unmittelbaren Facebook-Umfeld wenig bis keine Aussetzer erlebt. Aber spätestens wenn ein paar mehr Nicht-MINTler dazukommen, wird das wohl grausam.
Wobei auch eine ehemalige Tutandin von mir das hier scheinbar vollen Ernstes gepostet hat.
Immerhin hat jemand ein "" drunter gesetzt. Nur frage ich mich, wievielen Leuten ohne Lesekompetenz jetzt Pluto wieder als Planet durch den Kopf geistert...
|
|
|
|
|
|
|
Ich bin zu doof, wie kann ich aus dieser reduzierten Matrix den Kern ablesen? Und wie bestimme ich dann dessen Basis? - Die Basis kann ich dann ja quasi auch ablesen bzw. dein Vektor selbst nehmen, den ich da als Kern bekomme, oder?
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von MCignaz am 06.04.2014 20:34]
|
|
|
|
|
|
Ich gehe mal davon aus dass du weißt wie du auf die reduzierte Matrix kommst. Dann soll ja ein Vektor (x1,x2,x3,x4) mit A multipliziert 0 ergeben. Erste Zeile liefert x1 = - 2x4,
Zweite Zeile x2 = - 2x4
Dritte Zeile x3=0
Vierte Zeile x4 = egal.
Du kannst also x4 setzen wir du lustig bist, bekommst dadurch x1 und x2 und hast deine Basis.
|
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XVI ( Ship painting activities ) |
|