ÖVNINGSUPPGIFT

Uppgift 5 - Geometrisk serie

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: System.out.print

Programmera en geometrisk serie i Java

I denna uppgift ska vi beräkna summan av en geometrisk serie. Betrakta följande geometriska serie:

1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ...

Vid första anblick är det enkelt att tro att summan fortsätter växa i all oändlighet allt eftersom man adderar termer. Men summan närmar sig ett bestämt gränsvärde. Skriv ett program som summerar ett godtyckligt antal termer i serien och skriv ut vilket tal som seriens summa går mot. Programmet ska fråga användaren hur många termer summan ska innehålla. Utgå från följande program:

public class LooparUppgift5 {
    public static void main(String[] args) {
        // Skriv din kod här
    }
}
Ledtråd
Den geometriska serien 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ... kan skrivas om till:

Vi kan självklart inte använda oändligheten i vår summa. Men pröva att ta såväl stora som små tal och se om resultatet skiljer sig åt. Läs följande artikel för härledning av formeln.

Om du inte kommer ihåg hur man tar emot en input från användaren kan du läsa följande avsnitt: Klassen Scanner.

Lösning
import java.util.Scanner;

public class LooparUppgift5 {
    public static void main(String[] args) {

        // Skapa ett scanner-objekt som kan ta emot input
        Scanner input = new Scanner(System.in);

        // Variabel för att hålla summan
        double sum = 0;
        double base = 0.5;

        // Fråga användaren om antal termer som ska användas i serien
        System.out.print("Ange antal termer i serien: ");
        int number = input.nextInt();

        for(int n = 0; n < number; n++) {
            sum += base * Math.pow(base, n);
        }

        System.out.println("sum: " + sum);
    }
}

Förklaring

Serien konvergerar mot 1. Efter n termer är summan 1 − 2−n. Absolut konvergens betyder att även serien av termernas absolutbelopp konvergerar; här är alla termer redan positiva. Med flyttal kan resultatet avrundas till exakt 1 trots att en ändlig matematisk delsumma är mindre än 1.