*gelöst* [Mathe] Gleichung (kompliziert?) DANKE! :)

tedlemegba

abgemeldet
20 April 2006
2.729
175
Hallo!

Ich habe ein kleines Problem. Ich werde als Referat eine Funktion diskutieren.

fbd6c2eb6fbcae19593a27b3241d4811.png
790298d818d8b96eb57f76b1b6a93a6d.png


Probleme habe ich schon bei der Berechnung der Nullstelle(n):

87c88dccf77de52d4d5bcd1a104cbbd7.png


957a20a7ae313504b3c2ac98e3deb98b.png


Nun gut - wie lässt sich auflösen? Mal selber weiterprobiert.

df7f4203902379981933f0ebbbe33d1f.png


34806cb235a2b6a615613f666d466616.png


7b620ebe1691c776a44e34ee38754392.png


Derive spuckte mir auch nur die letzte (verflixte) Gleichung aus. Ist es eventuell gar nicht lösbar? Hat mich auch sehr stark an eine Differentialgleichung erinnert, ist es aber glaube ich nicht.

Wäre auch ganz schön doof. Graphisch gesehen hat die Funktion aber eine Nullstelle.

Wer kann helfen? Danke! :)
 
Zuletzt bearbeitet:
So wie ich das sehe, kannst Du die Nullstellen nicht analytisch berechnen. Außer für spezielle (triviale) Werte von a, wie z.B. a=0.

Für die numerische Berechnung der Lösungen wirst Du wohl auf iterative Verfahren zurückgreifen müssen, wie z.B. das Newton-Verfahren oder Regula Falsi.

Viel Erfolg noch mit dem Referat!


*edit* so isses richtiger.
 
Zuletzt bearbeitet:
DaPhreak schrieb:
Für die numerische Berechnung der Lösungen wirst Du wohl auf iterative Verfahren zurückgreifen müssen, wie z.B. das Newton-Verfahren oder Regula Falsi.

So. Newton-Verfahrne ist ja schön und gut — mittlerweile habe ich es glaube ich sogar wenigstens halbwegs verstanden (rechnen klappt) — aber irgendwo ist da ein Haken. Irgendwo (in der Wikipedia oder auf einer anderen Seite) stand — soweit ich mit entsinnnen kann, finde es aber nicht mehr —, dass man nur bestimmte Startwerte nehmen kann. Inwiefern werden diese denn — ausgenommen dem Definitionsbereich — eingegrenzt? Oder stimmt es doch nicht? :)

Kann man damit eigentlich allgemein annähern — sprich für beliebige Parameter a, oder muss das immer einzeln für definierte Werte erfolgen? Dankeschön! :)

Edit: die Methode nach Regula Falsi ist, soweit ich das zu beurteilen wage, eher ungeeignet für meine Funktion, da sie für a ~ -0,38 die x-Achse nur zu berühren scheint, aber natürlich in diesem Berührpunkt trotzdem ein Schnittpunkt zu finden ist.
 
Zuletzt bearbeitet:
Hmm, also das du nur bestimmte Startwerte nehmen kannst ist nur bedingt richtig. Du bekommst ein Problem, wenn du mehrere Nullstellen hast, weil du mit Newton ja zu jedem Startwert genau eine Nullstelle findest. D.h. je nachdem welchen Startwert du nimmst findest du eine andere Nullstelle. Da du hier ja aber nur eine hast solltest du dir darüber keine Gedanken machen müssen.

Eine Lösung mit Newton mit einem allgemeinen Parameter ist prinzipiell schon möglich, jedoch dürfte das in den meisten Fällen in fiese Rechnerei ausarten, weil die Therme immer größer werden. Es kann natürlich auch sein, dass eine Funktion hinreichend gutmütig ist, dass sich das alles in Grenzen hält, muss aber nicht sein. Ich würd sage lasse es mal auf einen Versuch ankommen, rechne mal drei bis vier Iterationen mit Newton und dem allgemeinen Parameter und schau mal was dabei rauskommt.

HTH
 
sklemm schrieb:
Da du hier ja aber nur eine hast solltest du dir darüber keine Gedanken machen müssen.
Jopps. Danke. Ich kam heute aber mal auf die Seite hier:
https://www.arndt-bruenner.de/mathe/java/newton.htm

Eigentlich recht nett. Hat mir beim Verständnis geholfen. Wieso ich ich allerdings nicht 3, 5 oder 10 einsetzen kann (bei a = 1) verstehe ich nicht!

