Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Irdorath, statixx, Teh Wizard of Aiz


 Thema: pOT-lnformatik, Mathematik, Physik XVI ( Ship painting activities )
« erste « vorherige 1 [2] 3 4 5 6 ... 50 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
MCignaz

Arctic
 
Zitat von Redh3ad

 
Zitat von MCignaz

Ich versteh dein Problem irgendwie nicht so richtig. Kannst du das mal in simplifiziertem Code zeigen?


Ich bin schon wieder nen Schritt weiter, hab zwischendurch shared_ptr aus C++11 entdeckt und damit funktionierts anscheinend erstmal so, wie ich das gerne hätte.


Ah ok. Ja eh empfehlenswert die Dinger. Aehm Unterschied Pointer und Referenzen: Pointer koennen leer sein, Referenzen nicht. Pointers - References
20.03.2014 22:01:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ausm Kopf, ohne Gewähr:

def index(l, i, mu, K=4, n=5):
return l * (K-1 + n + 2) + i * 2 + mu

/e: Yeah, das scheint zu klappen:

 
Code:
def gen(K, n):
    for l in range(K-1):
        for i in range(n):
            for mu in range(2):
                yield (l, i, mu)

def index(l, i, mu, K=4, n=5):
    return l * (K-1 + n + 2) + i * 2 + mu

i = 0
for vec in gen(4, 5):
    assert i == index(*vec)
    i += 1
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 20.03.2014 22:05]
20.03.2014 22:04:04  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
...
 
Zitat von csde_rats

Ausm Kopf, ohne Gewähr:

def index(l, i, mu, K=4, n=5):
return l * (K-1 + n + 2) + i * 2 + mu

/e: Yeah, das scheint zu klappen:

 
Code:
def gen(K, n):
    for l in range(K-1):
        for i in range(n):
            for mu in range(2):
                yield (l, i, mu)

def index(l, i, mu, K=4, n=5):
    return l * (K-1 + n + 2) + i * 2 + mu

i = 0
for vec in gen(4, 5):
    assert i == index(*vec)
    i += 1



Danke. Es ist ungefähr das, was ich mit meinem ausgehungerten Kopf die ganze Zeit versucht habe. Jetzt habe ich gegessen, kann es nachvollziehen - und hoffentlich den Rest von der Rechnung wieder alleine.

Danke!
20.03.2014 22:14:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
missmutig gucken
Nachtrag:

...nope.

 
Code:
# Funktionen, um Indizes von allen beteiligten Größen auszurechnen
def gbi(I,i,mu): #Generiert den Index in der zu minimierenden Funktion für Geodäten (GeodätenBestimmungsIndex)
    return I*(K + n + 1) + i*2 + mu # (K+n+1) = K-1 + n +2

def kuri(gbi): #Generiert aus einem gbi einen Kurvenindex
    return gbi//(K + n +1)

def puni(gbi): #Generiert aus einem gbi einen Interpolationspunktindex
    return (gbi%(K + n +1))//2

def kooi(gbi): #Generiert aus einem gbi einen Koordinatenindex
    return (gbi%(K + n +1))%2

def indextests():
    K = 7
    n = 5
    for I in range(K-1): #Ich versuche klarzumachen, dass es um Wege zwischen Y_0 und Y_K geht - K-1 Stück
        for i in range(n):
            for mu in range(2):
                print (I,i,mu),"->",gbi(I,i,mu)
    print "-----done-----"
    for rho in range(2*(K-1)*n):
        print rho,"->",(kuri(rho),puni(rho),kooi(rho))


Vorsicht, das ist Sage-Code, nicht Python. Einige Rechenbefehle könnten anders sein. (// ist ganzzahlige Division, % modulo)

Das liefert lustige Sprünge.
 
Code:
(0, 3, 0) -> 6
(0, 3, 1) -> 7
(0, 4, 0) -> 8
(0, 4, 1) -> 9
(1, 0, 0) -> 253
(1, 0, 1) -> 254
(1, 1, 0) -> 255


...verdammt. Ich habe mir gesagt, ich gehe erst nach hause, wenn ich eine Geodäte ausgerechnet habe. Ich glaube, scipy draufzuwerfen wird der einfachste Teil...

Vor allem, weil ich mir jedes Mal irgendwelche Syntaxdetails ansehen muss, die ich noch nicht verwendet habe...

Ich bin auch offen für Hinweise auf schlechten Stil.

¤dIT:
Und scheinbar hat numpy etwas namens flatten, was meinem Ziel sehr Nahe kommt - ich finde nur noch nicht die Umkehrrichtung
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Wraith of Seth am 20.03.2014 23:57]
20.03.2014 23:45:30  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ist das K und das n in gbi das gleiche wie in indextests?

Bedenke:
 
Code:
x = 1
def changex():
    x = 3
    print(x)
print(x)
changex()
print(x)

1
3
1
21.03.2014 0:12:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Aber ich rufe doch innerhalb von indextests auf? Sollte da nicht auch lokal vor global gelten?
21.03.2014 0:17:05  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Nein, die aufgerufene Funktion (gbi) weiß nichts von dem Scope (Geltungsbereich) des Aufrufers (indextests), kennt daher nicht die Werte der lokalen Variablen von indextests.

Es macht vielleicht einfach aus praktischen Gründen Sinn eine Klasse für die Methoden zu erstellen, die sich ein gemeinsames K und n teilen.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 21.03.2014 0:30]
21.03.2014 0:30:02  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
RichterSkala

AUP RichterSkala 31.12.2010
Nachdem dir das um die Ohren fliegt, sobald K und n eine Rolle spielen, wohl nicht. Eigentlich sollte das aber auch nen Fehler geben.


Klasse ist wohl etwas Kanonen auf Spatzen. Aber die Variablen global zu definieren könnte helfen.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von RichterSkala am 21.03.2014 0:34]
21.03.2014 0:32:15  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Nicht wenn er auch noch ein globales K und n hat.
21.03.2014 0:34:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Ich lass den Scheiß einfach, mache np.arrays draus und hoffe, dass ich mit flatten und reshape mehr Glück habe.
21.03.2014 0:35:04  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
RichterSkala

AUP RichterSkala 31.12.2010
Der Ansatz war eigentlich schon richtig, man muss es nur ordentlich programmieren. Kannst jetzt natürlich flatten und reshapen, aber dann stellt sich die frage, warum du überhaupt nen 1D Array brauchst. Da i_max und mu_max für jedes I gleich groß zu sein scheinen, kannst du doch von Anfang an mit nem 3D Array arbeiten...


... oder leg dich mal ne Runde hin und geh morgen mit nem frischen Kopf dran, dann geht das vielleicht etwas klarer.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von RichterSkala am 21.03.2014 0:42]
21.03.2014 0:39:04  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Zitat von RichterSkala

... oder leg dich mal ne Runde hin und geh morgen mit nem frischen Kopf dran, dann geht das vielleicht etwas klarer.


Müde bin ich überhaupt nicht. Die neuen Medis wirken etwas... ...beeindruckend.

Selbst wenn ich nur die globalen Variablen benutze, bleiben Sprünge drin.

 
Code:
(0, 4, 0) -> 8
(0, 4, 1) -> 9
(1, 0, 0) -> 13


Eigentlich wäre das alles total simpel, wenn ich wüsste, was ich mache (aka Python tippen) oder zumindest jemanden im Raum hätte, den ich fragen kann.

Der Grund für das 1D-Array ist, dass das in die SciPy-Newtonverfahren reingehen muss.
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Wraith of Seth am 21.03.2014 0:55]
21.03.2014 0:53:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Poste mal mehr oder weniger vollständigen Code (lauffähig), dann kann man dir helfen. Zur Not per PN wenn das im Thread nix gut ist.
21.03.2014 1:04:58  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Code:
# Standardwerte für die Zahl der Interpolationspunkte n und des K für das diskrete Kalkül

K = 7   #Anzahl der Kurven
n = 5 #Anzahl der Interpolationspunkte

# Funktionen, um Indizes von allen beteiligten Größen auszurechnen
def gbi(I,i,mu): #Generiert den Index in der zu minimierenden Funktion für Geodäten (GeodätenBestimmungsIndex)
    return I*(K + n + 1) + i*2 + mu # (K+n+1) = K-1 + n +2

def kuri(gbi): #Generiert aus einem gbi einen Kurvenindex
    return gbi//(K + n +1)

def puni(gbi): #Generiert aus einem gbi einen Interpolationspunktindex
    return (gbi%(K + n +1))//2

def kooi(gbi): #Generiert aus einem gbi einen Koordinatenindex
    return (gbi%(K + n +1))%2

def indextests():
    for I in range(K-1): #Ich versuche klarzumachen, dass es um Wege zwischen Y_0 und Y_K geht - K-1 Stück
        for i in range(n):
            for mu in range(2):
                print (I,i,mu),"->",gbi(I,i,mu)
    print "-----done-----"
    for rho in range(2*(K-1)*n):
        print rho,"->",(kuri(rho),puni(rho),kooi(rho))


Das dürfte letztlich alles relevante sein.
21.03.2014 1:06:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Oh, meine Funktion ist falsch, jupp. Ich weiß gar nicht wie ich drauf gekommen bin da was mit K für die I-Indizierung machen, das ist ja offensichtlich falsch, K ist die I-Größe, darf also nicht mit I multipliziert werden.

def gbi(I,i,mu): return I*n*2 + i*2 + mu
21.03.2014 1:20:32  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
...und ich habe das nachrechnen aufgehört, weil es so ähnlich aussah, wie das, was ich damals in Numerik getippt habe...
21.03.2014 1:23:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ich kapier immernochnicht, wie ich überhaupt auf die Idee gekommen bin das das richtig sein könnte in irgendeiner weit entfernten Galaxie. Breites Grinsen

