Java-aproksymacja
- ariadna
- Użytkownik
- Posty: 2702
- Rejestracja: 22 maja 2005, o 22:26
- Płeć: Kobieta
- Lokalizacja: Olsztyn/Berlin
- Podziękował: 47 razy
- Pomógł: 642 razy
Java-aproksymacja
Wiemy, że:
\(\displaystyle{ ln2=\lim_{x\to } \sum_{i=0}^{n} \frac{(-1)^{i}}{i+1}=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+...}\)
Podaj algorytm, który umożliwia obliczenie \(\displaystyle{ ln2}\) i który podaje wynik, kiedy ostatni składnik mniejszy jest niż \(\displaystyle{ \epsilon}\). Podajemy \(\displaystyle{ \epsilon}\), chcemy otrzymać przybliżone \(\displaystyle{ ln2}\), jak również n.
Pomoże ktoś?
\(\displaystyle{ ln2=\lim_{x\to } \sum_{i=0}^{n} \frac{(-1)^{i}}{i+1}=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+...}\)
Podaj algorytm, który umożliwia obliczenie \(\displaystyle{ ln2}\) i który podaje wynik, kiedy ostatni składnik mniejszy jest niż \(\displaystyle{ \epsilon}\). Podajemy \(\displaystyle{ \epsilon}\), chcemy otrzymać przybliżone \(\displaystyle{ ln2}\), jak również n.
Pomoże ktoś?
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Sam algorytm jest dość prosty. Najważniejsze (wzór na szereg) masz dany w zadaniu. W kolejnych krokach liczysz kolejne elementy tego ciągu i dodajesz je go sumy (która jest z każdym kolejnym elementem bardziej przybliżoną wartością ln2). Za każdym razem też sprawdzasz. To jest ciąg naprzemienny, a dla takich zwykło się wykonywać określoną liczbę kroków. Zwykle tyle kroków, ile da nam zadawalające przybliżenie. Tyle powinno Ci wystarczeć, bo wzór jest bardzo prosty.
- ariadna
- Użytkownik
- Posty: 2702
- Rejestracja: 22 maja 2005, o 22:26
- Płeć: Kobieta
- Lokalizacja: Olsztyn/Berlin
- Podziękował: 47 razy
- Pomógł: 642 razy
Java-aproksymacja
MGT, można prosić jaśniej?
Ja się dopiero w zeszłym tygodniu dowiedziałam co to Java:)
Coś próbowałam:
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n;
double t=1;
double d;
while (d/n
Ja się dopiero w zeszłym tygodniu dowiedziałam co to Java:)
Coś próbowałam:
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n;
double t=1;
double d;
while (d/n
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Na pierwszy rzut oka nie wygląda źle. Wprawdzie nie znam składni, ale jak na moje zapomniałaś o inkrementacji zmiennej n w pętli while, co spowoduje pętlenie się programu. Reszta wygląda poprawnie.
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Kod: Zaznacz cały
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n;
double t=1;
double d;
while (d/n<e) {
double d=Math.pow(-1,n);
t=(t+(d/n));
n=n+1;
}
System.out.println(t);
System.out.println(n);
}
}
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Jakiś konkretny błąd?
a tak?
Kod: Zaznacz cały
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n=1;
double t=1;
double d=1;
while ((d/n)<e) {
double d=Math.pow(-1,n);
t=(t+(d/n));
n=n+1;
}
System.out.println(t);
System.out.println(n);
}
}
- ariadna
- Użytkownik
- Posty: 2702
- Rejestracja: 22 maja 2005, o 22:26
- Płeć: Kobieta
- Lokalizacja: Olsztyn/Berlin
- Podziękował: 47 razy
- Pomógł: 642 razy
Java-aproksymacja
Error: Unresolved compilation problem:
Duplicate local variable d
Cały czas coś tu nie pasuje, o dziwo za pierwszym razem liczyło, ale błędnie;)
Duplicate local variable d
Cały czas coś tu nie pasuje, o dziwo za pierwszym razem liczyło, ale błędnie;)
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Kod: Zaznacz cały
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n=1;
double t=1;
double d=1;
while ((d/n)<e) {
d=Math.pow(-1,n);
t=(t+(d/n));
n=n+1;
}
System.out.println(t);
System.out.println(n);
}
}
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Kod: Zaznacz cały
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n=1;
double t=1;
double d=1;
while ((d/n)<e) {
d=Math.pow(-1,n);
t=(t+(d/(n+1)));
n=n+1;
}
System.out.println(t);
System.out.println(n);
}
}
Poprawiłem wzór (+1 w mianorniku!)
-
- Użytkownik
- Posty: 107
- Rejestracja: 7 lis 2006, o 12:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Pomógł: 20 razy
Java-aproksymacja
Kod: Zaznacz cały
public class ln2 {
public static void main(String[] args) {
double e = Double.parseDouble(args[0]);
double n=1;
double t=1;
double d=1;
while ((1/(n+1))<e) {
d=Math.pow(-1,n);
t=(t+(d/(n+1)));
n=n+1;
}
System.out.println(t);
System.out.println(n);
}
}