sklemm schrieb:
Eine Lösung mit Newton mit einem allgemeinen Parameter ist prinzipiell schon möglich, jedoch dürfte das in den meisten Fällen in fiese Rechnerei ausarten, weil die Therme immer größer werden. Es kann natürlich auch sein, dass eine Funktion hinreichend gutmütig ist, dass sich das alles in Grenzen hält, muss aber nicht sein. Ich würd sage lasse es mal auf einen Versuch ankommen, rechne mal drei bis vier Iterationen mit Newton und dem allgemeinen Parameter und schau mal was dabei rauskommt.

Okay. Heißt das, einfach immer mit dem Parameter a ausrechnen? Das wird dann aber auch nur ein langer Rekursion-Schwulst-Term ohne konkrete Zwischenergebnisse, oder?

Danke!
 
happymaster schrieb:
Wieso ich ich allerdings nicht 3, 5 oder 10 einsetzen kann (bei a = 1) verstehe ich nicht!

Hmm, also bei mir funktioniert das auch mit 3 und 5 als startwert. was geht bei dir denn da nicht?

happymaster schrieb:
Okay. Heißt das, einfach immer mit dem Parameter a ausrechnen? Das wird dann aber auch nur ein langer Rekursion-Schwulst-Term ohne konkrete Zwischenergebnisse, oder?

Ja, das meinte ich mit fieser Rechnerei, das werden halt in den meisten Fällen recht große Terme und wenn ich mir die Ergebnisse so anschaue dürfte das hier auch nicht schön werden. Liegt halt daran, dass die e-Funktion nicht wirklich gutmütig ist, wenn es um Rechenoperationen ersten und zweiten grades geht. Nur beim potenzieren ist sie schön, aber das brauchst du hier ja gar nicht.
 
sklemm schrieb:
Hmm, also bei mir funktioniert das auch mit 3 und 5 als startwert. was geht bei dir denn da nicht?

Das Ding kennt ja afaic, keinen ln, also lautet meine Funktion dort:
f(x) = x + log(x)/log(2,71828 );

Setze ich 3, 5,... ein poppt eine JavaScript-Alert-Box mit dem Text "Ungültiger Wert" auf. :|


sklemm schrieb:
Ja, das meinte ich mit fieser Rechnerei, das werden halt in den meisten Fällen recht große Terme und wenn ich mir die Ergebnisse so anschaue dürfte das hier auch nicht schön werden.
Okay, danke. Werde es mal morgen mit meinem Mathelehrer abklären. Der weiß vielleicht noch gar nix von seinem/meinem Glück. :biggrin:
 
happymaster schrieb:
Das Ding kennt ja afaic, keinen ln, also lautet meine Funktion dort:
f(x) = x + log(x)/log(2,71828 );

Hmm, OK, ich hab einfach ne Nullstellensuche für x*exp(x) -1 gemacht, da gehts. Warum das Skript mit deiner Funktion ein Problem hat kann ich dir jetzt nicht sagen, an der Mathematik liegts aber nicht... :mrgreen:
 
sklemm schrieb:
Hmm, OK, ich hab einfach ne Nullstellensuche für x*exp(x) -1 gemacht, da gehts. Warum das Skript mit deiner Funktion ein Problem hat kann ich dir jetzt nicht sagen, an der Mathematik liegts aber nicht... :mrgreen:
Juhuu. Danke! :kiss: :mrgreen:
 
Es sind zwei Funktionen:
ln(x)=0 => x=1
ax=0 => x=0

Die beiden werden zu f(x) = ax + ln(x) verknüpft, also ln(x) um ax verschoben.

Die Nullstelle muss wohl abhängig von a sein.
Also wenn gilt: ln(x)=-ax bzw. a = -(ln(x)/x)
Gilt das für alle a aus R?
 
hmm, Worauf willst du hinaus? Du suchst ja das x und nicht das a. Die Gleichung für a ist aber soweit OK würde ich mal sagen. Ob man damit ganz |R abdeckt möchte ich jetzt nicht 100%ig sagen, aber sieht schon so aus, ich wüsste nicht wo es Probleme geben sollte.
 
