|
|
|
|
| Zitat von PutzFrau
Sieht die wenigstens gut aus?
| |
Ist ne blöde Schlampe die ihre Familie ausnutzt um einen manipulativen Alkoholiker zufrieden zu stellen.
Reicht das?
|
|
|
|
|
|
|
Von der anderen Seite hochgeholt, weil das für peinliches Unwissen beim Ausfragen durch meinen Prof heute führte*:
Ich versuche mich gerade durch einige der Grundeigenschaften (z.B. Schrittweite bei den finiten Differenzenquotienten zur näherungsweisen Findung einer Jacobi-Matrix) von root durchzuwurschteln. Jetzt bin ich immerhin soweit, dass ich raushabe, dass rdiff in nonlin.py unten bei KrylovJacobian in die Schrittweite \Omega eingeht. (Hoffe ich, sonst habe ich eine halbe Stunde verschwendet...)
Wenn ich jetzt von außen kein rdiff vorgebe, setzt er:
|
Code: |
if self.rdiff is None:
self.rdiff = np.finfo(x.dtype).eps ** (1./2) |
|
Also finfo nachgeschlagen. ...warum setzt der eine Zahl ein, die noch kleiner ist, als das eps der entsprechenden Zahlen, die er da rumwürfelt...? Zumal die Schrittweite dann am Ende als 1/\Omega auftaucht, und somit das Ding - meines Verständnisses nach - ziemlich beliebig explodiert...
Was übersehe ich? Oder ist das eps was 1+eps != 1 erfüllt bei Multiplikation und Division (noch) harmlos?
*) Spoiler - markieren, um zu lesen:
Aus einem mir nicht unerfindlichen Grund *hust* wollte ein Numeriker wissen, welche Schrittweiten bei der Approximation einer Ableitung gewählt werden... Ähm... Das Gute an Scipy: Es funktioniert. Das Schlechte: Ich habe mich nicht solange mit dem Algorithmus auseinandergesetzt, dass ich ihn gut genug verstanden habe, um ihn funktionierend selbst umzusetzen...
|
|
|
|
|
|
|
Bin mir gerade nicht sicher ob ich die Problematik richtig verstehe, aber mit ** wird potenziert. eps ** 0.5 -> sqrt aus eps. Mit eps < 1 wird das ergebnis > eps.
|
|
|
|
|
|
|
| Zitat von Lord-McViper
Was zum spielen: LHC
| |
Eigentlich wollte ich im Bett sein, jetzt hab ich ein Higgs Boson gemacht
|
|
|
|
|
|
|
| Zitat von Ares
Bin mir gerade nicht sicher ob ich die Problematik richtig verstehe, aber mit ** wird potenziert. eps ** 0.5 -> sqrt aus eps. Mit eps < 1 wird das ergebnis > eps.
| |
...Verdammt. Ja, ich habe in meinen Notizen die Wurzel stehen, aber irgendwie bin ich heute nicht in der Lage simple REchnungen zu machen.
Beim Gespräch mit Chef habe ich auch mehrfach Fehler gemacht, die an meinem Abitur zweifeln lassen.
...wieviele Maxima hat sin(20\pi t) auf [0,1]? ...
|
|
|
|
|
|
|
Wieder mal was zur Programmstruktur. Meine Simulation ist im Kern nicht parallelisierbar, was leider ein großer Nachteil von Monte Carlo Zeugs ist.
Was ich aber gerne hätte, wäre ein schneller Kern, der die Simulation ausführt und eine Art Controller, in dem während der Kern läuft parallel ausgewertet und ausgegeben wird.
Beispiel: Nach X Schritten Simulation schreibe ich Zwischenergebnisse in eine Datei. Das ist zwar kein riesen Geschwindigkeitsnachteil, aber für die Simulation eigentlich unwichtig und das könnte daher parallel laufen. Oder die stdout Ausgaben. Oder irgendwelche Datenanalysen.
Anstatt nun die einzelnen Funktionen dafür alle einzeln zu parallelisieren, würde ich gerne ein Objekt haben (Singleton oder so), welches automatisch asynchron ist. So nach dem Schema:
|
Code: |
Simulation::run() {
Controller c;
while(..) {
step();
c.analyze(); // diese Funktion sollte sofort returnen und die
// Simulation nicht aufhalten, sondern asynchron
// laufen.
}
} |
|
Wie löse ich sowas am besten?
/e: Ui. http://www.cplusplus.com/reference/future/async/
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Oli am 10.04.2014 11:53]
|
|
|
|
|
|
so jetzt erklaert mir mal bitte einer wie funktioniert oder was das ist
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von con_chulio am 10.04.2014 12:10]
|
|
|
|
|
|
hmmmm, exotisch.
|
|
|
|
|
|
|
| Zitat von con_chulio
so jetzt erklaert mir mal bitte einer wie funktioniert oder was das ist
| |
Ich frage mal einen Freund in der Lattice-QCD.
Wikipedia zu Tetraquarks und Mesonic Molecule sagt leider wenig bis nichts.
What's wrong with scientists is that you do see wonder and beauty in everything.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 10.04.2014 15:21]
|
|
|
|
|
|
Hm. Ich habe Mist gebaut beim Benennen meiner _vielen_ Dateien. Ich möchte jetzt ein Python-Script basteln, dass jeden enthaltenen Integer durch einen dreistelligen Integer ersetzt. Also:
foo5bar432bar34bar --> foo005bar432baar032
Ich habe jetzt ein paar Schnipsel zusammengetragen, von denen ich denke, dass sie mir helfen werden... (ich passe sie mal nicht aneinander an...)
|
Code: |
newfilename = filename.replace(" ","_") # convert spaces to _'s |
|
|
Code: |
>>> for filename in os.listdir("."):
... if filename.startswith("cheese_"):
... os.rename(filename, filename[7:]) |
|
Jetzt habe ich mir aus Fundstücken eine RegExp zusammengebastelt
,
die, soweit ich das verstehe, jetzt eine zusammenhänge Zahl ausspuckt.
Mit davon müsste ich jetzt zumindest schonmal den "Zahlenstring" haben, den ich will.
Wie setze ich das zusammen, dass er für jede zusammenhängende Zahl, die er findet, diese in die dreistellige Fassung bringt und dann die nächste im Dateinamen sucht?
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Wraith of Seth am 10.04.2014 20:53]
|
|
|
|
|
|
|
|
|
|
Hm. Ja, das hilft, muss aber erstmal verdaut werden. Ich glaube, ich werde versuchen diese Antwort zu nutzen. Danke!
Nächste Frage: Wenn ich jetzt mit r''' texcode ''' den Inhalt einer TeX-Datei zusammenbastelt - wäre ur''' texcode ''' das dann auch mit der richtigen Encodierung? Ich sehe nämlich schon den GAU, dass ich zwar ein TeX-File habe, aber wieder eine halbe Stunde darauf verwende, das manierlich in UTF8 umzuwandeln...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 10.04.2014 21:03]
|
|
|
|
|
|
|
Code: |
for file_ in os.listdir("."):
r=re.split("(?<!\d)(\d+)(?!\d)",file_)
newname = ''.join(a+b.zfill(3) for a,b in zip(r[::2],r[1::2]))
os.rename(file_, newname) |
|
newname enthält, was es enthalten sollte, wenn ich nur
|
Code: |
for file_ in os.listdir("."):
r=re.split("(?<!\d)(\d+)(?!\d)",file_)
newname = ''.join(a+b.zfill(3) for a,b in zip(r[::2],r[1::2])) |
|
austeste. Warum beschwert er sich jetzt beim Ausführen, dass er die Dateien nicht findet?
...und plötzlich tut es. wtf. Egal. Meine Dateien sind jetzt bereit für das TeX-Script.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 10.04.2014 22:33]
|
|
|
|
|
|
Welcher Adblocker für Chrome? P0t Empfehlung?
|
|
|
|
|
|
|
| Zitat von Behind
Welcher Adblocker für Chrome? P0t Empfehlung?
| |
falscher Thread
|
|
|
|
|
|
|
|
|
|
|
Gute Empfehlung, sehr funktional.
|
|
|
|
|
|
|
Hm. Ich habe den String:
file_ = 'Kzeta8K24nint12.sobj'
Jetzt bastel ich also was hoffentlich einfaches mit regexp. Ich will Kzeta, K, nint auslesen. Der Reihenfolge nach im Beispiel: 8, 24, 12.
Alles weitere wird mit findall(file_) ausgeführt.
. ist "irgendwas". \d eine Zahl. So glaube ich, verstanden zu haben...
Erster Versuch:
|
Code: |
regexp1 = re.compile(r'.nint\d') |
|
Ergebnis: ['4nint1']
Nächster Versuch: Gruppieren wir einfach die Zahl!
|
Code: |
regexp1 = re.compile(r'.nint(\d)') |
|
Ergebnis ['1']
Nun: Eine beliebige Folge der GRuppe?
|
Code: |
regexp1 = re.compile(r'.nint(\d)*') |
|
Ergebnis: ['2']
Hm. Andere Wildcard hinter der Gruppe?
|
Code: |
regexp1 = re.compile(r'.nint(\d)+') |
|
Ergebnis: ['2']
What. The. Fuck. ._.
|
|
|
|
|
|
|
Kzeta(\d+)K(\d+)nint(\d+)\.sobj
Willst du noch Erklärungen, was deine Regexe da warum machen?
du könntest auch einfach (\d+) nehmen und dann mit re.findall suchen
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Redh3ad am 10.04.2014 23:42]
|
|
|
|
|
|
|
|
|
|
| Zitat von Redh3ad
Kzeta(\d+)K(\d+)nint(\d+)\.sobj
Willst du noch Erklärungen, was deine Regexe da warum machen?
| |
Liebend gerne! Danke schonmal!
Mit der Regexp von dir bekomme ich dann eine Liste (Kzeta, K, nint). Das Problem: Zwischendurch ist eine Datei dabei der Form 'Kzeta032K096nint048Abb034.eps', die mir eine zusätzliche Info liefert, die ich auch abfragen müsste. Deswegen hatte ich die Hoffnung, nur jeweils den einzelnen Integer auszulesen mit jeweils vier RegExp. Und wenn die vierte eine leere Liste ausspuckt, wird die Zahl nicht weiter verwendet.
Hammergeiler Link!
¤DIT:
war es, was ich konstruieren wollte. Und ohne Punkte klappt es auch. Super!
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Wraith of Seth am 10.04.2014 23:47]
|
|
|
|
|
|
| Zitat von Wraith of Seth
Erster Versuch:
|
Code: |
regexp1 = re.compile(r'.nint\d') |
|
Ergebnis: ['4nint1']
| |
ist klar, denke ich. '.' matcht ein einzelnes, beliebiges Zeichen und \d eine einzelne Ziffer. Da du keine Group hast, kriegst du den kompletten Match zurück.
| Zitat von Wraith of Seth
Nächster Versuch: Gruppieren wir einfach die Zahl!
|
Code: |
regexp1 = re.compile(r'.nint(\d)') |
|
Ergebnis ['1']
| |
hier hast du die Group, die matcht aber nur auf eine einzelne Ziffer und was danach kommt, ist egal
| Zitat von Wraith of Seth
Nun: Eine beliebige Folge der GRuppe?
|
Code: |
regexp1 = re.compile(r'.nint(\d)*') |
|
Ergebnis: ['2']
Hm. Andere Wildcard hinter der Gruppe?
| |
Der Stern ist an der falschen Stelle, so kriegst du nur das letzte Vorkommen der Gruppe (ja, nicht wirklich intuitiv). Du willst aber eine Gruppe mit möglichst vielen Ziffern finden, die Wiederholung muss also Teil der Gruppe sein (innerhalb der klammern stehen).
| Zitat von Wraith of Seth
|
Code: |
regexp1 = re.compile(r'.nint(\d)+') |
|
Ergebnis: ['2']
| |
quasi identisch mit vorherigem Fall
|
|
|
|
|
|
|
Vielen Dank! Das heißt also, dass die zurückgegebene Liste entweder die ganze RegExp ist oder die Liste der der Reihe nach die darin enthaltenen Gruppen?
|
|
|
|
|
|
|
kommt drauf an, welche Methoden du nutzt
hast du ein Match-Objekt, macht groups() das von dir beschriebene
group() allerdings hat als erstes immer den kompletten Match, die anderen Gruppen folgen dann mit Indizes ab 1
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Redh3ad am 11.04.2014 0:18]
|
|
|
|
|
|
| Zitat von Virtus
Gute Empfehlung, sehr funktional.
| | kaum wach, schon gelacht. Danke.
|
|
|
|
|
|
|
Ich komme mal wieder zu spät, weil ich nicht mehr oft genug im pOT nerde, aber...
| Zitat von SwissBushIndian
| Zitat von csde_rats
| Zitat von SwissBushIndian
| Zitat von Oli
| Zitat von csde_rats
1. Semester, Einführung OS => Shellprogrammierung
| | bei deinem studienfach hoffe ich doch, dass sowas Pflicht ist.
| |
Du würdest staunen...
| |
Ich wollts ja nicht sagen
Aber es gibt durchaus Leute die hier mitm MSc rausspazieren und einen Computer nur eher rudimentär bedienen können. Das weiß ich, weil ich leider eine von denen kenne.
| |
Das gibt es hier reihenweise. Ich kann das nichtmal verteufeln, die Leute sind in ihrem Gebiet top. Das Problem ist halt, dass der Stempel "Informatiker" oft mit "Programmierer" gleichgesetzt wird. Und letzteres habe ich garantiert _nicht_ im Studium gelernt.
| |
Das ist es halt. Nicht jeder wird Software-Ingenieur, alle anderen Spezialisierungs-Richtungen brauchen nur rudimentäre Programmier-Kenntnisse um ihr Zeug in den Computer zu kippen. Bei uns im Studium bist du schon ein bisschen gezwungen mal ASM/C/haskell/Java/TeX anzugucken, aber auch nicht mehr und nur oberflächlich. Später gibts dann die Möglichkeit sich durch Wahl der richtigen VL Softwaretechnologie noch genauer beibringen zu lassen, das machen aber auch nicht so super viele. Stattdessen wird dann eher in die VL gegangen, in denen es um die "sexy" Themen geht. (Z.B. in diesem Semester gerade beliebt: "Internet and Web Applications".) Dass man in dem Bereich dann aber auch qualitativ hochwertige Software in effektiven Prozessen entwickeln sollte und dabei tunlichst nicht nur verbuggten unwartbaren Rotz runterschreibt, dafür ist einfach kein Verständnis da. Ich bin ja selbst m.E. kein besonders guter Programmierer, aber wenn ich sehe, was so Manche an purem Klärschlamm produzieren... Ich denke mal deshalb wollen viele Arbeitgeber einige Jahre Arbeitserfahrung sehen.
Naja, ich war ja auch auf der "ich hatte ja die Vorlesungen dazu"-Schiene, bis ich mal ne Weile in der echten Welt gearbeitet habe. Jetzt bin ich zurück an der Uni und belege nur noch (relativ) praktisch anwendbare Lehrveranstaltungen. Ich will später nicht unbedingt Programmierer werden, bzw. am liebsten gar nicht selbst viel programmieren. Man braucht es aber halt doch als Werkzeug und wenn du als der Informatiker im Team dann nicht mehr Ahnung von Software hast als deine Maschi- oder E-Technik-Kollegen, dann läuft da was schief.
| Zitat von Wraith of Seth
Ich hatte bisher auch eher den Eindruck, dass man sich gut durchmogeln kann, weil viele PO nicht wirklich festlegen, dass man mal beweisen muss, dass man Grundlagen beherrscht...
| |
Ich behaupte jetzt einfach mal: weil man die jeweiligen Grundlagen auch gar nicht beherschen muss, sondern dazu fähig sein soll, sie sich gegebenenfalls selbst anzueignen. Grundlagen-VL gucken immer nur sehr oberflächliche und stichpunktartig auf ihre Themengebiet. Im Endeffekt musst du dir später das, was du dann jeweils wirklich brauchst, selbst erarbeiten.
Für alles Andere wäre zumindest die Informatik auch viel zu schnelllebig. Es wird gerne behauptet, dass das Wissen eines Informatikers eine Halbwertszeit von ca. 5 Jahren hat, bevor es obsolet wird. Wir wissen aber andererseits spätestens seit Fred Brooks Paper "No Silver Bullet" von 1986, dass es beim Software-Engineering nicht so sehr um Programmiersprachen o.a. Technologie geht. Sondern die wirkliche Leistung des Inschenörs ist es, aus den Anforderungen eine "konzeptuelle Lösung" in seinem Kopf aufzubauen und diese gescheit mit seinen Kollegen/dem Kunden zu kommunizieren und abzustimmen. Wie das dann später mal an den Computer kommuniziert wird, ist eigentlich nebensächlich.
Dementsprechend sind (IMO) zumindest bei der Software viele Grundlagen gar nicht mal so wichtig in den feineren Details, sondern man muss ein Bewusstsein dafür haben, was man alles beachten muss und was man dann näher betrachten muss. Man muss also eher wissen, welche Fragen man stellen muss, anstatt nur bekannte Antworten im Kopf zu haben.
BTW in der Auto-Industrie wird zum Beispiel nur noch relativ wenig Code selbst geschrieben. Man benutzt eher Code-Generatoren und gescheite abstraktere Modelle, in der Praxis heißt das fast immer Matlab/Simulink. Modelgetriebene Entwurfsmethoden sind eh gerade stark im kommen, noch gibt es aber nicht für den ganzen Stack wirklich gute Lösungen am Markt. Für die immer noch nötige Handarbeit kann man dann auch Programmierer mit Berufsausbildung (und mit stark wachsendem Anteil auch Inder o.ä.) nehmen. Die Arbeit des Software-Engineers geht immer weiter zum Software-Architekten über, der sich um eine gescheite Grob-Struktur immer komplexer werdender Systeme kümmern muss. Der einzelkämpfende Software-Developer wird, zumindest in vielen größeren Unternehmen, eher seltener.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Skgoa am 11.04.2014 9:52]
|
|
|
|
|
|
Kennt sich jemand von euch mit NetCDF aus? Ich... blicke da nciht so ganz durch.
|
|
|
|
|
|
|
| Zitat von Skgoa
Ich behaupte jetzt einfach mal: weil man die jeweiligen Grundlagen auch gar nicht beherschen muss, sondern dazu fähig sein soll, sie sich gegebenenfalls selbst anzueignen. Grundlagen-VL gucken immer nur sehr oberflächliche und stichpunktartig auf ihre Themengebiet. Im Endeffekt musst du dir später das, was du dann jeweils wirklich brauchst, selbst erarbeiten.
Für alles Andere wäre zumindest die Informatik auch viel zu schnelllebig. Es wird gerne behauptet, dass das Wissen eines Informatikers eine Halbwertszeit von ca. 5 Jahren hat, bevor es obsolet wird. Wir wissen aber andererseits spätestens seit Fred Brooks Paper "No Silver Bullet" von 1986, dass es beim Software-Engineering nicht so sehr um Programmiersprachen o.a. Technologie geht. Sondern die wirkliche Leistung des Inschenörs ist es, aus den Anforderungen eine "konzeptuelle Lösung" in seinem Kopf aufzubauen und diese gescheit mit seinen Kollegen/dem Kunden zu kommunizieren und abzustimmen. Wie das dann später mal an den Computer kommuniziert wird, ist eigentlich nebensächlich.
Dementsprechend sind (IMO) zumindest bei der Software viele Grundlagen gar nicht mal so wichtig in den feineren Details, sondern man muss ein Bewusstsein dafür haben, was man alles beachten muss und was man dann näher betrachten muss. Man muss also eher wissen, welche Fragen man stellen muss, anstatt nur bekannte Antworten im Kopf zu haben.
BTW in der Auto-Industrie wird zum Beispiel nur noch relativ wenig Code selbst geschrieben. Man benutzt eher Code-Generatoren und gescheite abstraktere Modelle, in der Praxis heißt das fast immer Matlab/Simulink. Modelgetriebene Entwurfsmethoden sind eh gerade stark im kommen, noch gibt es aber nicht für den ganzen Stack wirklich gute Lösungen am Markt. Für die immer noch nötige Handarbeit kann man dann auch Programmierer mit Berufsausbildung (und mit stark wachsendem Anteil auch Inder o.ä.) nehmen. Die Arbeit des Software-Engineers geht immer weiter zum Software-Architekten über, der sich um eine gescheite Grob-Struktur immer komplexer werdender Systeme kümmern muss. Der einzelkämpfende Software-Developer wird, zumindest in vielen größeren Unternehmen, eher seltener.
| |
Leuchtet mir ja auch ein - aber ich behaupte jetzt, dass zumindest eine "nörgelnde Eingabe" nötig ist, um die fiesen Details, die einem dazwischen funken könnten, abzusehen. Sei das jetzt TeX, HTML, PHP, Ruby, Python, Haskell, C., ... Das Mindset kommunizieren die alle - ja, sogar TeX. Imho. Sonst hätte ich im Leben nicht so schnell mit Python anfangen können oder gestern mein TeX-Dokument automatisch erstellen lassen können. Worauf ich immer noch stolz bin.
Weniger toll: Ich war am Ende bis ~7 im Büro, um halb neun schreibt Chef eine Mail an mich bzgl der Ergebnisse von gestern, wann er im Institut ist und ich werde erst wach, als er wieder weg ist... *narf*
Jetzt funktioniere ich zwar mal, aber der Schlaf ist immer noch ruinös.
Naja, heute wird es wohl auch wieder eher die Nacht werden, in der ich aktiv bin. Gleich will ich mal zum Wachwerden einen Physikvortrag (Kosmo) von Turner hören. Rocky Kolb habe ich auch mal gehört - der ist sehr, sehr spaßig und lustig drauf in seinen Vorträgen. Ich hoffe, dass Turner ähnlich ist.
|
|
|
|
|
|
|
Hallo, ich habe gerade ein Verständnisproblem.
Es geht um FEM-Balkenbiegung.
P(ξ ) sollte ja laut 3.10 [0 ξ ξ^2 ξ^3] sein und A^-1 steht ja da. Nirgends das "l" zu finden
Mein Problem ist, wie er von 3.14 auf 3.15 kommt. Speziell da bei N2 und N4 ja noch die "1/2*l" bzw. "-1/2*l" drin stecken. Ich weis das sich das "1/2*l" irgendwie auf den Winkel in 3.12 bezieht was von 3.11 herkommt usw.
Steh gerade voll auf dem Schlauch.
¤:
Es sei denn das N1=w1 N2=1/2*l*φ1 N2=w2 N3=-1/2*l*φ2, dann würde es sich ja quasi wegkürzen und alles wäre in Butter.
¤2: Aber das erscheint mir gerade ein bisschen sinnlos. wtf...
|
[Dieser Beitrag wurde 6 mal editiert; zum letzten Mal von Bregor am 11.04.2014 18:53]
|
|
|
|
|
|
Das stimmt schon so.
l ist die Länge deines Elements, da die konstant ist kann man die bei der berechnung von auf die andere Seite schieben. (das kommt da übrigens wegen der kettenregel hin.. xi ist normiert worden auf -1, 1)
Dann willst du ein Gleichungssystem lösen, welches man ja auch durch invertieren der Matrix machen kann
die einzelnen Zeilen entsprechen dann den Funktionen an jeweils knoten eins und zwei.
Ist alles sehr verwirrend
|
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XVI ( Ship painting activities ) |