2025(e)ko martxoaren 2(a), igandea

6. jarduera (III) | Pi zenbakia: Leibniz (1674)








Gottfried Wilhelm Leibniz, (Leipzig, 1646ko uztailaren 1a – Hannover, 1716ko azaroaren 14a) alemaniar filosofo, matematikari, logikari, teologo, jurista, liburuzain eta politikaria izan zen.


XVII. eta XVIII. mendeetako pentsalari handienetakoa izan zen, azken jenio unibertsal gisa ezaguna (bere osteko guztiak "ezpezialistak" izan omen dira). Metafisika, epistemologia, logika, erlijioaren filosofia, matematika, fisika, geologia, legegintza eta historiaren alorretan, ekarpen sakon eta garrantzitsuak egin zituen.

Filosofiaren historian zein matematikarenean figura esanguratsua da. Newtonen lanarekiko paralelo, kalkulu infinitesimala garatu zuen, notazio eta guzti, ordutik erabiltzen dena. Sistema bitarra ere asmatu zuen, egungo ordenagailuen oinarri birtuala dena.

Bestalde, Leibnizek teknologian ekarpenak egin zituen, bai eta biologian, medikuntzan, geologian, probabilitate teorian, ingeniaritzan eta konputazio zientzietan ere.

Hau da Leibniz segida π konstantearen hamartarrak kalkulatzeko:


Baina soluzioak arazo bat du, 19 milioi termino batu behar dira 7 hamartar zuzen lortzeko. Argi utz dezagun formula horiek aurkitu izana meritu handia dela, nahiz eta praktikan ez diren baliagarriak π zenbakiaren hamartarrak zehaztasunez kalkulatzeko.

Jarraian π zenbakiaren segidari dagokion programa bat C lengoaian idatzirik:

/* 6b-Jarduera_PIzenbakiaLeibniz */
//------------------------------------------------------------------------------
//  Leibnizen formula PI kalkulatzeko:
//      PI/4 = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...
//  zoritxarrez segida honen konbergentzia oso motela da
//------------------------------------------------------------------------------

#include <stdio.h>
#include <math.h>

#define MUGA 0.0001

int main() {
    double rSegida, rBatugaia, rDoikuntza;
    int iKont, iZeinua;

    printf("//////////////////////////////////////\n\n");

    do {
        printf("Kalkuluaren doikuntza eman (milaren adibidez, 0.001): ");
        scanf("%lf", &rDoikuntza);
        if (rDoikuntza < MUGA) {
            printf("Doikuntza %.4f baino handiagoa izan dadila!\n", MUGA);
        }
    } while (rDoikuntza < MUGA);

    printf("\n");

    rSegida = 1.0;   // lehen batugaia kanpoan
    iZeinua = -1;
    iKont = 3;

    do {
        rBatugaia = iZeinua * 1.0 / iKont;
        rSegida += rBatugaia;
        printf("iKont = %5d rSegida = %16.12f rBatugaia = %17.12f\n", iKont, rSegida, rBatugaia);
        iKont += 2;
        iZeinua = -iZeinua;
    } while (fabs(rBatugaia) >= rDoikuntza);

    printf("\n");
    printf("  rSegida = %16.12f\n", rSegida);
    printf("\n");
    printf("rSegida * 4 = %16.12f (Leibniz)\n", 4 * rSegida);
    printf("       PI = %16.12f\n", M_PI);

    printf("\n");
    printf("//////////////////////////////////////\n");
    
    return 0;
}







  • 6b-Jarduera_PIzenbakiaLeibniz.cbp | main.c


 

iruzkinik ez:

Argitaratu iruzkina