a_domo_(in custu file).

home

Capitulu cuintu:

sos cunstructos.

 

par_1,par_2,par_3,par_4,par_5,par_6,


Tiu Lenardu Bigollo Pisanu de Bonacci, Fibonacci po sa beridade, haiat tentu sa sorte de che naschire in su 'e Pisa in su 1180 e de che morrer a inghiriu de sa matessi idda in su 1250. Su babbu suu cumertziaiat in sas Africas de acanta, e Lenardu sende minore haiat tentu sa fortuna de faer istudios mannos de matematicas, imparande tantas cosas de importu de sos matematicos arabos, sos cales in cussos tempos connoschian puru sas matematicas antigas classicas, indianas e tzinesas.
Fibonacci haiat pesadu un'indovintzu curiosu. De custu naschen sas series, in particulare una chi est connota in s'universu mundu cun su numene de s'autore suu. Arresonande de matematicas si tratat de chistiones de importu mannu. Sa serie de Fibonacci tenet po narrer impreos in tecnicas de programatzione. Po custu dda presentamus, in latinu po primu, e a pustis in d'una improbabile trasliteratzione in sardu.  (a_domo).

5.1

Quot paria cuniculorum in uno anno ex uno paris germinentur.
Quidam posuit unum par cuniculorum in quodam loco, qui erat undique pariete circumdatus, ut sciret, quot ex eo paria germinarentur in uno anno; cum natura eorum sit per singulum mensem aliud par germinare; et in secundo mense ab eorum nativitate germinant.
Quia suprascriptum par in primo mense germinat, duplicabis ipsum, erunt paria duo in uno mense. Ex quibus unum, scilicet primum, in secundo mense germinat; et sic sunt in secundo mense paria 3; ex quibus in uno mense duo pregnantur; et geminantur in tercio mense paria 2 cuniculorum; et sic sunt paria 5 in ipso mense; ex quibus in ipso pregnantur paria 3, et sunt in quarto mense paria 8;
ex quibus paria 5 geminant alia paria 5: quibus additis cum parijs 8, faciunt paria 13 in quinto mense; ex quibus paria 5, que geminata fuerunt in ipso mense, non concipiunt in ipso mense, sed alia 8 paria pregnantur; et sic sunt in sexto mense paria 21; cum quibis additis parijs 13, que geminantur in septimo, erunt in ipso paria 34;

cum quibus additis parijs 21, que geminantur in octavo mense, erunt in ipso paria 55; cum quibus additis parijs 34, que geminantur in nono mense, erunt in ipso paria 89; cum quibus additis rursum parijs 55 que germinantur in decimo erunt in ipso paria 144; cum quibus additis rursum parijs 89 que germinantur in undecimo mense, erunt in ipso paria 233.
Cum quibus etiam additis parijs 144, que geminantur in ultimo mense erunt paria 377; et tot paria peperit suprascriptum par in prefato loco in capite unius anni.
Potes enim videre in hac margine, qualiter operati fuimus, scilicet quod iunximus primum numerum cum secundo, videlicet 1 cum 2; et secundum cum tercio; et tercium cum quarto; et quartum cum quinto, et sic deinceps, donec iunximus decimum cum undecimo, videlicet 144 cum 233; et habuimus suprascriptorum cuniculorum summam, videlicet 377; et sic posses facere per ordinem de infinitis numeris mensibus.

1 incipit
2 primus
3 secundus
5 tercius
8 quartus
13 quintus
21 sextus
34 septimus
55 octavus
89 nonus
144 decimus
233 undecimus
377 duodecimus


