sábado, 7 de septiembre de 2013

Notas históricas sobre el cálculo de logaritmos ( Artículo escrito en catalán )

Durant el segle disset, la navegació oceànica portava als pilots dels vaixells a fer complicats càlculs astronòmics (navegació astronòmica) de trigonometria esfèrica. En un temps en què, per descomptat, no hi havia calculadores ni ordinadors, calia que algú inventés alguna manera de fer-los més eficaços. Aquesta notable (fascinant) millora vingué de la mà de John Napier (entre altres) en exposar el seu mètode de càlcul en l'obra Mirifici Logaritmorum Canonis Descriptio (1614).


Napier va fer servir com a referència per al seus càlculs una quantitat basada en el nombre $e$ per raons d'eficàcia. Actualment, entenem com a logaritmes neperians (o naturals) al càlcul amb logaritmes quan aquests es refereixen a la base (logarítmica) igual a $e$ (el nombre transcendent que apareix al treball de Napier).


El 1616, poc després de l'aparició del treball de Napier, aparegué una altra proposta de càlcul logarítmic de la mà de Henry Briggs el qual, basant-se en el treball de John Napier, proposà el nombre $10$ com a base logarítmica, donant a la vegada, consistència al concepte de base logarítmica. Briggs publicà taules logarítmiques que permetien efectuar càlculs astronòmics i de navegació de manera viable i eficaç.


Donat un nombre real positiu $a$ es defineix el seu logaritme en base $b$ (un nombre real positiu) com el nombre real $l$ que compleix la següent propietat:
$\log_{b}(a)=l \Leftrightarrow l^b =a$


Mitjançant aquesta operació (logarítmica) és possible resoldre una equació exponencial del tipus $m^x=n$ ja que, d'acord amb la definició i havent escollit una base logarítmica $b$ apropiada per la quan disposem de taules compilades o bé – millor, per comoditat - d'una calculadora científica (totes porten programades rutines de càlcul apropiades, és a dir, $b=e$ o bé $b=10$), podrem escriure
$x= \dfrac{\log_{b}{n}}{\log_{b}{m}}$
i, per tant, determinar-ne la solució. $\square$

[autoría]

Escalas logarítmicas ( Artículo escrito en catalán )

Exemples d'escales logarítmiques emprades en diverses ciències experimentals

En ciències experimentals, podem fer servir els logaritmes per descriure el comportament d'un sistema, valorant el guany de potència (o d'una altra magnitud física) d'un senyal sortint $M_{s}$, donat el valor del senyal entrant corresponent $M_{e}$ (que es pren com a referència), valorant-lo com el quocient (o raó aritmètica) d'ambdós valors. Pot succeir, però, que al senyal sortint li correspongui una quantitat molt més gran que al senyal entrant o de referència; en aquests casos, en lloc d'emprar una escala lineal, se sol emprar una escala logarítmica (en base $10$, habitualment) per fer-ne la descripció de la resposta o guany: $G=\log{\Big(\dfrac{M_{s}}{M_{e}}\Big)}$. El guany és, per tant, una magnitud adimensional i s'anoma Bel (abreviat, B) a la unitat d'aquesta escala. Així, per exemple, si a un amplificador li entra un senyal de potència igual a $3$ W i en dóna una sortida de $3\cdot 10^{2}$ W, direm que el guany és de 2 B; sovint es fa servir el submútiple decibel (1 Bel = 10 dB), amb la qual cosa direm que el guany és de $20$ dB .


Un exemple remarcable és la mesura del nivell de pressió sonora o nivell sonor (SPL), que es defineix de la forma $L_{p}= 10 \,\log{\big(\dfrac{p}{p_{0}}\big)^2}$ on $p$ és la pressió que provoca l'ona sonara (en el medi en què es propaga) i $p_0$ és la presssió de referència, que en l'aire, és pren com a $20 \, \mu Pa$ i correspon al límit inferior (o llindar) de percepció en l'oïda humana. A una conversa amb veu molt baixa li correspon un nivell sonor de $40$ dB i a la remor de la pluja, $70$ dB i a una botzina de cotxe, per exemple, $100$ dB .


