Hallo Leute!
Ich bin neu hier und brauche unbedingt Hilfe, weil ich einfach nicht weiterkomme.
Die bisherigen Aufgaben in Programmierung waren relativ leicht zu lösen.
Wäre total nett, wenn mir jemand weiterhelfen könnte!
Hier die Aufgabe, die ich lösen soll:
Logarithmus.java. Für x > 0 kann ln x nach der Formel
ln x = 2 * [(x-1)/(x+1) + (x-1)^3/3*(x+1)^3 + (x-1)^5/5*(x+1)^5 + ... +(x-1)^(2n+1)/(2n+1)(x+1)^(2n+1) + ...]
(leider weiß ich nicht, wie ich die Formel lesbarer schreiben kann)
näherungsweise berechnet werden. Schreiben Sie ein Java-Programm, das vom Nutzer eine Zahl x > 1 abfragt und einen Näherungswert für ln x am Bildschirm ausgibt. Sie können sich ohne Test daraus verlassen, dass x > 1 (also x - 1 > 0) gilt. Die Berechnung soll abbrechen, sobald sich die Näherungswerte der aktuellen und vorigen Iteration (also die Werte für n+1 bzw. n Summanden) um weniger als 10^-7 unterscheiden.
In der Lösung dürfen nur die bereits behandelten Sprachkunstrukte von Java verwendet werden (also Schleifen, Verzweigungen, Gleitkommazahlen, Methoden..), keine Bibkliotheksfunktionen wie Math.pow.
So, also angefangen hab ich so:
und ich weiß, dass ich zum Berechnen eine Schleife brauche. Aber wie mache ich jetzt weiter? Ich muss ja auch irgendwie die Hochzahlen hinbekommen und das mit dem Abbrechen...???:L
Ich steh total aufm Schlauch.
Wäre gut, wenn mir schnell wer antworten würde, da ich die Aufgabe morgend Abend fertig haben muss. Danke schonmal.
Knuff
Ich bin neu hier und brauche unbedingt Hilfe, weil ich einfach nicht weiterkomme.
Die bisherigen Aufgaben in Programmierung waren relativ leicht zu lösen.
Wäre total nett, wenn mir jemand weiterhelfen könnte!
Hier die Aufgabe, die ich lösen soll:
Logarithmus.java. Für x > 0 kann ln x nach der Formel
ln x = 2 * [(x-1)/(x+1) + (x-1)^3/3*(x+1)^3 + (x-1)^5/5*(x+1)^5 + ... +(x-1)^(2n+1)/(2n+1)(x+1)^(2n+1) + ...]
(leider weiß ich nicht, wie ich die Formel lesbarer schreiben kann)
näherungsweise berechnet werden. Schreiben Sie ein Java-Programm, das vom Nutzer eine Zahl x > 1 abfragt und einen Näherungswert für ln x am Bildschirm ausgibt. Sie können sich ohne Test daraus verlassen, dass x > 1 (also x - 1 > 0) gilt. Die Berechnung soll abbrechen, sobald sich die Näherungswerte der aktuellen und vorigen Iteration (also die Werte für n+1 bzw. n Summanden) um weniger als 10^-7 unterscheiden.
In der Lösung dürfen nur die bereits behandelten Sprachkunstrukte von Java verwendet werden (also Schleifen, Verzweigungen, Gleitkommazahlen, Methoden..), keine Bibkliotheksfunktionen wie Math.pow.
So, also angefangen hab ich so:
Java:
class Logarithmus {
public static void main(String[] arg) {
Out.print("Bitte geben Sie eine Zahl ein: ");
double zahl = In.readDouble();
Out.println("Naeherungswert fuer ln(" + zahl + "): " + berechneLogarithmus(zahl));
}
static double berechneLogarithmus(double x){
und ich weiß, dass ich zum Berechnen eine Schleife brauche. Aber wie mache ich jetzt weiter? Ich muss ja auch irgendwie die Hochzahlen hinbekommen und das mit dem Abbrechen...???:L
Ich steh total aufm Schlauch.
Wäre gut, wenn mir schnell wer antworten würde, da ich die Aufgabe morgend Abend fertig haben muss. Danke schonmal.
Knuff