Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Zahlenreihe mit gleichen negativen Exponenten

Zahlenreihe mit gleichen negativen Exponenten

Universität / Fachhochschule

Tags: Excelformel, Negative Exponenten, Vereinfachen, Zahlenfolge

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Thomas-1

Thomas-1 aktiv_icon

13:33 Uhr, 16.02.2022

Antworten
Hallo Community,

Ich suche für Excel eine Formel die diese Zahlenfolge (Länge ist abhängig von n) beschreibt:

y=A(1k+2k+...+nk)

, wobei k=-(1m)= konstant

Diese Excelformel funktioniert nicht: "=POTENZREIHE".
Auch andere Potenzreihen Formeln liefern kein vernünftiges Ergebnis, da hier der Koeffizient konstant ist und nicht herausgeschleust werden kann.

Hätte jemand eine Lösung?
Vielen Dank.


Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Hierzu passend bei OnlineMathe:
Exponentialfunktion (Mathematischer Grundbegriff)
Potenzregeln (Mathematischer Grundbegriff)
Online-Nachhilfe in Mathematik
Antwort
HAL9000

HAL9000

13:42 Uhr, 16.02.2022

Antworten
Schreib dir doch eine passende VBA-Funktion mit den zwei Parametern m und n. Also ungefähr sowas:

Function PartialSumZeta(m, n)
psum = 0
For i = 1 To n
psum = psum + i ^ (-1 / m)
Next
PartialSumZeta = psum
End Function


Antwort
maxsymca

maxsymca

15:04 Uhr, 16.02.2022

Antworten
Ein paar Vorschläge

Array-Formel
={SUMME(A1:A10^k)}
A1:A10=1,2,...10, k=Name festlegen oder Term

der

={SUMME({1.2.3.4.5.6.7.8.9.10}^k)}

Eingeben ohne {} und mit STRG+UMSCHALT+EINGABETASTE



Thomas-1

Thomas-1 aktiv_icon

15:30 Uhr, 16.02.2022

Antworten
Danke für den Hinweis.
Genau das wollte ich nicht (Schleifendurchläufe), da es sowieso eine ziemlich komplizierte Datei ist (Kalkulation) mit vielen Nutzern und Lösungsmöglichkeiten und 1000'e Zeilen Code dahinter. Daher soll alles in eine Zelle rein. Aber ich glaube das wird sehr schwierig, da Exp in Summen nicht heraus gelöst werden können.
Antwort
HAL9000

HAL9000

15:58 Uhr, 16.02.2022

Antworten
Habe ich dich richtig verstanden: Du willst eine SUMMENFREIE Darstellung des Terms 1k++nk, d.h., die Laufzeit soll bzgl. n nicht O(n) sein sondern nur O(1) ??? Was du in der Hinsicht allenfalls erreichen kannst ist eine Reihendarstellung der Funktion mit Hilfe der Euler-Maclaurin-Formel (siehe de.wikipedia.org/wiki/Euler-Maclaurin-Formel , gleich das erste Beispiel unter "Anwendungen"). Dort gilt dann tatsächlich: Je größer n, umso schneller (d.h. weniger benötigte Reihenglieder) erreicht man damit die erforderliche Genauigkeit.
Thomas-1

Thomas-1 aktiv_icon

09:33 Uhr, 17.02.2022

Antworten
Hallo HAL9000,
Danke für den Vorschlag. Die Eulerfunktionsdarstellung ist doch etwas zu komplex und für mich so nicht erschließbar. Abgesehen von der Nicht-Implementierbarkeit in Excel als Funktion.

