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 7 ... 50 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
Wraith of Seth

wraith_of_seth
Kurze Zwischenfrage, da ich mich mehr verwirre, je länger ich drüber nachdenke.

TeX: k\in\{0,\dots,n-1\} und TeX: \delta_i^k das Kronecker-Symbol.

Ich war mir sehr sicher, dass für Vektoren y^k folgendes gilt :
TeX: \partial_{y^k} \left(\sum_{i=0}^{n-1}(y^{i+1}-y^i)^2\right)
TeX: = 2\sum_{i=0}^{n-1}(y^{i+1}-y^i)(\delta_k^{i+1}-\delta_k^{i})
TeX: =2 (y^k -y^{k-1} - y^{k+1} + y^k)

Aber je länger ich auf das mehr oder weniger gleiche gucke:
TeX: \partial_{y^k}\left(\sum_{i=0}^{n-1} (y^{i-1}+y^{i+1}-2y^i + a^i + b^{i-1})^2\right)

...übernehme ich meine Rechnung, komme ich auf
TeX: 2\sum_{i=0}^{n-1}(y^{i-1}+y^{i+1}-2y^i + a^i + b^{i-1})(\delta^{i-1}_k + \delta^{i+1}_k - 2\delta^i_k)

...aber irgendwie verunsichert mich das gerade massiv...

Zweite Meinungen? Sprich: Habe ich mein Index-Jutsu noch richtig in Erinnerung?

¤ðiŧ:
Mathematica übertreibt es, aber die Frechet-Ableitung sieht so aus wie ich es wollte. Nur brauche ich noch keine Dirac-Deltas, Kroneckers reichen mir. Ist aber eh mir oder weniger das selbe...
[Dieser Beitrag wurde 5 mal editiert; zum letzten Mal von Wraith of Seth am 22.03.2014 4:21]
22.03.2014 0:51:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SilentAssassin

Sniper BF
Sollte so passen
22.03.2014 8:34:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Frage Python 101 mit WoS
 
Code:
def gerade(Y0,YK):
    strecke = []
    for i in range(0,nint):
        f(t) = YO[i] + t*(YK[i]-Y0[i])
        strecke.append(f)
    return strecke

Das gibt den lustigen Fehler beim Aufruf der Funktion, dass die globale Variable Y0 nicht definiert sei. WTF? Das ist doch eine lokale Variable, die ich - wie schon dutzende Male zuvor - doch einfach in der Definition eingeführt habe. Wieso stört ihn das hier plötzlich?

Das einzig globale, auf das ich zugreife, ist nint - aber ihn stört stattdessen Y0...
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 22.03.2014 9:34]
22.03.2014 9:32:54  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Redh3ad

AUP Redh3ad 11.10.2009
großes o != Null
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Redh3ad am 22.03.2014 9:43]
22.03.2014 9:36:22  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
...das hätte ich im Leben nicht gesehen. Warum müssen die Tasten auch so nahe beeinander sein? Wütend
22.03.2014 9:40:04  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Redh3ad

AUP Redh3ad 11.10.2009
verschmitzt lachen
Und warum drückst du dazu auch noch Shift?


Evtl. solltest du einfach einen anderen Font nutzen, bei dem man O und 0 einfach unterscheiden kann.
22.03.2014 9:46:00  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
traurig gucken Sage 101 WoS
Hm. Ich hoffe, diesmal was interessanteres zu haben:
 
Code:
nint = 250 #Anzahl der Interpolationspunkte
kreis(t) = (cos(2*pi*t),sin(2*pi*t));
kreissin(t) = ((1-0.25*sin(10*2*pi*t))*cos(2*pi*t), (1-0.25*sin(10*2*pi*t))*sin(2*pi*t));
p1 = [kreissin(i/nint) for i in range(0,nint)]
p2 = [kreis(i/nint) for i in range(0,nint)]
def gerade(Y0,YK):
    var('t')
    strecke = []
    for i in range(0,nint):
        strecke.append(Y0[i] + t*(YK[i]-Y0[i]))
    return strecke
test = gerade(p1,p2)


Was es sein soll: Eine Liste von Abbildungen t |--> R^2. Das ist es auch meistens. Nur wenn test[0] ist ein gutes Beispiel dafür, dass ich eine Konstante und keine konstante Funktion bekomme. Klingt harmlos, ist aber schlimm, weil ich Fehler bekomme, sobald ich versuche, jedes Element zu plotten oder an einem Punkt auszuwerten.

Wie bekomme ich das hin? Hier wird auf mehr oder weniger das gleiche Problem eingegangen, aber die Lösungen dort bekomme ich nicht so auf meine Liste übertragen. Z.B. funktioniert nicht
 
