2024(e)ko martxoaren 8(a), ostirala

Pi zenbakia: Ramanujan (1914)








Srinivāsa Aiyangār Rāmānujan, tamileraz : ஸ்ரீனிவாஸ ஐயங்கார் ராமானுஜன், (Erode, 1887ko abenduaren 22a - Kumbakonam, 1920ko apirilaren 26a) indiar matematikari oso enigmatiko bat izan zen. Zenbaki-teoriaren alorrean eragin handiko lana egin zuen. Ramanujan jakinduria handiko matematikaria izan zen, baina ezagutza gehiena irakaslerik gabe lortu zuenez gero, zenbait gaitan ezjakina zen, eta beste batzuei buruz inork baino gehiago zekien.


Ramanujanen lan nagusiak haren koadernoetan daude, nomenklatura eta notazio berezian berak idatzita, frogarik gabe; eta horrek deszifratze eta eraikitze lan zaila eragin du, oraindik bukatu gabea. π zenbakiak liluratuta, algoritmo indartsu batzuk garatu zituen hura kalkulatzeko.

Ramanujanek lan egin zuen, batez ere, zenbakien teoria analitikoan eta famatu egin zen hainbat formula batukariengatik; esaterako, π gisako konstanteei eta logaritmo naturalen oinarriari dagozkionak.

π konstantearen balioak kalkulatzeko arku tangente formulak erabili ziren, baina ikusi zen bide horrek mugak zituela eta beste algoritmo ahaltsuagoak behar zirela. Lehen soluzioa 1914. urtean heldu zen Ramanujan matematikariak bere segida proposatu zuenean eta honi esker π konstantearen 17.526.200 hamartar lortu ziren.

Hau da Ramanujanen segida π konstantearen hamartarrak kalkulatzeko:


Segida honen ezaugarririk garratzitsuena honako hau da: batukariari batzen zaion batugai berriak 8 hamartar gehiago gehitzen dizkio π zenbakiaren kalkuluari.

Jarraian programa bat:

{ Ramanujanen segida PI kalkulatzeko.     }
{ Faktorialen eta berreketen batukaria da }

program pi_zenbakia_Ramanujan;
uses
   crt; 
const
   K = 2*sqrt(2)/sqr(99); 
   
function fnrFaktoriala(iZbk:integer): real;
var
   k: integer;
   rMetatua: real;
begin
   rMetatua := 1.0 ;
   for k:=1 to iZbk do
   begin
      rMetatua := rMetatua*k;
      //writeln(k, ' ---> ', rMetatua);
   end ;
   fnrFaktoriala := rMetatua;
end ;


function fnrBerreketa(iZbk:integer): real;
var
   k: integer;
   rMetatua: real;
begin
   rMetatua := 1.0;
   for k:=1 to iZbk do
   begin
      rMetatua := rMetatua*369.0;
      //writeln(k, ' ---> ', rMetatua);
   end ;
   fnrBerreketa := rMetatua;
end ;

   
var
   rSegida: real;
   iKont: integer;
   rDoikuntza: real;
   rBatugaia, rZatikizuna, rZatitzailea: real;
begin
   clrscr;
   writeln('//////////////////////////////////////');
   writeln;
   repeat
      write('Kalkuluaren doikuntza eman (adibidez, 0.000000000000001): ');
      readln(rDoikuntza);
   until rDoikuntza > 0.0;
   writeln;
   
   rSegida := K*1103;   (* iKont=0 denean, batugaia kanpoan *)
   iKont := 1;
   repeat
      rZatikizuna := fnrFaktoriala(4*iKont)*(1103 + 26390*iKont);
      rZatitzailea := fnrFaktoriala(iKont)*fnrFaktoriala(iKont)*fnrFaktoriala(iKont)*fnrFaktoriala(iKont)*fnrBerreketa(4*iKont);
      
      rBatugaia := rZatikizuna/rZatitzailea;
      rSegida := rSegida + rBatugaia;
      writeln('iKont =', iKont:2, 'rSegida = ':16, rSegida:0:14, 'rBatugaia = ':17, rBatugaia:0:14);
      iKont := iKont + 1;
   until rBatugaia < rDoikuntza;
   
   writeln ;
   writeln('  rSegida = ', rSegida:0:20);
   writeln ;
   writeln('1/rSegida = ', (1/rSegida):0:20, ' (Ramanujan)');
   writeln('       PI = ', PI:0:20);
   
   writeln;
   
   writeln('//////////////////////////////////////');
   readln;
 end.





Srinivāsa Rāmānujan matematikaria aipatzen ari garela, duela gutxi EiTBk film hau programatu du:


Irudiaren gainean klik egin filmaren Trailer Ofiziala ikusteko

 

iruzkinik ez:

Argitaratu iruzkina

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.