Ich tendiere aber nun doch zu der Lösung als VBA. Hier habe ich ein Zelle zur Eingabe für n und eine Ergebniszelle. Jetzt müsste die Berechnung nur noch starten wenn ich in nach Eingabe von "n" nur noch die Enter-Taste drücke, d.h. ohne extra Button oder Tastenkombi zum Start des VBA-Schnipsels. Das kommt direkt in das Excel-Blatt rein:
================================================
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B2")) Is Nothing Then Eξt Sub
If Target.Count >1 Then Eξt Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Then
Target.Offset(0, -1).ClearContents
Else:
Target.Offset(0, -1)=...
"jetzt kommt die Berechnung"
Function PartialSumZeta(m, n)
psum =0
For i=1 To n
psum = psum +i-1m
Next
PartialSumZeta = psum
......
End If
End Sub

Thomas-1

Thomas-1 aktiv_icon

09:42 Uhr, 17.02.2022

Antworten
Hallo maxsymca und Danke für den Vorschlag.

ich habe es mal probiert, leider hat es nicht geklappt :-)
Benötige ich dazu noch weitere Werte-Zellen oder kann ich das in eine einzige Zelle packen?
====================================
Array-Formel
={SUMME(A1:A10^k)}
A1:A10=1,2,...10, k=Name festlegen oder Term
der
={SUMME({1.2.3.4.5.6.7.8.9.10}^k)}
Eingeben ohne {} und mit STRG+ALT+EINGABETASTE
Antwort
maxsymca

maxsymca

09:57 Uhr, 17.02.2022

Antworten
das sind array formeln, kennst du diese technik?
der formel eintrag wird mit der tastenkombination STRG+UMSCHALT+EINGABETASTE abgeschlossen
also
=SUMME({1.2.3.4.5.6.7.8.9.10}^k) STRG+UMSCHALT+EINGABETASTE
ergebnis
{=SUMME({1.2.3.4.5.6.7.8.9.10}^k)}

in dem fall ist der vektor {1…10} eine konstante, ist das für dich ok, oder muss der vektor variabel sein.
ggf. müsste man den irgendwo hinpacken und die benötigte länge abgreifen…

Deine vba technik verstehe ich net. du kannst doch eine function direkt als formel einsetzen? Und wenn es schnell gehen soll die Variablen Option explcit festlegen(Dim).

edit:KORREKTUR tastenkombination!
Antwort
HAL9000

HAL9000

10:30 Uhr, 17.02.2022

Antworten
Noch eine Anmerkung zu der Näherung: Für große n ist

1k++nk11+k(n+12)1+k+ζ(-k)

im hier betrachteten Fall -1k<0 schon eine sehr gute Näherung. Bleibt natürlich das Problem der Riemannschen ζ-Funktionswertberechnung - aber vielleicht genügt dir ja bereits die Genauigkeit ohne diesen Summanden ζ(-k). Oder wenn du mit einer geringen Anzahl von m- bzw. k-Werten arbeitest, kannst du die benötigten ζ-Werte ja auch vorberechnet in einer Tabelle ablegen.

Thomas-1

Thomas-1 aktiv_icon

12:12 Uhr, 18.02.2022

Antworten
Hallo maxsymca,
mit dem Array kenne ich mich nicht aus. Der Vektor muss variabel sein. Wie geht das, könntest du eine Bsp. Datei anhängen?

Thomas-1

Thomas-1 aktiv_icon

12:14 Uhr, 18.02.2022

Antworten
Hallo HAL9000,
danke für den Vorschlag. Leider kommt aus der Formel kein für mich verwertbarer Wert heraus. Dann bleibt nur VBA.
Antwort
HAL9000

HAL9000

12:18 Uhr, 18.02.2022

Antworten
> Leider kommt aus der Formel kein für mich verwertbarer Wert heraus.

Du meinst damit "nicht genau genug" ? Denn ein verwertbarer Ausdruck kommt auf jeden Fall heraus.


Mit ζ(-k)=ζ(1m)-m+12m-2+2-ln(2π)2m

bekommt man eine m.E. bereits bemerkenswert gute Näherungsformel

1-1m+2-1m++n-1mmm-1(n+12)m-1m-m+12m-2+2-ln(2π)2m,

die umso besser ist je größer n bzw. m sind.

Antwort
maxsymca

maxsymca

14:32 Uhr, 18.02.2022