Code:
    for i in range(0,nint):
        strecke[i](t) = Y0[i] + t*(YK[i]-Y0[i])
_______
SyntaxError: can't assign to function call
 


Dabei sehen die Vorschläge aus der Seite so aus:
 
Code:
sage: f(x) = x        # instead of 'f = x'
sage: g = f.derivative()
sage: g
x |--> 1

 
Code:
sage: f = x
sage: g(x) = f.derivative()  # instead of 'g = f.derivative()'
sage: g
x |--> 1

Ideen? traurig
22.03.2014 10:50:22  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Redh3ad

AUP Redh3ad 11.10.2009
 
Zitat von Wraith of Seth

 
Code:
    for i in range(0,nint):
        strecke[i](t) = Y0[i] + t*(YK[i]-Y0[i])
_______
SyntaxError: can't assign to function call
 



Das ist dann irgendein Konstrukt von Sage, von dem ich keine Ahnung habe. In pure Python würde man das mit lambda-Ausdrücken machen.

 
Code:
    for i in range(0,nint):
        strecke[i] = lambda t: Y0[i] + t*(YK[i]-Y0[i])


Wobei sich mir auch nicht erschließt, warum du nicht einfach eine Funktion mit zwei Argumenten (i und t) nimmst, statt später
 
Code:
strecke[i](t)
aufzurufen
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Redh3ad am 22.03.2014 11:10]
22.03.2014 11:04:29  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
__________________________

¤DIT:
Ich habe jetzt was, was zwar unelegant ist, aber funktioniert. Die Frucht meiner Arbeit wird gleich hier zu sehen sein.



 
Code:
def gerade(Y0,YK,i,t):
    var('t')
    return Y0[i] + t*(YK[i]-Y0[i])

Ich hatte gehofft, die "mathematischen Objekte", die ich da eigentlich rumwedel, geschlossener erhalten zu können.

Naja, unelegant, aber funktioniert schon. Und jetzt hat diese Gerade so lange gedauert, wie ich dachte, dass das gesamte Vorgeplänkel dauern würde.

Was freue ich mich auf den Moment, wo die eigentlichen KErnstücke geschrieben werden. Das werden seeeeehr lange Formeln, die eingehackt werden wollen, bevor ich auch nur die Chance habe, zu sehen, ob das, was ich da getippt habe, richtig ist...
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Wraith of Seth am 22.03.2014 11:55]
22.03.2014 11:28:56  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
Ich suche einen eleganten Algorithmus (in Matlab), der folgendes Problem löst: Ich habe eine Folge von Wahr/Falsch-Werten und möchte die Position der längsten Folge von Wahr-Werten, wobei einzelne Falsch-Werte ignoriert werden sollen. Einmal aufgezeichnet:
 
Code:
Position:   1       5        10        15        20        25
Werte:      0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0
               |-------|       |-----------------|         |---|
Folgen:         Länge 4             Länge 9               Länge 2

Rückgabe: 11 - 19


Hat jemand eine elegante Idee, wie man das lösen kann? Aktuell verwende ich diesen Code:
 
Code:
% Lücken stopfen
for i=2:size(interesting)-1
    interesting(i) = interesting(i) || (interesting(i-1) && interesting(i+1));
end

% Längste Folge suchen
x = cumsum(interesting~=1);
interesting = find(x==mode(x));

Aber so richtig schön kommt mir das noch nicht vor. Hat jemand von euch eine Idee?


/edit: erstmal funktionierenden Code posten peinlich/erstaunt
[Dieser Beitrag wurde 5 mal editiert; zum letzten Mal von Danzelot am 22.03.2014 16:21]
22.03.2014 16:02:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
/e: Ach, die Position! mom.
/e: Achso, es geht um Matlab beautiness. Dann keine Ahnung, grad nicht installiert. traurig
/e: Gute Gelegenheit, es mal wieder zu installieren.
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Oli am 22.03.2014 17:04]
22.03.2014 16:39:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
Das Problem ist hier weniger der Algorithmus, als ihn in Matlab auszudrücken, oder? peinlich/erstaunt
22.03.2014 16:43:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
Ja peinlich/erstaunt
22.03.2014 17:04:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Hier du son of life.

 
Code:
interesting = [0 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0];
new = bitor(conv2(interesting, [1 1 1], 'same') > 1, interesting);

is = find(diff([0 new]) == 1);
ie = find(diff([new 0]) == -1);

[c,i] = max(ie - is + 1);

is(i)
ie(i)
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Oli am 22.03.2014 17:22]
22.03.2014 17:21:17  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
wat
22.03.2014 17:23:21  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
conv2 legt einen FIlter [1 1 1] über das Array, wodurch jeder EIntrag zur Summe mit seinen Nachbarn wird. Eine 0 umgeben von 1en wird also eine 2. Das Ergebnis davon > 2 ist also ein array, wo alle einzelnen Nullen Einsen sind. bitor ist ein einfaches &, also bitor(.., interesting) ergibt das ursprüngliche Array mit Lücken gefüllt.