Canta parigas de cunillos naschin in d'un annu de una paja sola.
Fulanu haiat postu una paja de cunillos in d'unu tzassu, su cales fudi in tot'ue de muros circundadu, po ischire canta parigas nde d'hiat naschire in d'un annu, essende sa natura issoro de nde antzare una paja a onni mese; e de sa naschida issoro ab antzare pustis su segundu mese.
Po cantu istabilidu una paja antzat in su primu mese arreddopiandesi haian a esser dua pariga in d'unu mese. De sas cales una, haiat a esser sa prima, antzat in su segundu mese; e gasi funi 3 pariga in su segundu mese; de sas cales in d'unu mese duas s'improssiman; e antzan in su tertzu mese dua pariga de cunillos: e gasi funi 5 parigas in cussu mese; de sas cales in cussu matessi 3 parigas s'improssiman: e funi in su cuartu mese 8 parigas; de sas cales 5 parigas nde antzan ateras 5: sas cales atzuntas a 8 parigas faen 13 parigas in su cuintu mese;
de sas cales 5 parigas chi funi istadas generadas in cussu mese, no antzan in su matessi mese, ma ateras 8 parigas emo; e gasi funi 21 parigas in su sestu mese; atzuntas a sas cales 13 parigas, ch'hian antzadu in su setimu, diventan in su metessi mese 34 parigas; atzuntas a 21 parigas chi antzan in s'otavu mese diventan in cussu 55 parigas; atzuntas a sas 34 parigas chi hian antzadu in su nonu mese in su matessi che sortin a esser 89;
e torra, a issas atzuntas 55 parigas chi antzan in su deghimu mese diventan in cussu matessi 144; atzuntas a 89 parigas chi funi istadas generadas in su mese deghimuprimu diventan 233; a sas cales, in finis, atzuntas 144 parigas chi enin generadas in s'urtimu mese diventan tzustu 377 parigas; in capu a un annu de s'unica paja in su tzassu inantis mentovadu tantas parigas nd'hat antzadu.
Podes fintzas osservare in custu marghine de comente hamus contadu, est craru chi hamus atzuntu su primu numeru a su segundu, est a narrer 1 cun 2; e su segundu cun su tertzu, e su tertzu cun su cuartu, e su cuartu cun su cuintu e gasi a sighire, fintzas a cando no ch'hamus atzuntu su deghimu cun su deghimuprimu, est a narrer 144 cun 233; incuntzande sa summa de sos cunillos mentovados, naramus 377: e gasi podes faer in ordine a unu numeru infinidu de meses.

1 cumintzat
2 primu
3 segundu
5 tertzu
8 cuartu
13 cuintu
21 sestu
34 setimu
55 otavu
89 nonu
144 deghimu
233 deghimuprimu
377 deghimusegundu

(a_domo).

5.2


Podet capitare sa netzessidade de faer unu contu tantas bortas, sende chi no ischimus cantas cando printzipiamus a contare: chi est a contare dd'ischimus ma fintzas a cantu nono, dipendente custu fattu de sa modifica de talunas cunditziones po efettu de sos computos comente hana a s'isvilupare in sa faina. Su arresonamentu lozicu chi s'hade a deper sighire podet esser custu: in su mentres chi una cunditzione s'averat fae custu computu: aumenta o diminui unu contadore e torra cumintzare. Si narat chi intras a intro de unu ciclu e podet esser contadu gosie: cando unu contadore est prus mannu o prus piticu de unu numeru indicadore fae custu dovere: conta su chi depes contare, aumenta o diminui su contadore de unu tretu delatadu, cunfronta su contadore cun su indicadore e si sa cunditzione posta s'averat torra a cumintzare.



j=1;
    While[j<10,p=k^j;++j];
Clear[j];
           p


  9
k


pot[k_]:=
   Module[{j=1},
          While[j<10,
                     p=k^j;
                           ++j];
                                 p];
pot[3]
19683
Table[pot[h],{h,1,9}]
{1, 512, 19683, 262144, 1953125, 10077696, 40353607,

134217728, 387420489}

Table[n^9,{n,1,9}]
{1, 512, 19683, 262144, 1953125, 10077696, 40353607, 134217728, 387420489}
secpot[h_]:=
     Module[{y=h},
         For[h<10&&y<10,
                            q=h^y,
                                 ++y];
                                      q];
secpot[4]
256
Table[secpot[w],{w,1,10}]
{1, 4, 27, 256, 3125, 46656, 823543, 16777216,

387420489, 10000000000}
Table[n^n,{n,1,10}]
{1, 4, 27, 256, 3125, 46656, 823543, 16777216, 387420489, 10000000000}
secpot[11]
285311670611

(a_domo).

5.3