sklemm schrieb:
hmm, Worauf willst du hinaus? Du suchst ja das x und nicht das a. Die Gleichung für a ist aber soweit OK würde ich mal sagen. Ob man damit ganz |R abdeckt möchte ich jetzt nicht 100%ig sagen, aber sieht schon so aus, ich wüsste nicht wo es Probleme geben sollte.
respawner schrieb:
für a < -1/e gibt es keine rellen Nullstellen mehr.
Für bestimmte a gibts einfach keine Nullstelle, wenn man IC nicht berücksichtigt.

Kann sein, dass das CAS dadurch durcheinander gekommen ist. ;)
 
DocTrax schrieb:
Für bestimmte a gibts einfach keine Nullstelle, wenn man IC nicht berücksichtigt.

Kann sein, dass das CAS dadurch durcheinander gekommen ist. ;)
liegt wohl eher an sowas wie Lipschitzstetigkeit. Es kann so passieren, dass die Iteratition divergiert. Müsste mal das Zeugs in meinen Unterlagen suchen, aber glaube nicht, dass ich das für das Newtonverfahren und dieser Funktion auf die schnelle hinbekomme.
Wenn ich aber log(x)/log(exp(1))+x mit x=1 verwende funzts wenn ich x=4 nehme funzt es nicht (das sollte wohl meine theorie bekräftigen :ugly: ), aber das ist auch bei +2x so. Also kann ich den Fehler nicht mal nachvollziehen.

MfG respawner
 
Ja das ist das Problem bei dem tollen Newton-Verfahren. Die Start-Lösung muss "hinreichend nahe" an der tatsächlichen Nullstelle liegen, sonst kann es passieren, dass das ganze nicht konvergiert. Wir hatten da mal ein ingenieursmäßiges Faustregel-Kriterium mit der Krümmung, aber ich erinnere mich nicht.

Was Du tun kannst, ist Dir mal Nullstellen auszurechnen für verschiedene a und dann eine grobe Abschätzung dafür zu finden wo die liegen in Abhängigkeit von a. Das könnte dann als Startwert für die Newton-Iteration dienen.



*edit* Die Nullstellen liegen ja immer zwischen e und 0, falled mit wachsendem a. Also der Ingenieur würde jetzt mal pauschal 1 als Startwert festlegen und dann ausprobieren ob's funktioniert :D

Nein bitte nich hauen @Mathematiker :p
 
Zuletzt bearbeitet:
respawner schrieb:
liegt wohl eher an sowas wie Lipschitzstetigkeit.
Wieso denn?

Es geht wohl eher darum die Funktion zu diskutieren und die Nullstellen abzuschätzen - man kommt immer auf einen Wert 0<x<1 für alle a>0 und für a=0 ist die Nullstelle bei x=1 und warum das so sein muss hab ich oben geschrieben.
Hier nochmal etwas ausführlicher:

Es sind zwei Funktionen:
g(x)=ln(x)=0 => x=1
h(x)=ax=0 => x=0

Betrachtung für h(a,x)=ax
h'(a,x) -> 0 für a->0
heisst:
Die Steigung nimmt für kleine a auch kleine Werte an und g domiert => die Nullstelle von f geht gegen x=1.

h'(a,x) -> oo für a->oo
heisst:
Die Steigung nimmt für grosse a auch grosse Werte an und h domiert => die Nullstelle von f geht gegen 0.

Die Nullstellen für negative Zahlen mache ich jetzt nicht.
 
Zuletzt bearbeitet:
mein Kommentar hat sich jetzt nur auf das Programm bezogen und auf das Newtonverfahren und dass es für größere Startwerte anscheinend versagt. Aber natürlich hast du recht, dass man die Funktion vorher mal genauer betrachten sollte für eine Abschätzung. Aber man müsste halt zeigen, dass z.B. dann für x=1 das Newtonverfahren immer konvergiert. Wenn man das dann für allgemeine a zeigt könnte man wohl einen Nährungswert (2. oder 3. Newtonwert) für allgemeine a abgeben. Dafür muss man aber wieder eine Fehlerabschätzung machen, die wohl wieder was mit der Lipschitzstetigkeit (Lipschitzkonstante) zu tun hat.

MfG respawner
 
respawner schrieb:
Dafür muss man aber wieder eine Fehlerabschätzung machen, die wohl wieder was mit der Lipschitzstetigkeit (Lipschitzkonstante) zu tun hat.
Die Funktion ist aber nur für bestimmte a lokal lipschitzstetig (Asymptote x=0) und was das mit dem Problem zu tun haben könnte verstehe ich nicht?
 
Zuletzt bearbeitet: