Hallo Zusammen,
folgendes Grundproblem:
Angenommen ich habe die Funktion y = 2x + t
Das Programm soll mir nun x für y = 2 und t = 4 ausgeben.
Wie schreibe ich das? Habe es erfolglos mit der solve Funktion versucht...
Danke und viele Grüße
A346
Gleichung nach Varable auflösen
Re: Gleichung nach Varable auflösen
Hallo A346,
Wenn Du ausgehend von
y = 2x + t
auf beiden Seiten erst "minus t" und dann "geteilt durch 2" rechnest, erhälst Du
x = (y-t)/2
Daraus machst Du Dir eine R Funktion:
Die kannst Du dann für Dein Beispiel so aufrufen:
Zur visuellen Überprüfung:
LG,
Bernhard
Wenn Du ausgehend von
y = 2x + t
auf beiden Seiten erst "minus t" und dann "geteilt durch 2" rechnest, erhälst Du
x = (y-t)/2
Daraus machst Du Dir eine R Funktion:
Code: Alles auswählen
reverse.linear <- function(y, slope, intercept) (y-intercept)/slope
Code: Alles auswählen
reverse.linear(y = 2, intercept = 4, slope = 2)
Code: Alles auswählen
reverse.linear(y = 2, intercept = 4, slope = 2, main = "y = 2x + 4")
## [1] -1
curve(2*x+4, from = -3, to = 3, ylab="y")
abline(h=2, lty=2)
abline(v=-1, lty=2)
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Gleichung nach Varable auflösen
Hallo Bernhard,
vielen Dank für deine schnelle Antwort!
Damit ist das Problem für lineare Funktionen schonmal gelöst.
Gibt es auch für nicht lineare Funktionen, die händisch nicht auflösbar sind eine Lösung?
P = Z*(1-exp(-Z*T)) (exp() ist die e-Funktion)
Die Funktion soll für P = 3 und T = 5 nach Z aufgelöst werden.
Vielen Dank und viele Grüße
A346
vielen Dank für deine schnelle Antwort!
Damit ist das Problem für lineare Funktionen schonmal gelöst.
Gibt es auch für nicht lineare Funktionen, die händisch nicht auflösbar sind eine Lösung?
P = Z*(1-exp(-Z*T)) (exp() ist die e-Funktion)
Die Funktion soll für P = 3 und T = 5 nach Z aufgelöst werden.
Vielen Dank und viele Grüße
A346
Re: Gleichung nach Varable auflösen
Hallo A346,
meinst Du sowas:
Gruß, Jörg
meinst Du sowas:
Code: Alles auswählen
P <- 3; T <- 5
myfu <- function(Z) Z*(1-exp(-Z*T)) - P
uniroot(myfu, c(0, +200))
plot(myfu, 2, +4); grid(col="red")
Re: Gleichung nach Varable auflösen
Hallo A346,
die Antwort lautet nein. Nicht alle Funktionen lassen sich algebraisch nach x auflösen und nicht alle Funktionen haben für die Fragestellung eine eindeutige Lösung. Denke etwa an
0,5 = sin(x)
das hat unendlich viele Lösungen für x. Natürlich kann man sich dort, wo es eine Lösung gibt, mit Versuch und Irrtum an diese Lösung herantasten. Auch dafür hält R Funktionen vor, aber das ist kompliziert und fehleranfällig und muss mit Bedacht genutzt werden (sogenannte lokale Minima können ein Problem sein, ebenso schlechte Startwerte).
Such mal nach der Funktion optim() als recht vielseitigen Lösungsansatz. Du wirst eine Reihe von Blogs etc. dazu finden, die die Anwendung vormachen. Dann nlm, constrOptim, ...
Frisch dieses Jahr erschienen ist dieses Buch, zu dem ich mehr nicht sagen kann: https://www.amazon.de/Introduction-Unco ... 811508933/ und schon etwas länger gibt es dieses, das ich aber auch nicht gelesen habe https://www.amazon.de/Modern-Optimizati ... 319082620/
LG,
Bernhard
die Antwort lautet nein. Nicht alle Funktionen lassen sich algebraisch nach x auflösen und nicht alle Funktionen haben für die Fragestellung eine eindeutige Lösung. Denke etwa an
0,5 = sin(x)
das hat unendlich viele Lösungen für x. Natürlich kann man sich dort, wo es eine Lösung gibt, mit Versuch und Irrtum an diese Lösung herantasten. Auch dafür hält R Funktionen vor, aber das ist kompliziert und fehleranfällig und muss mit Bedacht genutzt werden (sogenannte lokale Minima können ein Problem sein, ebenso schlechte Startwerte).
Such mal nach der Funktion optim() als recht vielseitigen Lösungsansatz. Du wirst eine Reihe von Blogs etc. dazu finden, die die Anwendung vormachen. Dann nlm, constrOptim, ...
Frisch dieses Jahr erschienen ist dieses Buch, zu dem ich mehr nicht sagen kann: https://www.amazon.de/Introduction-Unco ... 811508933/ und schon etwas länger gibt es dieses, das ich aber auch nicht gelesen habe https://www.amazon.de/Modern-Optimizati ... 319082620/
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Gleichung nach Varable auflösen
Hallo Bernhard,
vielen lieben Dank für deine ausführliche Antwort!!
Das hat mir weitergeholfen!
Viele Grüße
A346
vielen lieben Dank für deine ausführliche Antwort!!
Das hat mir weitergeholfen!
Viele Grüße
A346