Sos esempios chi inantis hamus propostu introduen a un'argumentu de importu in sas metodicas de programmatzione: sos ciclos e su cuntrollu de sos datos. Sa esecutzione de unu programma de Mathematica, cherimus narrer de unu programma informaticu iscritu in su limbazu Mathematica, cumportat sa valutatzione de una secuentzia de espressiones. Cando si tratat de programmas semplitzes, si naran secuentziales, sas espressiones chi han a deper esser valutadas han a esser separadas in tra issas de puntos e virgulas e computadas una a pustis s'atera.
De tantu in tantu non mancat chi unu disitzet a computare sas espressiones medas bortas, pesande comente unu ciclu. E tando si imprean talunas funtziones pre-paradas, chi in ateros limbazos si naran paraulas reservadas e in Mathematica funi solu funtziones chi arrecheden sos argumentos issoro e una sintassi dechida e pretzisa.
Do[espressione,{i, imaximu}]
valutat espressione in manera repitidora, cun su contadore i chi variat in su tretu chi movet de 1 fintzas a imaximu cun d'unu passu de 1.
Do[espressione,{i,iminimu,imaximu,brinca}]
valutat espressione cun su contadore i chi variat in su tretu a mover de iminimu a imaximu cun d'unu passu istabilidu, a brincos.
Do[espressione,{n}] valutat espressione enne ortas.



Do[Print[i^3],{i,5}]
1
8
27
64
125

t=x;
Do[t=1/(1+k t),{k,2,6,2}];t

       1
---------------
           6
1 + -----------
                4
      1 + -------
            1 +    2 x
Do[Print[{i,j}],{i,4},{j,i-1}]
{2, 1}
{3, 1}
{3, 2}
{4, 1}
{4, 2}
{4, 3}
t=x;
Do[t=1/(1+t),{4}];t

                 1
-----------------
                 1
    1 + -----------
                 1
      1 + ---------
                 1
         1 + -----
               1 + x


Nest[f,espressione,n]
est una funtzione chi apricat f a espressione n ortas.
FixedPoint[f,espressione]
movet cun espressione e apricat a sa ripitidora f fintzas a cando su risultadu non cambiat prus.


f[x_]:=x^2;
Nest[f,x,3]

   8
x

Nest[Function[t,1/(1-t)],x,3]
           1
-------------
           1
1 - ---------
           1
       1 - -----
           1 - x
g[x_]:=1/(1-x);
Nest[g,x,3]

         1
   -------------
              1
       1 - ---------
                    1
            1 - -----
                 1 - x

ciclodofib[n_Integer?Positive]:=
Module[{fn1=1,fn2=1,k=n},
Do[{fn1,fn2}={fn1+fn2,fn1},{k-1}];fn1];
ciclodofib[6]

13
Table[ciclodofib[j],{j,1,22}]
{1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610,
987, 1597, 2584, 4181, 6765, 10946, 17711, 28657}

N[ciclodofib[50]/ciclodofib[49]]
1.61803
N[GoldenRatio]
1.61803

(a_domo).

5.4

While[test, corpus de una espressione]
valutat su corpus de una espressione a sa ripetidora fintzas a cantu su test propostu torrat beru.


Clear[n];
n=15;
While[(n=Floor[n/2])!=0,Print[n]]

7
3
1


Po si faer una idea de Floor, Ceiling,Round sighide custas esemplificatziones:


{Floor[3.12345],Floor[3.6789]}
{3, 3}
{Ceiling[3.12345],Ceiling[3.6789]}
{4, 4}
{Round[3.12345],Round[3.6789]}
{3, 4}


In sas matematicas est argumentu de importu mannu, a su cales si fun dedicados cun divotzione tantos sapientes, a ischire cun pretzisione cantu alen in valore numericu sas raighinas de una ecuatzione, e masprestu a ischire isorbere una ecuatzione a coefitzientes numericos in d'unu campu. Sas metodicas tzenerales faddin cando su gradu de sa ecuatzione superat su tertzu, e tando sos sapientes han inbentadu metodicas de aprossimatzione: una famada meda est cussa de Newton pesada susu una formula recursora: si sa funtzione de argumentu reale y=f[x] hat una raighina in d'unu tretu, e siat a unu valore acanta de sa raighina non connota e in su tretu pigadu in cunsideru, tando a(n)=a(n-1)-f[a(n-1)]/f'[a(n-1)] est una formula chi cunvertzet a sa raighina chircada. Po render custa formula unu programma de Mathematica sighimus custu arresonamentu: una orta chi hamus definidu sa ecuatzione in forma de funtzione, iscridimus ateruna funtzione, argumentos de sa cales fun s'ecuatzione de isorbere, su valore de incumintzu acanta de sa raighina chi semus chircande de cche ogare a pizu e s'aprossimatzione e pretzisione chi disitzamus: comente e sewmper sa funtzione triballat preguntandedda a numen cun sos argumentos dechidos.