find(diff( findet sozusagen Stufen, also da, wo 0 zu 1 wird und andersrum. Das sind die Anfangs- und Endpunkte der Sequenzen. Dann mit max() noch schnell die längste finden und fertig.

Zur Hälfte ergoogelt.

/e: Der Aufwand ist vermutlich 5N oder noch schlimmer, aber er wollte ja eine elegante (*ähem*) Lösung und keine effiziente.
/e: Wenn ich so drüber nachdenke.. Diesen Filter könnte man auch verwenden, um die Anfänge und Enden der Sequenzen zu entdecken. Wenn man immer ar(i)-ar(i+1) macht, dann bedeutet eine -1, dass von 0 auf 1 gewechselt wird und eine +1 von 1 auf 0. Aber damit rumzufummeln überlasse ich dir.
/e: Vielleicht geht's ja sogar mit nur einem Filter? Das wäre natürlich am coolsten.
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Oli am 22.03.2014 17:34]
22.03.2014 17:26:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
...
Ja, das ist echt hübsch Breites Grinsen Und conv2 hat mir bei meinen ersten Versuchen gefehlt, ich habe mich mit filter herumgenervt
22.03.2014 17:32:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
unglaeubig gucken
 
Zitat von Oli

Der Aufwand ist vermutlich 5N oder noch schlimmer


5n ist n und damit das beste, was du hier erreichen kannst.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rufus am 22.03.2014 17:45]
22.03.2014 17:43:21  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
verschmitzt lachen
Pah, meine Methode oben war auch schon in O(n). Das muss besser gehen! Wütend
22.03.2014 17:47:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Länge von Sequenzen in O(1) bestimmen klingt nach einem Turing-Award...
22.03.2014 17:58:35  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
Ich überlege die ganze Zeit, ob nlogn möglich wäre, aber ich bezweifle es irgendwie.
22.03.2014 17:59:44  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ne glaube ich nicht. Es gibt ja sicher überraschend schnelle Algorithmen für vieles, aber hier bin ich mir doch ziemlich sicher, dass das nicht geht.
22.03.2014 18:02:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Hätte man das Ausgangsarray intelligenter, als Baum oder so, aufgebaut, ginge es vermutlich.

An dieser Stelle sei ein gepflegter rant eingebracht.

Matlab ist kacke. Und zwar, weil sowas wie oben möglich ist. KEINE SAU VERSTEHT WAS DER CODE MACHT! Das ist write-only code. Das suckt! Danzelots ursprüngliche Lösung war viel besser! Und in Matlab ist es schier unmöglich, Code von anderen Menschen zu lesen.
Python tendiert da auch hin. Dieses Einzeiler-voodoo ist im Moment des Programmierens toll, aber sonst auch für nichts nütze.

Außerdem: 5N ist immer schlechter als N. Als Informatiker mag das äquivalent sein, aber ein Anwender freut sich auch über einen konstanten Faktor in der Geschwindigkeit. Wenn meine Simulationen anstatt in einer Woche an einem Tag durchlaufen würden, schwebte ich auf Wolke 7.
22.03.2014 18:10:32  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Olschi

AUP Olschi 26.11.2007
Frage
Es wurde hier bestimmt schon mal angesprochen, ich habe dazu aber nichts gefunden. Seit einigen Wochen kursieren lustige Videos durch YouTube, die beweisen wollen, die Summe aller natürlichen Zahlen sei = -1/12.
Nun sind da einerseits seriöse Physiker dabei, die auch behaupten, dass dieses Ergebnis in mehreren Bereichen der Physik vorkommt (String Theorie). Andererseits wird bei dem Beweis mit divergierenden Reihen gespielt, z. B. wird die Reihe 1-1+1-1+1... mit 1/2 gleichgesetzt.

Kann mir vielleicht jemand erklären, wo der Haken ist, und wieso das in der Physik gebraucht wird?
22.03.2014 18:24:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SilentAssassin

Sniper BF
 
Zitat von Olschi

Es wurde hier bestimmt schon mal angesprochen, ich habe dazu aber nichts gefunden. Seit einigen Wochen kursieren lustige Videos durch YouTube, die beweisen wollen, die Summe aller natürlichen Zahlen sei = -1/12.
Nun sind da einerseits seriöse Physiker dabei, die auch behaupten, dass dieses Ergebnis in mehreren Bereichen der Physik vorkommt (String Theorie). Andererseits wird bei dem Beweis mit divergierenden Reihen gespielt, z. B. wird die Reihe 1-1+1-1+1... mit 1/2 gleichgesetzt.