Antworten
Ajee, im letzten Post hab ich mich verschrieben/verkopiert
der Array-Formel-Abschluß muss mit STRG+UMSCHALT+EINGABETASTE erfolgen
ein paar Vorschläge

_AB
1k4
2n100
3=PartialSumZeta(B1;B2)
4{=SUMME(ZEILE(A1:INDEX(A:A;B2))^(-1/B1))}
5{=SUMME(ZEILE(BEREICH.VERSCHIEBEN(A1;0;0;B2;1))^(-1/B1))}

xl-Dateien (incl Makro) können nicht angehängt werden...
Option Explicit

Function PartialSumZeta(m As Single, n As Integer)
Dim psum As Single, i As Integer
psum =0
For i=1 To n
psum = psum +i-1m
Next
PartialSumZeta = psum

End Function
Single Double für höhere Genauigkeit
Integer Long für n>32000

BTW: Makro

Sub Makro1()
' ArrayFormel für k,n in Zellen über selection

Selection.FormulaArray = "=SUM(ROW(R1C1:INDEX(C1,R[-1]C))^(-1/R[-2]C))"

' Eine Spalte weiter: ArrayFormel für k,n in Zellen darüber

Selection.Offset(0, 1).FormulaArray = "=SUM(ROW(OFFSET(R1C1,0,0,R[-1]C,1))^(-1/R[-2]C))"
End Sub

Clipboard_2022-02-18_14-30-46
Thomas-1

Thomas-1 aktiv_icon

16:37 Uhr, 22.02.2022

Antworten
HAL9000,
vielen lieben Dank für die Gleichung. Die funktioniert wirklich sehr gut. Es gibt zwar nur Näherungswerte, aber die Abweichungen sind bis n=4 nur innerhalb 1% und ab n=5 bei fast 0%. Respekt !
Nach welcher Gleichungssystematik ist die Formel abgeleitet?
Thomas-1

Thomas-1 aktiv_icon

17:00 Uhr, 22.02.2022

Antworten
Hallo maxsymca,
leider funktioniert die Tastenkombination nicht. Nach drücken derer kommt immer die geschweifte Klammer und #Name? wird angezeigt. Woran könnte es liegen?
Ist die PartialSumZeta das Ergebnis eines VBA?
Danke und Gruß

Antwort
maxsymca

maxsymca

17:26 Uhr, 22.02.2022

Antworten
Also gaaanz laaangsam
Du schreibst oder kopierst die Formel in eine Zelle (danach in die Bearbeitungsleiste - C1 und C2 müssen natürlich den Input bereitstellen oder anpassen)

C1=2
C2=100
=SUMME(ZEILE(A1:INDEX(A:A;C2))^(-1/C1)) Strg-Taste festhalten, Umschalt-Taste dazunehmen(den Groß/Kleinbuchstaben umschalter) und mit der Eingabe-Taste eintragen
Fertisch
Das sind deutschsprachige Formeln - siehe weiter oben, da hab ich Dir einen Sub Makro1() zum Formel schreiben gegeben - da stehen die englischen Formeln drin. Ausführen der Sub erzeugt die Formeln in der markierten Zelle!

Ich würde den Zählvektor auf der A-Spalte festtackern, die Dollars werden aber hier als LATEX interpretiert.!

Auf Google Spreadsheets ist das einfacher gelöst, da heißt es einfach
=ArrayFormula(SUMME(ZEILE(A1:INDEX(A:A;B2))^(-1/B1)))
ohne weiteres gedöns....
docs.google.com/spreadsheets/u/0

Die VBA Funktion hab ihr doch ins Spiel gebracht - ich hab nur Variablen-Spezifikationen dazu geschrieben wegen der Flottizität - sonst wird alles als Variant gehandelt und das bremst....

Ajee, Gif spielt er wohl nicht ab
www.geogebra.org/resource/sq7fyzdq/LtdgIcwoOC8y5CSD/material-sq7fyzdq.png

maousegif
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.