cricaraighinas[funtzione_,incumintzu_,aprossimatzione_]:=
     Module[{a=incumintzu,
      b=funtzione[incumintzu],
      eps=aprossimatzione},
                                 While[
                                      Abs[b]>eps,
                                         a=N[a-b/funtzione'[a]];
                                         b=funtzione[a]];a]


f[x_]:=x^3-2 x^2+x-1;
cricaraighinas[f,1.9,0.001]

1.75519
N[Solve[f[x]==0,x]]
{{x -> 1.75488}, {x -> 0.122561 + 0.744862 I}, {x -> 0.122561 - 0.744862 I}}

(a_domo).

5.5

For[espressione,test,aumentu,corpus de una espressione], valutat espressione fintzas a cantu su test propostu no fartat.


For[i=1,i<5,i++,Print[((x+i)+i)^i]]
2 + x
         2
(4 + x )
         3
(6 + x  )
          4
(8 + x  )

For[k=1;t=x,k^2<10,k++,t=t^2+k;
Print[t]]
       2
1 + x
               2 2
2 + (1 + x )
                      2 2 2
3 + (2 + (1 + x ) )


In Mathematica siat While siat For valutan semper su test de su ciclu a inantis de su corpus de s'espressione. Luego a pustis chi su test fartat de esser veru, While e For acaban. Su corpus de su ciclu est tando computadu solu in situatziones in sas cales su test de su ciclu torrat veru. Po contra:


While[False,Print[y]]


No torrat nudda ca su test propostu fartat luego, e custu torrat de impedimentu a su corpus de s'espressione a podet esser computadu una orta nessi.


cicluforfib[n_Integer?Positive]:=
Module[{k=n,
tp(*termine pretzedente*),
ts(*termine sighidore*),
vt(*variabile temporanea*),
c(*contadore*)},
tp=1;ts=1;
For[c=1,c<k,c++,vt=ts;
ts=vt+tp;
tp=vt];
ts]
cicluforfib[5]

8
Table[cicluforfib[h],{h,1,10}]
{1, 2, 3, 5, 8, 13, 21, 34, 55, 89}
machillotufib:=
          If[#<2,1,#0[#-1]+#0[#-2]]&
               Table[machillotufib[j],{j,1,10}]

{1, 2, 3, 5, 8, 13, 21, 34, 55, 89}

(a_domo).

5.6

Podet capitare in d'unu arresonamentu, finas de pagu importu, de ponner tzertunas cunditziones, mancari gosi: si hapo a benner ricu, e tando mi comporo su caddu. Su cunstructu si... cunditzione... e tando...operatzione, si narat cunditzionale. In logica medas bortas si faeddat masprestu de implicatzione materiale: su sinnificadu est perņ diferente. Tenende contu de su chi semus arresonande nois su cunditzionale funtzionat in custa manera: cando sa cunditzione posta resurtat bera tando faghe carchi cosa, mancari nudda. Su limbazu chi semus impreande, e a bellu a bellu semus mancari imparande a cumprendere, tenet unu cunstructu, chi si narat If...Then...Else, abreviadu in If... Ponimus de cherrer iscrier unu numene, caddu si est beru chi unu numeru est pius mannu de un'ateru, o ainu si custu fattu no est beru.


iscrie[a_,b_]:=
     If[a<b,
            Print[caddu],Print[ainu]]
iscrie[6,8]

caddu
iscrie[4,3]
ainu


Custu programa est forte meda, ca podet essere impreadu po seberare unu numeru in mesu a ateros, cando si verificat una cunditzione.


sebera[a_,b_]:=
     If[a<b,
            Print[a],
                      Print[
"sa coppia de numeros chi has carrigadu non balet,
nde depes carrigare un'ateruna"
]];


sebera[3,4]
3


sebera[4,3]

sa coppia de numeros chi has carrigadu non balet, nde\

depes carrigare un'ateruna

(a_domo).

home