0 Daumen
493 Aufrufe

Aufgabe:

Ich brauche für eine Berechnung eine Auflösung folgender Formel nach x:

B = (2000 * x ^ (n+y)) + (3000 * x ^ (n))

wobei B aus einer Excel-Liste ausgelesen wird und sich mit jedem y ändert (erratisch).

Beispielwerte:

B = 14.216,46

n = 38

y = 48

Dann sollte sich für x 1,017 (gerundet) ergeben.

Ich hoffe das ist so ausreichend erklärt.

(Zusatz: Es soll später in einer Excel-Datei verwendet werden.)


Problem/Ansatz:

Ich wollte es zuerst als p/q-Formel schreiben, aber entweder hab ich einen Denkfehler oder mache einen Fehler bei der Substitution und aufgrund der fortgeschrittenen Stunde krieg ich es nun nicht mehr im Kopf geordnet.

Vorab schon mal vielen Dank an alle die mir weiterhelfen können.

Avatar von

2 Antworten

+1 Daumen

Man kann die Gleichung nicht nach x umstellen.

Man könnte zwar x^n ausklammern, das führt aber nicht weiter, weil x vor und in der Klammer auftritt.

Nur für B=0 ließe sich so eine Gleichung analytisch lösen.

Avatar von 81 k 🚀

Hmm.... ich ahnte schon irgendwie dass es mindestens kompliziert ist, hatte aber auch befürchtet, dass es nicht geht. Schade.

Dennoch vielen Dank für die Antwort.

+1 Daumen

Solltest du nur an den reellen Lösungen interessiert sein?

Man könnte evtl. über VBA eine Lösung mit einem numerischen Verfahren programmieren bei Interesse sag Bescheid.

Avatar von 21 k

Jetzt weiß ich grad nicht ob Du mit reell reelle Zahlen meinst oder Lösungen die "Sinn ergeben". Ich tippe auf Letzteres, dann wäre die Antwort: Ja.

Ein kleines VBA-script krieg ich schon noch selber hin, aber danke für das Angebot.

Ich werd auch mal noch die bei Excel integrierten Formeln durchforsten vielleicht findet sich da ja noch was.

Auch Dir vielen Dank für die Antwort.

Nach dem ich nur ein vorhandenes Script suchen, finden und anpassen muß

Attribute VB_Name = "Modul1"
Function f(x As Double, c As Double, n As Double, y As Double) As Double
f = 2000 * x ^ (n + y) + 3000 * x ^ n - c
End Function

Function df(x As Double, c As Double, n As Double, y As Double) As Double
df = (n + y) * 2000 * x ^ (n + y - 1) + n * 3000 * x ^ (n - 1)
End Function


Function Newton(x As Double, c As Double, n As Double, y As Double) As Double
Dim xo As Double

Do
    xo = x
    x = xo - f(xo, c, n, y) / df(xo, c, n, y)
   
Loop Until Abs(x - xo) <= 10 ^ -5

Newton = x

End Function

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community