Lel, Rechtschreibkorrektur schlägt "Nichtschwimmer" für "immernochnicht" vor.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 21.03.2014 1:24]
21.03.2014 1:24:43  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Funfact: Ich hatte gerade das Gefühl, dass mir die Geräuschkulisse des verlassenen Mathe-Instituts sagen will, dass über oder unter mir wer ein Stelldichein hat. Es klang nach rhythmischem Möbelschieben.Breites Grinsen

Danke nochmal.

Ich versuche jetzt mal selbst mir zu überlegen, wie ich eigentlich die Gleichungen definieren muss, damit ich meine Indexfunktionen auch manierlich anwenden kann...Breites Grinsen
21.03.2014 1:39:36  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
cms

AUP cms 14.11.2012
 
Zitat von csde_rats

Lel, Rechtschreibkorrektur schlägt "Nichtschwimmer" für "immernochnicht" vor.

Könnte daran liegen, dass es "immer noch nicht" geschrieben wird. Breites Grinsen
21.03.2014 2:03:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
EDIT²: Interessanter: Einer der Urväter der Inflationsidee bekommt Überraschungsbesuch mit 5 Sigma. Breites Grinsen Da gibt es auch die entsprechende Korrektur, wann die Gravitationswellen entstanden sind. peinlich/erstaunt

Live long and prosper.

Ok, diesmal komme ich mir nicht ganz so dumm vor. Er will mir sagen, dass ein CAS keinen 2D Int-Vektor auf einen symbolischen 2D-Vektor addieren kann.

Wir reden von (0,0) + (cos(13/17),sin(13,17)). Ich fühle mich verarscht.

¤DIT:
DAS war hingegen ein sehr interessantes Debuggen.
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Wraith of Seth am 21.03.2014 10:57]
21.03.2014 3:01:56  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
con_chulio

AUP con_chulio 03.01.2009
http://mattleblanc.github.io/LHC/ peinlich/erstaunt
21.03.2014 11:04:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Zitat von con_chulio

http://mattleblanc.github.io/LHC/ peinlich/erstaunt


Ich glaube, die Reihenfolge der Massen wird sich in meinem Kopf bald rapide bessern...Breites Grinsen

BTW, ich weise Physiker nochmal auf den Edit im letzten Post hin.

Blow shit up, throw women through walls, got it.
21.03.2014 11:17:30  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
cms

AUP cms 14.11.2012
 
Zitat von Redh3ad

 
Zitat von MCignaz

Ich versteh dein Problem irgendwie nicht so richtig. Kannst du das mal in simplifiziertem Code zeigen?

Ich bin schon wieder nen Schritt weiter, hab zwischendurch shared_ptr aus C++11 entdeckt und damit funktionierts anscheinend erstmal so, wie ich das gerne hätte.

Noch ein Tipp dazu: Nutze, wenn immer es geht, den unique_ptr. Und außerdem die erzeugenden Funtionen make_shared und make_unique (C++14, wird aber von den meisten Compilern mittlerweile unterstützt). Auf diese Art und Weise musst du dir um ein delete keine Gedanken mehr machen.
21.03.2014 14:13:17  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
C++ Rule 101: If you see a "delete", the program has a leak
21.03.2014 14:20:45  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Ballardbird_Lee

X-Mas Arctic
21.03.2014 14:23:32  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
RichterSkala

AUP RichterSkala 31.12.2010
Nett, aber die Aussage, dass sich das Universum "fast than the speed of light" ausgedehnt hat, ist etwas problematisch.
21.03.2014 14:31:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Zitat von csde_rats

C++ Rule 101: If you see a "delete", the program has a leak


Ihr habt keine Ahnung, wie froh ich bin, dass ich mir darum keine Gedanken machen muss in Sage. Wahrscheinlich kann ich, aber ich muss nicht...peinlich/erstaunt

Therefore, those people who say that they can't jack off to anime must have something wrong with their brains!
21.03.2014 17:38:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Admiral Bohm

tf2_spy.png
 
Zitat von csde_rats

C++ Rule 101: If you see a "delete", the program has a leak



Wenn man eine Regel mit auf eine einsame (C++)-Insel nehmen müsste, dann die.
21.03.2014 18:12:34  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ich schäme mich auch ganz dolle dafür das ständig zu benutzen traurig
21.03.2014 19:50:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Virtus

Arctic
verschmitzt lachen
Was, C++?
21.03.2014 20:30:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: pOT-lnformatik, Mathematik, Physik XVI ( Ship painting activities )
« erste « vorherige 1 [2] 3 4 5 6 ... 50 nächste » letzte »

mods.de - Forum » Public Offtopic » 

Hop to:  

Thread-Tags:
Mod-Aktionen:
17.08.2014 10:21:16 Sharku hat diesen Thread geschlossen.
19.03.2014 19:30:02 Sharku hat diesem Thread das ModTag 'pimp' angehängt.

| tech | impressum