A la Química, un altre exemple d'ús d'escales logarítmiques el tenim en l'expressió de la mesura del grau d'acidesa. Una dissolució és tan més àcida com més gran sigui la concentració de cations $[H^+]$ o bé de cations hidroni $H_{3}O^{+}$, però com que als valors d'aquestes concentracions (en $l \, \text{mol}^{-1}$) els corresponen nombres molt petits
(ordres de magnitud $\sim 10^{-10}$), hom ho descriu mitjançant una escala logarítmica
$pH = -\log_{10}{[H^+]}$, on $pH$ és un nombre natural tal que $1 \le pH \le 14$. Si la dissolució és neutra $pH=7$; si és àcida, $pH < 7$; i si és bàsica, $pH > 7$. També podem donar el grau complementari $pOH$ (concentració d'anions hidròxid $[OH^{-}])$ de la forma $pOH=14-pH$ , atenent que $[H^{+}]\cdot[OH^{-}]=k_{w}$ on $k_w = 10^{-14}$ és la constant d'ionització de l'aigua.


L'escala de Richter per descriure els sismes també és logarítmica. I, en astronomia i astrofísica, també és logarítmica l'escala amb què es mesura la lluminositat aparent d'un astre (astronomia): l'escala de magnituds aparents.
$\square$

[autoría]

Algoritmo para obtener los valores máximo y mínimo de un conjunto de números

program maxmin;
uses crt;

var x,xx: array [1..10] of real;
var max,min:real;
var i:integer;

begin
  clrscr;


  for i:=1 to 10 do
    begin
      write('x[',i,']=');readln(x[i]);
    end;



  max:=x[1];
  min:=x[1];
  for i:=1 to 10 do
    begin
      if x[i]>max then max:=x[i];
      if x[i]<min then min:=x[i];
    end;


  writeln('el valor m…xim ‚s: ',max);
  writeln('el valor m¡nim ‚s: ',min);

  repeat until keypressed;


end.

[autoría]

Cálculos con logaritmos empleando MAXIMA

Calcularem, per exemple, el valor del logaritme de $5$ en base (logarítmica) igual a $2$, és a dir $\log_{2}{5}$

que és igual a

$\dfrac{\log_{e}{5}}{\log_{e}{2}}$

o en notació equivalent

$\dfrac{\ln{5}}{\ln{2}}$

Per tant, a la finestra de comandes de MAXIMA, teclejarem:

(%i1) log(5)/log(2),numer;

i obtindrem la següent resposta de MAXIMA

(%o1) 2.321928094887362

valor aproximat amb 16 x.s.

Pel que fa a la precisió del resultat, si tenim la curiositat de visualitzar un bon nombre de xifres significatives correctes (dues-centes, per exemple) d'aquest resultat que, com a nombre transcendent i, doncs, com a nombre irracional, en té infinites podem teclejar les següents instruccions amb MAXIMA:

(%i2) fpprec:200
          bfloat(log(5)/log(2));
          set_display('ascii);

i obtindrem

(%o2) 2.3219280948873623478703194294893901758648313930245806120547563958159347766086252158501397433593701550996573717102502518268240969842635268882753027729986553938519513526575055686430176091900248916669414b0

on la "b" del final indica que es mostra en notació de coma flotant d'alta precisió, és a dir, el resultat és

2.3219280948873623478703194294893901758648313930245806120547563958159347766086252158501397433593701550996573717102502518268240969842635268882753027729986553938519513526575055686430176091900248916669414 $\cdot 10^0$

o el que és el mateix

2.3219280948873623478703194294893901758648313930245806120547563958159347766086252158501397433593701550996573717102502518268240969842635268882753027729986553938519513526575055686430176091900248916669414

ja que $\cdot 10^0 = 1$

Si volem visualitzar més xifres significatives (per exemple 500), caldrà augmentem la precisió i tornem a repetir les comandes:

(%i3) fpprec:500
          bfloat(log(5)/log(2));
          set_display('ascii);

i podrem donar el resultat aproximat de $\log_{2}{5}$ amb 500 xifres significatives correctes !


(%o3 2.3219280948873623478703194294893901758648313930245806120547563958159347766086252158501397433593701550996573717102502518268240969842635268882753027729986553938519513526575055686430176091900248916669414333740119031241873751097158664675401791896558067358307796884327258832749925224489023835599764173941379280097727566863554779014867450578458847802710422545609722346579569554153701915764117177924716513500239211271473393614407233972115748510070949878916588808313221948067932982323259311950671399507837003

$\square$


[autoría]

Ordenación por intercambio directo ( método de la burbuja )

program ordenacio_per_intercanvi_directe;
uses crt;

{mètode de la bombolla}

var
x:real;
a:array[1..10] of real;
i,j:integer;
n:integer;

begin
clrscr;

{entrada de la seqüència de nombres }
write(' quants elements vols ordenar [1..10] ? ');readln(n);
writeln;
writeln(' ... entral''s un després de l''altre ... ');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;

{ordenació}
for i:=2 to n do
for j:=n downto i do
begin
if a[j-1] > a[j] then
begin
x:=a[j-1];
a[j-1]:=a[j];
a[j]:=x;
end
end;


{presentació de la seqüència ordenada}
writeln(' SEQÜÈNCIA ORDENADA ');
for i:=1 to n do writeln('a[',i,']=',a[i]:4:4);

repeat until keypressed;
end.

[autoría]