Kann mir vielleicht jemand erklären, wo der Haken ist, und wieso das in der Physik gebraucht wird?


Dieser "anschauliche" Beweis in dem Video hält natürlich keiner Mathematik stand Augenzwinkern

Denn bei unendlich vielen Summanden kommt es darauf an wie man die Summanden gruppiert.
1-1+1-1+1-1 .., = 1/2 (angbelich Augenzwinkern )
(1-1) + (1-1) + (1-1)+ ... = 0 + 0 +0 +0 = 0

Das sollte das Problem schon veranschaulichen mit der herangehensweise im Video.

Ich hatte irgendwo mal ne vernünftige Herleitung dafür, aber im Prinzip benutzen wir das um Divergenzen zu regularisieren. D.h. man muss sich immer klaren sein, was diese -1/12 da eigentlich sind.
Man kann der Summe diesen Wert zuweisen, da man mit in der komplexen Ebene ne haufen Voodoo betreiben kann um die Summe aus der zeta-funktion heraus zu rechnen.

Wenn ich mich richtig erinnere, ist der Trick sich das nur aus ner anderen sichtweise anzugucken, so dass die Divergenz vom endlichen Teil der summe getrennt werden kann. D.h
TeX:  \sum n = \limit_{\epsilon\to 0} \frac{1}{\epsilon} - \frac{1}{12} .
Den divergenten Teil 1/eps schmeißt man dann einfach weg (bzw. er muss sich später in der Rechnung einfach rauskürzen, sodass wir den endlichen Teil behalten können)
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von SilentAssassin am 22.03.2014 18:42]
22.03.2014 18:37:12  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Zitat von Olschi

Es wurde hier bestimmt schon mal angesprochen, ich habe dazu aber nichts gefunden. Seit einigen Wochen kursieren lustige Videos durch YouTube, die beweisen wollen, die Summe aller natürlichen Zahlen sei = -1/12.
Nun sind da einerseits seriöse Physiker dabei, die auch behaupten, dass dieses Ergebnis in mehreren Bereichen der Physik vorkommt (String Theorie). Andererseits wird bei dem Beweis mit divergierenden Reihen gespielt, z. B. wird die Reihe 1-1+1-1+1... mit 1/2 gleichgesetzt.

Kann mir vielleicht jemand erklären, wo der Haken ist, und wieso das in der Physik gebraucht wird?


Iirc hilft es beim "Regularisieren", also dabei, unerwünschte Dinge aus der REchnung zu kegeln. Alles andere als einfach oder anschaulich. Die "Beweise", die so gerne auf Youtube gezeigt werden, sind aber prinzipiell alle FALSCH, weil sie Dinge mit unendlichen, divergenten Reihen tun, die man damit nicht machen darf, ohne dass man sich in Widersprüche verstrickt.


Mehr dazu:
http://terrytao.wordpress.com/2010/04/10/the-euler-maclaurin-formula-bernoulli-numbers-the-zeta-function-and-real-variable-analytic-continuation/
22.03.2014 18:43:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Olschi

AUP Olschi 26.11.2007
...
 
Zitat von SilentAssassin



 
Zitat von Wraith of Seth



Danke.
Vielleicht kann ich dann wieder in Ruhe penen.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Olschi am 22.03.2014 19:22]
22.03.2014 19:21:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
 
Zitat von Olschi

Andererseits wird bei dem Beweis mit divergierenden Reihen gespielt, z. B. wird die Reihe 1-1+1-1+1... mit 1/2 gleichgesetzt.

Kann mir vielleicht jemand erklären, wo der Haken ist



Ramanujan summation ist der "Haken". Es ist halt nicht der echte Wert der Reihe, weil divergierende Reihen ja keinen haben (auch nicht, wenn ein Füsiker sich hinsetzt und 1+1-1+1-1+1-1 = 1/2 schreibt).
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 22.03.2014 19:22]
22.03.2014 19:22:03  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
verschmitzt lachen
 
Zitat von Oli

Außerdem: 5N ist immer schlechter als N. Als Informatiker mag das äquivalent sein, aber ...


Komplexitätsbegriff der Informatiker außer Acht lassen? Ganz wie du willst: Dann soll dein Anwender halt schnellere Hardware kaufen.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rufus am 22.03.2014 19:29]
22.03.2014 19:29:08  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Virtus

Arctic
...
 
Zitat von Olschi

 
Zitat von SilentAssassin



 
Zitat von Wraith of Seth



Danke.
Vielleicht kann ich dann wieder in Ruhe penen.


Jeder mag penen!
22.03.2014 20:02:27  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 7 ... 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