LO SPAZIO COMPLESSO  3D,4D

 

 

 

                                                                      ABSTRACT

 

The basic theory of 3D,4D complex space is show.

There are many news in theoretical physics,one have a new formula for the speed quadrivector.

The partial basic software give good results.

 

 

 

 

 

                         2000 MSC : 30A99,58J05

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.GLI   SPAZI  COMPLESSI

 

In questo paragrafo dopo aver illustrato la metodologia di verifica di uno spazio complesso, generato da un dato prodotto di due numeri, si passa alla rassegna di spazi complessi 2D,  3D  e  4D. Si calcola poi il logaritmo naturale 3D  di un numero complesso per determinare il prodotto versore   g   uguale al prodotto dei due versori complessi. Infine si discute sull’equazione di Laplace.

 

1.1  Verifica di un prodotto

Nello studio degli spazi complessi per effettuare la divisione di 2 numeri   z1/z2 si ricorre all’artificio di moltiplicare numeratore e denominatore per un terzo numero z : z1 z / z2 z , in modo da avere che   z2 z  sia un numero reale, cosa che ci rende possibile la divisione. Quindi per poter verificare un prodotto si può ricorrere alla divisione ed è quello che si è fatto in un primo tempo verificando la tangente, calcolata come seno diviso coseno, con l’arcotangente, naturalmente dopo aver verificato seno con arcoseno  e coseno con arcocoseno. L’autore ha fatto ciò per una decina di campi 3D ed un paio 4D, riconosciuto l’onerosità di ciò  e visti i  risultati positivi, ha fatto altre verifiche solo con la messa appunto di seno e arcoseno, infine ha rinunciato pure a ciò per l’alto numero di spazi che via via andava a scoprire.

Non si è operato direttamente sul controllo moltiplicazione divisione, che involve due argomenti  z1 z2, in quanto la moltiplicazione a destra  z1 z2 è diversa da quella a sinistra z2z1 (per n>2), mentre la funzione tangente involve un solo argomento e quindi senza possibilità di equivoci.

 

1.2 Il Numero Complesso

Un numero complesso z nello spazio n-dimensionale è caratterizzato dalla somma di n prodotti di un versore per la componente omologa del numero stesso. Se zi è la componente i-esima  e pi il versore i-esimo ( con i che varia da 1 a n ), in formula si avrà

 

        z  = p1 z +  p2 z +  ... +  pn zn .

 

Il versore generico  pi può  assumere i   2 n  valori   ±1,  ±Ö-1,  …  ,  ±2^((n-1)Ö-1 , dando luogo a ( 2 n )n rappresentazioni.

I versori sono ortogonali ed in uno spazio a 3 dimensioni possiamo avere una rappresentazione di una terna trirettangola.           

Il versore generico pi può essere assimilato ad una operazione geometrica che ruota di 90° l’asse reale della componente zi per  pi ¹±1 e di  0°,180° per pi = ±1.

I versori prodotti  pi2  e pipj  sono una doppia operazione di rotazione, possono assumere tutti i valori di pi, inoltre può essere  pipj  = pjpi  o  pipj = - pjpi . pippuò assumere l’ulteriore valore  g , che determineremo oltre.

I prodotti, e quindi gli spazi possibili, sono (2n)2n.

Per n = 2 , con pi uguale   a ±1  o a  ±Ö-1 si hanno 16 rappresentazioni :

 

       p1 z + p2z2

 

Circa il prodotto sarà, con   16 x 16   prodotti possibili

 

     p12  z1 +  p22 z22  +  p1 p2  z1 z2  + p2 pz2z1.

 

 

 

Per n=3 si avranno 63  rappresentazioni  e 66 prodotti. Per n = 4 le rappresentazioni saranno 84 e i prodotti 88.

Da notare che tali prodotti comprendono  _i prodotti dell’aritmetica di binomi per n=2, di trinomi per n=3 etc. _il prodotto del campo complesso usato normalmente _il prodotto tridimensionale della fisica classica.

Con questi prodotti è possibile il calcolo delle funzioni elementari espresse in termini di serie di potenze.

 

1.3 Calcolo di g

Oltre alla rappresentazione cartesiana, già vista, di un numero complesso è possibile la sua rappresentazione geografica tridimensionale per n=3 (quadridimensionale per n=4) data dalle formule :

 

     z1  =  ro   cos t1

 

     z2  =  ro   sin t1  cos t2

 

     z3   =  ro   sin t1  sin t2    ( cos t3 )

 

   ( z4  =  ro  sin t1  sin t2  sin t3  )

 

con le formule inverse

 

  ro =  Ö (z12  +  z22  + z32 )                  (  ro  =  Ö( z12  +  z22  + z32  + z42  )    )

 

 tg t2  =  z3 /  z2                                                       (  tg t3 = z4  /  z3                                  )

 

 tg t1  = Ö( z22  +  z32) /  z1                              (  tg t2  = Ö ( z42  +  z32) /  z2                )                         

 

                                                                                            (  tg t1  = Ö ( z42  +  z3+  z22) /  z1     )                         

 

Se ne può avere anche una rappresentazione esponenziale calcolando il numero complesso  z

 ( qualunque sia il suo ordine) come l’esponenziale del logaritmo naturale di z stesso; dove il logaritmo è calcolato come l’integrale definito tra  1  e  z della funzione  1 /  z. In formule  (indicando con zc il numero complesso coniugato di z tale che z zc = ro2 e cioè zc = z1 – i z2 – j z3 , dove i e j sono i versori complessi a quadrato uguale a  - 1)

 

 æz              æz                           æz

 ç dz / z =   ç ( zc / ro2 ) dz  =  ç ( 1 / ro2 ) ro (cos t1 – i sin t1 cos t2  - j sin t1 sin t2 )  d ( ro (cos t1 +

ø1              ø1                          ø1

                                                          æz

 + i sin tcos t2  + j sin t1 sin t2 )) =   ç ( 1 / ro ) dro + ( cos t1 – i sin t1 cos t2 – j sin t1  sin t2 ) d ( cost1

                                                         ø1   

                                                                        æz

+ i sin t1  cos t2  +  j sin t1 sin t2 )  =  ln  ro +  ç d ( ( cos 2 t1 ) / 2 ) + i sin2 t1 cos t dt+ j sin2 t1 sin t2

                                                                       ø 1

 

dt1  + i cos t1 (sin t1  dcos t2  + cos t2 dsin t1 )  + d ( ( sin2 t1 cos2 t2 ) / 2 )  - ji sin t1 sin t2

 

 

( dsin t1  cos t2  +  sin t1  dcos t2 )  + j cos t1  (  dsin t1  sin t2  +  sin t1  dsin t)  -  ij  sin t1 cos t

 

(dsin t1 sin t2  + sin t1  dsin t2  ) +  d ( ( sin2 t1  sin2 t2  ) / 2 ) =

 

=  ln ro + i  t1  cos t2   +  j  t1  sin t2  .

 

[ Nello sviluppare i calcoli si è supposto     ij  =  -- ji   inoltre tutti i differenziali  in  t2  sono stati trascurati in quanto il punto  1  e il punto  z  giacciono sullo stesso piano  t2 = costante. ]

Facendo l’esponenziale di tale formula si ha

 

     z  =  ro  e i t1 cos t2  +  j  t1  sin t2                                                                                 (  *  )

 

che può essere considerata un prolungamento della stessa formula bidimensionale, alla quale si riduce ponendo t2 =  0. Inoltre può facilmente essere estesa al caso quadridimensionale

 

     z  =  ro  e i t1 cos t2  +  j  t1  sin t2  cos t3  + k  t1 sin t2  sin t3

 

 e di qui ad uno spazio n-dimensionale con qualsivoglia n.

Il prodotto  z  di due numeri z1 e z2  in forma esponenziale sarà ( con ovvio significato dei simboli)

 

  z  =  ro  e i t1 cos t2  + j t1  sin t2  =  z1 z2  = ro1  ro2  ei ( t11  cos t12 + t21  cos t22  )  +  j  ( t11  sin t12  + t21  sin t22  )

 

sostituendo i valori dei versori  i  =  ( 1, p / 2, 0 )  e  j  =  (1, p / 2, p / 2 )   ed uguagliando si ha

 

  t1  cos t2  =  t11   cos t12  +  t21  cos t22  =  p / 2

 

  t1  sin t2  =  t11   sin t12  +  t21  sin t22  =  p / 2

 

da cui

 

  t2  =  arctg 1 =  p / 4           t1  =  p / Ö 2

 

e di qui infine il valore di g,  prodotto dei due versori immaginari :

 

  g  =  cos ( p / Ö 2 )  +  i  sin ( p / Ö 2 )  cos ( p / 4 )  +  j  sin ( p /Ö 2 )  cos ( p / 4 )

 

 

1.4 L’equazione di Laplace e gli spazi complessi

 

Finora si è usato il campo complesso bidimensionale, con la rappresentazione del numero

 z  = z+  i  z2  con  i  =  Ö -1, per problemi  retti  dall’equazione di Laplace,  per una generica funzione  f  ,    fz1z1  +  fz2z2  =  0,  che esso soddisfa.

Consideriamo la rappresentazione generica di un punto bidimensionale   z  =  q1 z1  +  q2 z con  q1  e  q2   che possono assumere i valori   ± 1  e  ± Ö -1  che da luogo a  16 rappresentazioni.

Sia   f ( z) = p1 f1  +  p2 f con f1  e f2  funzioni reali di due variabili reali  e  con  p1  e p2  versori che possono assumere gli stessi valori di  q1 e  q2.

 

 

 

 

 

Le derivate  di  f ( z ) per i percorsi  q1z  e  q2zsaranno

 

  (   p1  /  q1 )  ( f1 / z1 )  +   ( p2  / q ) ( f2 / z1 )

 

  (  p1 / q2  )  ( f1 / z2 )  +   ( p2  / q ) ( f2 / z2 )

 

e per definizione di derivata tali derivate devono essere uguali.

Per   p1 / q1  = 1 ,  p2 / q2  = 1,  p2 / q1  =  i   e  p1 / q2  =  -i  la funzione  f  soddisfa  l’equazione di Laplace, in quanto è

 

   f1z1   = f2z2                  f2z1  =  -f1z2

 

  f1z1z1  = f2z2z1  =  -  f1z“z2

 

   f2z1z1  =  - f1z2z1  =  - f2z2z2  .

 

Uno studio caso per caso ci porta a considerare  44 problemi potendo  il rapporto  pi  / qj  assumere 4  valori. Se tutti i versori e tutti i loro rapporti assumono il valore  1  si ha il caso dello studio di una funzione reale di due variabili reali.

Nello spazio  3D,  rappresentato  come  z  =  z1  +  i  z2  +  j  z, si dimostra nel paragrafo successivo  che  è soddisfatta l’equazione di Laplace  per  ij = ± 1.

Nel  campo  4D ,  rappresentato  come  z = z1 + i  z2  +  j z3  +  k  z4,  se il prodotto tra i versori  i, j e k, soddisfano l’usuale prodotto  vettoriale della fisica  è  verificata l’equazione di Laplace.

 

 

                                                                                

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X.Il teorema di Cauchy

 

   In questo .paragrafo si dimostra che è DD f = 0, con DD operatore di Laplace e f una data funzione analitica, per lo spazio complesso tridimensionale, nel caso ij=±1 e per quello quadridimensionale, con l’usuale prodotto della fisica classica tra i versori complessi. Mentre per lo spazio quadridimensionale, avendo un numero di termini pari, che si annullano a due a due, risulta tutto semplice, per lo spazio tridimensionale si ricorre ad un artificio, che porti ad avere un numero pari di termini e ciò è dato dal prodotto di f per il prodotto unitario di due termini complessi coniugati: a ac :in formule

 

          DD f = DD (1 f ) = DD (a ac f) = a DD ( ac f) = a DD f '

 

per cui dimostrando che DD f ' =0 lo sarà anche DD f = 0.

   Quindi si può affermare, riferendosi ad uno spazio n-dimensionale qualunque,che è necessario avere nella formula   DD f = 0 un numero pari di termini che si elideranno a due a due: per n pari, chiaramente, mi trovo nelle condizioni richieste ma per n dispari devo ricorrere ad una moltiplicazione per avere un numero di termini pari.

  Si prosegue con  la ricerca delle condizioni per cui è valido il  teorema di Cauchy.

 

 

X.1 Relazioni tra gli inversi per n = 3.

    Dimostriamo che per il caso tridimensionale è

 

      i = -1 / i ;     j = - 1 / j;      i j = 1 / (i j) ;   i / j = j / i ;

 

(la prima relazione è sempre verificata per definizione);

sia per j2 = -1 :

 

        j = - 1 / j ;      i j = (- 1 / i ) ( - 1 / j ) = 1 / ( i j ) ;    i / j = - j / ( - i ) = j / i   (ij=±1) ;

 

sia per j2 = i :

 

  j = j^3 = i j = - j / i  = - 1 / j

 

- essendo identiche le due relazioni restanti-.

   In ambedue i casi è verificata la relazione

 

             1 /( i j) = - i / j = - j / i .

 

 

 

 

 

 

 

 

X.2 Teorema fondamentale per n = 3.

    Se f è una funzione analitica allora è DD f = 0 e DD fi =0 ( con DD operatore di Laplace ) , nella rappresentazione generalizzata.

   Naturalmente risulta:

 

       z = z1 + i z2 + j z3 + i j z4;  

 

      f(z) = f1(z) + i  f2(z) + j f3(z) + i j f4(z) ;

 

      Dz = Dz1 + i Dz2 + j Dz3 + i j Dz4 ;

 

con z variabile complessa, f funzione complessa e Dz differenziale complesso , tridimensionali.

    Per l'analiticità di f si ha che esiste ed è continua la sua derivata; cioè

 

                                          f(z+Dz) - f(z)

                  f'(z) =   lim       -------------- =

                           Dz -- 0          Dz

 

     

                                    f1(z+Dz) - f1(z)            f2(z+Dz) - f2(z)

             =     lim           ----------------     +  i  -----------------  +

                Dz1 -- 0              Dz                                Dz

                Dz2 -- 0

                Dz3 -- 0

                Dz4 -- 0

                                      f3(z+Dz) - f3(z)            f4(z+Dz) - f4(z)

                              + j   -----------------  + i j  -----------------   .

                                              Dz                               Dz

 

   Facendo tendere al limite separatamente ognuna delle quattro componenti del differenziale Dz e calcolando le rispettive derivate; si ha:

 

 

 

     per Dz = Dz1        f ' = f1,z1 + i f2,z1 + j f3,z1 + i j f4,z1

 

     per Dz = i Dz2      f ' = - i f1,z2 + f2,z2 + (j/i) f3,z2 + j f4,z2

 

     per Dz = j Dz3      f ' = - j f1,z3 + (i/j) f2,z3 + f3,z3 + i f4,z3

 

     per Dz =  i j Dz4   f ' =  ( 1/i j) f1,z4 +- j f2,z4 - i f3,z4 + f4,z4 .

 

   Uguagliando le derivate si hanno le seguenti relazioni sui singoli termini

 

                                 f1,z1 = f2,z2 = f3,z3 = f4,z4

 

                                 f2,z1 = - f1,z2 = f4,z3 = -f3,z4

 

                                 f3,z1 = - f1,z3 = f4,z2 = - f2,z4

 

                                 f4,z1 = f1,z4 = - f2,z3 = - f3,z2

 

 

    Poichè è

 

                                f1,z1z1 = f2,z2z1               f1,z2z2 = -f2,z1z2

 

                                f1,z3z3 = -f3,z1z3 = -f4,z1z4      f1,z4z4 = f4,z1,z4

 

sarà

                                DD f1 = f1,z1z1 + f1,z2z2 + f1,z3z3 + f1,z4z4 = 0.

 

   Essendo

 

                               f2,z1z1 = -f1,z2z1 = -f2,z2z2      f2,z3z3 = f3,z2z3 = f2,z2z2

                          

                               f2,z4z4 = -f4,z2z4 = -f2,z2z2

 

è                             DD f2 = 0.

 

    Visto che

                              f3,z1z1 = -f1,z3z1 = -f3,z3z3      f3,z2z2 = f2,z3z2 =f3,z3z3

 

                              f3,z4z4 = -f4,z3z4 = -f3,z3z3

 

si ha                      DD f3 = 0.

 

   Infine dalle relazioni

 

                             f4,z1z1 = f1,z4z1 = f4,z4z4     f4,z2z2 = - f2,z4z2 = -f4,z4z4

 

                             f4,z3z3 = -f3,z4z3 = -f4,z4z4

 

segue che è    

                             DD f4 =0.

 Quindi  è

 

                            DD f = 0

 

come volevasi dimostrare.

 

 

X.3 Relazioni tra i versori per n = 4.

   Sussistono le seguenti relazioni tra i versori dello spazio complesso per n = 4:

 

       i . j = k              i = k / j

 

       j . k = i              j = i / k

 

       k . i = j              k = j / i

 

       j . i = - k           - j = k / i

 

       k . j = -i            - k = i / j

 

       i . k = - j           - i = j / k 

 

 

X.4 Teorema fondamentale per n = 4.

     Come nel caso per n = 3 facciamo tendere al limite ognuna delle quattro componenti della derivata e procediamo analogamente.

    Le quattro derivate sono:

 

        f1,z1 + i f2,z1 + j f3,z1 + k f4,z1

 

        - i f2,z1 + f2,z2 + (j / i ) f3,z2 + ( k / i ) f4,z2

 

       - j f1,z3 + (i / j) f2,z3 + f3,z3 + (k / j ) f4,z3

 

       - k f1,z4 + ( i / k ) f2,z4 + ( j /k ) f3,z4 + f4, z4  .

 

Facendo le opportune sostituzioni si ottiene

 

       f1,z1 + i f2,z1 + j f3,z1 + k f4,z1

 

       - i f1,z2 + f2,z2 + k f3,z2 - j f4,z2

 

      - j f1,z3 - k f2,z3 + f3,z3 + i f4,z3

 

      - k f1,z4 + j f2,z4 - i f3,z4 + f4,z4 .

 

Uguagliando termine a termine si hanno le seguenti relazioni

 

      f1,z1 = f2,z2 = f3,z3 = f4,z4

 

      f2,z1 = - f1,z2 = f4,z3 = - f3,z4

 

     f3,z1 = - f1,z3 = - f4,z2 = f2,z4

 

     f4,z1 = - f1,z4 = f3,z2 = - f2,z3  .

 

Dalle uguaglianze

 

     ___f1,z2z2 = - f2,z1z2 = - f1,z1z1        f1,z4z4 = f2,z3z4 = - f1,z3z3

 

     ___f2,z1z1 = -f1,z2z1 = - f2,z2z2         f2,z3z3 = f1,z4z3 = - f2,z4z4

  

     ___f3,z1z1 = - f1,z3z1 = - f3,z3z3        f3,z2z2 = -f1,z4,z2 = -f3,z4z4

 

     ___f4,z1z1 = - f1,z4z1 = - f4,z4z4        f4,z2z2 = f1,z3z2 = - f4,z3z3

 

segue che è

 

        DD fi =  fi,z1z1 +  fi,z2z2 + fi,z3z3 + fi,z4z4 = 0   con i = 1,2,3,4

 

e quindi

 

        DD f = DD f1 + DD f2 + DD f3 + DD f4 = 0  .

 

 

X.5 Calcolo del lavoro elementare.

    Al fine della dimostrazione del teorema di Cauchy abbiamo bisogno di definire il lavoro elementare di data funzione f(z) per lo spostamento dz per l'analisi 3D e 4D.

Tale prodotto sarà in 3D:

 

     f(z) dz = (f1 + i f2 + j f3 ) (dx1 + i dx2 + j dx3)

 

e in 4D

 

   f(z) dz = ( f1 + i f2 + j f3 + k f4) (dx1 + i dx2 +j dx3 + k dx4).

 

     Si riportano, per comodità, in una rappresentazione per righe e colonne i prodotti dei versori (che moltiplicati per le rispettive parti scalari andranno sommati):

 

     1    i    j                  1     i     j      k

     i   -1   ij                  i    -1   ij     ik

     j   ji   j2                   j     ij   j2     jk

                                    k    ik   jk   k2 .

 

Poichè il prodotto è scalare si avrà che i prodotti commutano, per esempio ij=ji,inoltre sostituendo ai quadrati dei versori i  possibili fattori si avranno rappresentazioni e modelli diversi.

    Per la rappresentazione quadridimensionale nel modello in cui tutti i quadrati dei versori sono uguali a  -1 si ha

 

    dL = f1 dx1 - f2 dx2 -f3 dx3 -f4 dx4 +  i (f1 dx2 + f2 dx1) + j (f1 dx3 + f3 dx1) + k (f1 dx4 +f4 dx1)

            + ij (f2 dx3 + f3 dx2) +ik (f2 dx4 +f4 dx2) + jk (f3 dx4 + f4 dx3) .

 

X.6   Il teorema di Cauchy e le sue implicazioni.

    Se è valido il teorema di Cauchy per lo spazio complesso n-dimensionale allora si possono fare due cose fondamentali:1.calcolare l'integrale definito e curvilineo solo in funzione dei punti estremi di detti integrali e 2.sviluppare ogni funzione complessa in serie di Taylor (fatto di notevole importanza perchè conosciamo bene le serie di potenze e le loro proprietà).

    L'integrale curvilineo di una data funzione f(z) lungo una data curva G è

 

            æ

           ÷ f(z) dz

           øG

 

ma f(z) dz si calcola come lavoro elementare, e ripetiamo a seconda delle scelte dei prodotti dei versori si hanno più modelli.Per il teorema di Cauchy, che andiamo a dimostrare, per qualunque modello n-dimensionale nello spazio complesso è

 

           æ

          ÷   f(z) dz = 0

          øG

 

con G curva chiusa.

    Per tutti i modelli si ha che per i termini simmetrici di posto m,l ed l,m è (applicando il teorema  della divergenza)

 

    

 

          æ

         ÷  (fm dxl +fl dxm) = 0

         øG

 

in quanto è l'integrale di volume

 

          æ

         ÷  (d fm / dxm - d fl /dxl ) dV = 0

         ø

 

poichè l'espressione tra parentesi è uguale a zero come abbiamo visto calcolando il teorema fondamentale.

    L'integrale della somma dei termini sulla diagonale, che possiamo scrivere (intendendo po = 1 )

 

           æ

          ÷  S(pi-12 fi dxi)

          øG

 

sarà uguale a zero, per G curva chiusa, se imponiamo che

 

            f1 dx1 = f2  dx2  + f3 dx3.

 

X.7   Il teorema di Cauchy in 4D

   Andando a dimostrare il teorema di Cauchy,nella rappresentazione in cui tutti i quadrati dei versori sono posti uguali a -1, si ha

 

      æ

     ÷  f1 dx1 - f2 dx2 - f3 dx3 - f4 dx4  = 0

     øG

 

che con le posizioni

 

     f1 = x1 = c t           xi =  fi = xi-1  per  i= 2,3,4

 

si trasforma in

 

     æ

    ÷ c2 dt2 - dx12 - dx22 - dx32 = 0

    øG

 

che è verificata puntualmente dalla velocità della luce, c.

   Assumendo la stessa relazione valida per tutte le altre funzioni si ha

 

    f1 dx1 - f2 dx2 - f3 dx3 - f4 dx4 = 0

 

e cioè

 

    f1 = f2 dx2/dx1 + f3 dx3/dx1 + f4 dx4/dx1                                               (  p+ )

Fisica nello spazio quadridimensionale complesso

1_L’equazione di Laplace nello spazio quadridimensionale complesso è soddisfatta dal potenziale gravitazionale con la derivata parziale seconda rispetto al tempo ottenuta dal teorema di Cauchy, è soddisfatta, pure, dai campi elettrici e magnetici normalizzando la velocità della luce a quadrato a -hm per le onde elettromagnetiche nei dielettrici omogenei,isotropi e neutri.

2_Il quadrivettore complesso

c dt        i dx      j dy      k  dz  

moltiplicato per il suo trasposto, con la regpla matriciale riga per colonna, dà

c2 dt2      -dx2       -dy2    -dz2 risultato su cui si basa tutta la teoria dei campi.

 

3_Il vettore dello spazio tempo che riassume la potenza specifica di corrente e le forze ponderomotrici per unità di volume : Ka, rispetta la formula p+.

 

4_E’ possibile un nuovo quadrivettore nella teoria relativistica di Einstein

     i qx                j qy              k qz                q2

________    _________  __________   __________

q (1-q2)0.5     q (1-q2)0.5      q (1-q2)0.5       q (1-q2)0.5    

 

 

Fluidodinamica incompressibile

_Tutte le funzioni complesse 3D soddisfano l’equazione di Laplace e quindi permettono il calcolo di un campo di moto incompressibile,inviscido e a potenziale. La migliore di tutte è la funzione logaritmica,che rappresentando il potenziale di velocità,ci dà come velocità la funzione 1/x che soddisfa la condizione all’infinito di velocità nulla.

 

Calcolo delle reti elettriche

 Nel  calcolo dell’impedenza Z di un circuito elettrico si può separare i tre effetti: resistivo Z1 = R,

capacitivo Z2 = 1 / (ω C ) ed induttivo Z3 = ωL e rappresentare l’impedenza totale Z come un punto dello spazio complesso tridimensionale:

 

                  Z = Z1 + i Z2 + j Z3

Nel calcolo dei circuiti serie i calcoli restano immutati. Nel calcolo dei circuiti parallelo il modulo dell’impedenza   R2 + (ω C )-2 +  ( ω L )2 risulta diverso da quello calcolato finora per il fattore

                        -2 L / C    .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UN’APPLICAZIONE DELLO SPAZIO COMPLESSO 4D:   l’altra teoria

 

I.1 La formula p+

   La formula p+,ricavata dal teorema di Cauchy per lo spazio complesso, per lo spazio complesso quadridimensionale da la componente temporale in funzione delle tre componenti spaziali.

   Siano indicate con x1,x2  e x3 le tre componenti spaziali di un dato punto P nello spazio 3D ordinario e con t la variabile tempo.

   Tra le componenti di una funzione complessa f = f1 + i f2 + j f3 + f4 sussiste la relazione p+

 

                               f1 = f2 x2/t + f3 x2/t + f3 x3/t                          (p+)

 

I.2 Il vettore posizione in 4D

    Siano i,j,k i tre versori complessi che con l'asse reale formano uno spazio quadridimensionale, con quadrato uguale a -1.

   Partendo dal vettore posizione di un punto P nello spazio 3D

 

                              P = i x1 +j x2 + k x3

 

si calcoli  la quarta componente (quella reale) con la formula p+:

   

                             x0 = x1 x1/t + x2 x2/t + x3 x3/t ,

 

(da cui ricavo che le xi devono essere normalizzata rispetto alla velocità)

 

considerando i differenziali si avra'

 

                             x0 = x1 x1/t + x2 x2/t + x3 x3/t ,

 

ove indicando con vi = xi/t la componente della velocita' lungo l'asse i, con la posizione

 

                           xi xi/t = vi2t

 

si arriva alla formula

 

                          x0 = ( v12 + v22 + v32 ) t = v2 t ,

 

con v modulo della velocita' e con il termine v2 t che presenta le dimensioni di un'energia per un tempo.

   Adimensionalizzando rispetto alla velocita' della luce c e ponendo

 

     qi = vi / c         q = v / c        e    xi = xi / c

 

si ha infine il vettore quadridimensionale differenziale     s

 

      i x1 + j x2 + k x3 + q2 t.

 

I.3 Tempo proprio

  Dato un punto P(x1,x2,x3) in movimento si considerino due sistemi di riferimento: uno riferito alla nostra posizione ed un altro riferito al punto stesso.

  Siano indicati i due riferimenti con K=K(x1,x2,x3,t) e K'(x1',x2',x3',t').

  Calcolando i quadrati del vettore posizione  (con la regola del prodotto tensoriale)

 

           s = i x1 + j x2 + k x3 + q2 t

 

 

per i due sistemi,si avrà per il primo (fermo rispetto a noi)

 

       s2 = - x12 - x22 -x32 + q4 t2

 

per il secondo (fermo rispetto al punto)

      s'2 = q'4 t'2.

Uguagliando questi quadrati e imponendone l'invarianza si ha

        s2 =  - q2 t2 + q4t2 = s'2 = q'4 t'2

uguagliando    s2/t'2 = -1                                            ( * )

(cosa che verificheremo, e che significa che normalizzo la velocità a quadrato

  uguale a - 1)                                 

si ottiene

           s2 = -t'2 = (q4 - q2) t2

 

e quindi

 

           t'2 = (q2 - q4) t2

 

cioè

           t' = q Ö(1-q2t.

 

 

I.4 Il quadrivettore velocità

La velocità sarà

         s                 i qx                  j qy                    k qz                   q

       ------  =   ---------------  +  ---------------  +  ---------------  +   --------------

        t'            q Ö(1 - q2)         q Ö(1 - q2)          q Ö(1 - q2)             Ö(1 - q2)

 

e come si è imposto in I.3.*   si ha  s2/t'2 = -1

 

I.5 Trasformazione di coordinate

   Affrontiamo il problema della trasformazione delle coordinate passando da un sistema K(x1,x2,x3,q2 t )ad un altro sistema K'(x1',x2',x3',q'2 t'2).

   Imponendo l'eguaglianza dei moduli del vettore spostamento nei due sistemi si perviene alla formula

 

           s2 = - x2 + q4 t2 = -x'2 + q'4 t'2 .

 

 

   Verifichiamo che le formule di trasformazione sono

x = x' ch j + q'2 t' sh j             q2 t  = x' shj + q'2 t' ch j                          (*)

 

s2 =- x'2 ch2j - q'4 t'2 sh2j + x' sh2j + q'4 t'2 ch2j=

 

     = x'2 (sh2j - ch2j ) + q'4 t'2 (ch2j - sh2j) = - x'2 + q'4 t'2              (c.v.d.)

 

in quanto è

 

   shj =  thj  / Ö(1 - th2j )     e     chj = 1 / Ö (1 - th2j)        con    thj = x / ( q2 t )

 

calcolata considerando il moto di K' nell'origine di K cioè con  x' = 0 ,dimodocchè con semplici passaggi

 

   x = q'2 t' sh j            q2 t = q'2 t' ch j .

 

   Sostituendo nell'espressione  (*) i valori ricavati si ha

 

    x  = ( x' + q'2 t' x / (q2 t )) / ( 1 - ( x / ( q2 t ))2)

 

   q2 t = ( x' x / (q2 t) + q'2 t' ) / ( 1 - ( x / ( q2 t ))2)  .

 

  Per controllare che tali formule ci diano le formule galileiane consideriamo lo sviluppo in serie [  ] di 1 / Ö ( 1 -  ( x / ( q2 t )2) e abbiamo che è uguale a

 

   1 + 0.5 ( x / (q2 t))2 + ( 3/8) ( x / (q2 t ))4 + ...

 

che vediamo che per x®0 (cioè in prossimità dell'origine delle coordinate) tende all'unità, considerando, ancora, q'2 dello stesso ordine di q2 abbiamo finalmente

 

   x = x' + v t     e     t=t'.

  

   Ripetendo le ipotesi fatte abbiamo considerato una porzione di spazio prossima all'origine delle coordinate (che sono adimensionalizzate rispetto alla velocità della luce) e che i quadrati delle velocità non siano molto differenti (velocità anch'esse adimensionalizzate rispetto alla velocità della luce).

 

 

I.6.Somma di velocita'

   Dalle equazioni precedenti passando a differenziare si ha da

 

 

          x'  + (q' / q)2 v t'                           x x' / q2 t + q'2 t'

  x = ------------------------                 t = ---------------------------

             Ö (1 - ( v / q2 )2                                              q2  Ö (1 - ( v / q2 )2

 

 

 x      q2 ( x' + ( q' /q )2 v t')

---- = ------------------------------

t        x' x / q2 t + q'2 t'

 

 

che per x®0  e per  q'2 » q2  da'     x/t = v' + v    (espressione galileiana) .

 

   Per q' = k q      q = v / c = v     x' = q' c t'  = k q t'      x =  q c t = q t      si ha

 

 

       x      q2 ( k q + k2 q )

      ---- = --------------------

      t           k + k2 q2                   .

 

Imponendo a q di appartenere all'intervallo [-1,1] si puo' verificare che  ê¶x/t ê£ 1.

 

  Cio' fisicamente significa, cosa che si sa gia', che non si puo' mai superare la velocita' della luce (che e' stata assunta unitaria).

 

 

 

 

                                               ULTERIORI  CONSIDERAZIONI

 

1.Sulla validità dell’altra teoria per uno spazio non laplaciano

Alla base dell’altra teoria c’è la validità del teorema di Cauchy sull’integrabilità delle funzioni e il fatto di poter normalizzare la velocità a quadrato uguale a -1, pertanto non è necessario la risoluzione dell’equazione di Laplace, come potrebbe sembrare a prima vista.

Uno spazio che soddisfa questi requisiti è rappresentato come z = z1 + i z2 + j z3 + k z4, con le zi componenti di z e i j k versori complessi tali che i = 1, j = 1, k = 1, i2 = -1, j2 = -1, k2 = -1 ed i prodotti seguano la regola della fisica classica per cui i j = k,  j k = i  etc. Si noti  che i quadrati dei versori non hanno nessuna relazione con i valori dei versori e sono considerati come operatori indipendenti svincolati da qualunque relazione tra di loro.

Tale spazio, come si può dimostrare con un calcolo un poco fastidioso, a_ non verifica l’equazione di Laplace né tanto meno qualche altra equazione, b_ soddisfa il teorema di Cauchy e c_ permette di normalizzare il quadrato della luce a -1.

 

2.Sulla condizione sufficiente e necessaria per la convergenza delle serie delle funzioni sviluppabili in serie complesse di ordine n.

Fissiamo l’attenzione sulla funzione seno ( la trattazione è uguale per le altre funzioni sviluppabili in serie ).

Sia n l’ordine del numero complesso z = Σ1n pi zi : con pi versori e zi  componenti di z. Dimostriamo che sen z , qualunque siano i pi , converge se converge sen( Σ1n zi ) con la funzione seno reale in quest’ultima formula.

Ora lo sviluppo di una serie di una data funzione è basato sul prodotto dell’argomento ed è una somma di prodotti che convergono  ( Σ1n zi ) n; considerare il prodotto di zn = ( Σ1n pi zi )n non è che un altro modo di riarrangiare le somme dei prodotti che convergono, pertanto l’asserto nella sua condizione di sufficienza e di necessarietà.

Consideriamo n=3 ed il prodotto z2 avremo se z = p1 z1 + p2 z2 + p3 z3

 

(*)    z2 = z12 + z22 + z32 + 2 z1 z2 + 2 z1 z3 + 2 z z3

 

(**)         z2  = p12 z12  +  p22 z22 + p32 z32 + ( p1 p2  + p2 p1 ) z1 z2 + ( p1 p3 + p3 p1 ) z1 z3 +

                       ( p2 p3 + p3 p2 ) z2 z3

 

ora dimostriamo che dalla assoluta convergenza della ( * )  segue la ( ** ).

Se la (*) converge convergeranno i singoli termini e quindi la (**).E’ come si estraesse dalla serie (*) delle serie estratte e riarrangiate in (**).

Fin qui si è parlato di prodotti anziché di potenze perché nella pratica di calcolo le potenze sono calcolate come prodotti successivi.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!programma scritto in fortran f_world

!modulo delle operazioni e funzioni elementari dello spazio complesso 3D

   module cmpl3dm

    implicit none

    public ::tracargeoat3,trageocar3,per3,div3,pot3,ln3,exp3,sin3,asin3,&

             pers3,divs3,cos3,tan3,ckasin3,atan3,acos3,exps3,sqrt3

    integer,parameter,public::kd=selected_real_kind(15,307)

    real (kind=kd),parameter,private::pigreco=3.141592653589793238

    real (kind=kd),public::prc

 

    contains

 

     function tracargeoat3(zcar) result(zgeo)

    real(kind=kd),dimension(:),intent(in)::zcar

    real(kind=kd),dimension(3)::zgeo

    real (kind=kd),parameter::uno=1.0_kd

    !start function tracargeoat3

 

    if (abs(zcar(2))<prc) then

    zgeo(3)=pigreco/2*sign(uno,zcar(3))

    else

    zgeo(3)=atan(zcar(3)/zcar(2))

    endif

    if (abs(zcar(1))<prc) then

    zgeo(2)=pigreco/2

    if ((abs(zcar(1))<prc).and.(abs(zcar(2))<prc)) then

    zgeo(2)=0.0_kd

    endif

    else

    zgeo(2)=atan(sqrt(zcar(3)*zcar(3)+zcar(2)*zcar(2))/zcar(1))

    endif

    zgeo(1)=sqrt(zcar(1)*zcar(1)+zcar(2)*zcar(2)+zcar(3)*zcar(3))

      if (zcar(1)<-prc) then

        zgeo(2)=zgeo(2)+pigreco

      endif

      if (zcar(2)<-prc) then

        zgeo(3)=zgeo(3)+pigreco

      endif

      if ((zcar(1)>-prc).and.(abs(zcar(2))<prc).and.(abs(zcar(3))<prc)) then

       zgeo(2)=0.0_kd

       zgeo(3)=0.0_kd

      endif

      if ((zcar(1)<-prc).and.(abs(zcar(2))<prc).and.(abs(zcar(3))<prc)) then

       zgeo(2)=pigreco

       zgeo(3)=0.0_kd

      endif

      if ((abs(zcar(1))<prc).and.(abs(zcar(3))<prc)) then

       zgeo(2)=pigreco/2*sign(uno,zcar(2))

       zgeo(3)=0.0_kd

      endif

      if ((abs(zcar(1))<prc).and.(abs(zcar(2))<prc)) then

       zgeo(2)=pigreco/2

       zgeo(3)=pigreco/2*sign(uno,zcar(3))

      endif

    end function tracargeoat3

 

  

 

 

    function trageocar3 (zgeo) result(zcar)

    real(kind=kd),dimension(:),intent(in)::zgeo

    real(kind=kd),dimension(3)::zcar

    !start function trageocar

    zcar(1)=zgeo(1)*cos(zgeo(2))

    zcar(2)=zgeo(1)*sin(zgeo(2))*cos(zgeo(3))

    zcar(3)=zgeo(1)*sin(zgeo(2))*sin(zgeo(3))

    end function trageocar3

 

    function pers3(zcar1,zcar2) result (zcar3)

    real(kind=kd),dimension(:),intent(in) ::zcar1,zcar2

    real(kind=kd),dimension(4):: zcar3

    real(kind=kd)::uno

    !start function pers

    uno=(zcar1(2)*zcar2(3)+zcar1(3)*zcar2(2))

    zcar3(1)=zcar1(1)*zcar2(1)-zcar1(2)*zcar2(2)-zcar1(3)*zcar2(3)  

    zcar3(2)=zcar1(1)*zcar2(2)+zcar1(2)*zcar2(1)

    zcar3(3)=zcar1(1)*zcar2(3)+zcar1(3)*zcar2(1)

    zcar3(4)=zcar1(2)*zcar2(3)+zcar1(3)*zcar2(2)

    end function pers3

 

    function div3(zcar1,zcar2) result(zcar3)

    real(kind=kd),intent(in),dimension(:)::zcar1,zcar2

    real(kind=kd),dimension(3)::zcar3

    real(kind=kd),dimension(3)::zcar2c

    real(kind=kd)::ro2

    integer::i

    !start function div

    ro2=zcar2(1)*zcar2(1)+zcar2(2)*zcar2(2)+zcar2(3)*zcar2(3)

    if (ro2==0.0) then

    ! "fatal error hai diviso per 0.0"

     stop

    endif

     zcar2c(1)=zcar2(1)

     zcar2c(2)=-zcar2(2)

     zcar2c(3)=-zcar2(3)

     zcar3=per3(zcar1,zcar2c)

      do i=1,3

      zcar3(i)=zcar3(i)/ro2

      end do

    end function div3

 

     function per3(zcar1,zcar2) result (zcar3)

    real(kind=kd),dimension(:),intent(in) ::zcar1,zcar2

    real(kind=kd),dimension(3):: zcar3

    real (kind=kd)::uno,due

    !start function per

    uno=zcar1(2)*zcar2(3)-zcar1(3)*zcar2(2)

    due=0.562640006184190 * uno

    zcar3(1)=zcar1(1)*zcar2(1)-zcar1(2)*zcar2(2)-zcar1(3)*zcar2(3)&

           -0.605699946517314*uno

    zcar3(2)=zcar1(1)*zcar2(2)+zcar1(2)*zcar2(1)+due

    zcar3(3)=zcar1(1)*zcar2(3)+zcar1(3)*zcar2(1)+due

    end function per3

 

    function divs3(zcar1,zcar2) result(zcar3)

    real(kind=kd),intent(in),dimension(:)::zcar1,zcar2

    real(kind=kd),dimension(3)::zcar3

    real(kind=kd),dimension(3)::zcar2c,zcar

    real(kind=kd)::ro2

    integer::i

    !start function divs

    ro2=zcar2(1)*zcar2(1)+zcar2(2)*zcar2(2)+zcar2(3)*zcar2(3)   &

        +zcar2(2)*zcar2(3)*2

    ro2=ro2*ro2

     zcar2c(1)=zcar2(1)

     zcar2c(2)=-zcar2(2)

     zcar2c(3)=-zcar2(3)

   !  zcar3=pers3(zcar1,zcar2c)

     if (ro2==0.0) then

    !"fatal error hai diviso per 0.0"

     stop

     endif

   !  zcar=pers3(zcar2,zcar2c)

   !  zcar3=zcar3/ro2

     zcar3=div3(zcar3,zcar)

    end function divs3

    

    function pot3(zcar1,r) result(zcar2)

    real(kind=kd),dimension(:),intent(in)::zcar1

    real(kind=kd),intent(in)::r

    real(kind=kd),dimension(3)::zcar2

    real(kind=kd),dimension(3)::zgeo1,zgeo2

    !start pot3d

    if ((zcar1(1)==0.0_kd).and.(zcar1(2)==0.0_kd).and.(zcar1(3)==0.0_kd))then

    zcar2=0.0_kd

    else

    zcar2=exp3(r*ln3(zcar1))

    endif

    end function pot3

 

   function ln3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zgeo

   !start function ln3d

   zgeo=tracargeoat3(zcar1)

   if (zgeo(1)==0.0) then

     !" hai cercato di fare ln 0.0"

     stop

   else

     zcar2(1)= log(zgeo(1))

     zcar2(2)=zgeo(2)*cos(zgeo(3))

     zcar2(3)=zgeo(2)*sin(zgeo(3))

   endif

   end function ln3

 

   function exp3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zcar3,zcar4

   integer ::i,j

  !start exp3d

   zcar2(1)=1.0_kd

   zcar2(2)=0.0_kd

   zcar2(3)=0.0_kd

   zcar3=zcar1

   zcar2=zcar2+zcar1

   do i=1,1000

   zcar4(1)=zcar3(1)*zcar1(1)-zcar3(2)*zcar1(2)-zcar3(3)*zcar1(3)

   zcar4(2)=zcar3(1)*zcar1(2)+zcar3(2)*zcar1(1)

   zcar4(3)=zcar3(1)*zcar1(3)+zcar3(3)*zcar1(1)

   zcar3=zcar4/(i+1)

   zcar2=zcar2+zcar3

   if((abs(zcar4(1))<10e-30).and.(abs(zcar4(2))<10e-30).and.(abs(zcar4(3))<10e-30))then

   exit

   endif

   end do

   end function exp3

 

   function sin3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zcar3,zcar4,zcar5

   integer::i,j,k,l

   !start function sin3d

   zcar5=zcar1

   if (zcar1(1)>4*pigreco) then

   zcar5(1)=zcar1(1)-2*pigreco*(int(zcar1(1)/2/pigreco)-2)

   endif

   l=1

   zcar2=zcar5

   zcar3=zcar5

   do i=1,10000

     l=-l

      do j=1,2

        zcar4(1)=zcar3(1)*zcar5(1)-zcar3(2)*zcar5(2)-zcar3(3)*zcar5(3)

        zcar4(2)=zcar3(1)*zcar5(2)+zcar3(2)*zcar5(1)

        zcar4(3)=zcar3(1)*zcar5(3)+zcar3(3)*zcar5(1)

        zcar3=zcar4

      end do

     zcar3=zcar4/(2*i+1)/i/2

     zcar2=zcar2+zcar3*l

     if((abs(zcar3(1))<1.0e-30).and.(abs(zcar3(2))<1.0e-30).and.&

        (abs(zcar3(3))<1.0e-30))then

     exit

     endif

   end do

   end function sin3

 

   function ckasin3 (zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zcar3,zcar4,zcar5,zcar6

   !start function asin3d

      zcar3=(/0,1,1/)

      zcar3=zcar3/sqrt(2.0) 

   zcar4=per3(zcar1,zcar3) 

   zcar5=per3(zcar4,zcar4)

   zcar5(1)=1.0+zcar5(1)

   zcar6=ln3(zcar4+pot3(zcar5,0.5_kd))

   zcar2=div3(zcar6,zcar3)

   end function ckasin3

 

   function cos3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zcar3,zcar4,zcar5

   integer::i,j,l

   !start function cos3

   zcar5=zcar1

   if (zcar1(1)>4*pigreco) then

   zcar5(1)=zcar1(1)-2*pigreco*(int(zcar1(1)/2/pigreco)-2)

   endif

   l=-1

   zcar2=0.0_kd

   zcar2(1)=1.0_kd

      zcar3(1)=(zcar5(1)*zcar5(1)-zcar5(2)*zcar5(2)-zcar5(3)*zcar5(3))

      zcar3(2)=zcar5(1)*zcar5(2)*2

      zcar3(3)=zcar5(1)*zcar5(3)*2

   zcar3=zcar3/2

   zcar2=zcar2-zcar3

   do i=1,2000

   l=-l

      do j=1,2

      zcar4(1)=zcar3(1)*zcar5(1)-zcar3(2)*zcar5(2)-zcar3(3)*zcar5(3)

      zcar4(2)=zcar3(1)*zcar5(2)+zcar3(2)*zcar5(1)

      zcar4(3)=zcar3(1)*zcar5(3)+zcar3(3)*zcar5(1)

      zcar3=zcar4

      end do

     zcar3=zcar4/(2*(i+1)-1)/(2*(i+1))

   zcar2=zcar2+l*zcar3

     if((abs(zcar3(1))<1.0e-20).and.(abs(zcar3(2))<1.0e-20).and.&

        (abs(zcar3(3))<1.0e-20)) then

      exit

     endif

   end do

   end function cos3

 

   function tan3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zcar3,zcar4

   real(kind=kd),parameter::uno=1.0_kd

   !start function tan3

   zcar3=sin3(zcar1)

   zcar4=cos3(zcar1)

   if ((zcar4(1)==0.0_kd).and.(zcar4(2)==0.0).and.(zcar4(3)==0.0_kd)) then

   stop

   else

   zcar2=div3(zcar3,zcar4)

   endif

   end function tan3

 

   function asin3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   real(kind=kd),dimension(3)::zcar3,zcar4

   real(kind=kd)::ro2

   integer::i,j

   !start function asin3

   ro2=zcar1(1)*zcar1(1)+zcar1(2)*zcar1(2)+zcar1(3)*zcar1(3)

   if (ro2>=1.0_kd) then

   stop

   endif

   zcar2=zcar1

   zcar3=zcar1

   do i=1,1000

      do j=1,2

      zcar4(1)=zcar3(1)*zcar1(1)-zcar3(2)*zcar1(2)-zcar3(3)*zcar1(3)

      zcar4(2)=zcar3(1)*zcar1(2)+zcar3(2)*zcar1(1)

      zcar4(3)=zcar3(1)*zcar1(3)+zcar3(3)*zcar1(1)

      zcar3=zcar4

      end do

      zcar3=zcar4/i/2*(2*i-1)

   zcar2=zcar2+zcar3/(2*i+1)

   if((abs(zcar3(1))<1.0e-50).and.(abs(zcar3(2))<1.0e-50)&

     .and.(abs(zcar3(3))<1.0e-50)) then

   exit

   endif

   end do

   end function asin3

 

   function acos3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   !start function acos3

   if ((zcar1(1)==0.0_kd).and.(zcar1(2)==0.0_kd).and.(zcar1(3)==0.0_kd)) then

   zcar2=0.0_kd

   else

   zcar2(1)=zcar1(1)*zcar1(1)-zcar1(2)*zcar1(2)-zcar1(3)*zcar1(3)

   zcar2(2)=2*zcar1(1)*zcar1(2)

   zcar2(3)=2*zcar1(1)*zcar1(3)

   zcar2=-zcar2

   zcar2(1)=zcar2(1)+1

   zcar2=asin3(pot3(zcar2,0.5_kd))

   endif

   end function acos3

 

   function atan3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   !start function acos3

   zcar2(1)=zcar1(1)*zcar1(1)-zcar1(2)*zcar1(2)-zcar1(3)*zcar1(3)

   zcar2(2)=2*zcar1(1)*zcar1(2)

   zcar2(3)=2*zcar1(1)*zcar1(3)

   zcar2(1)=zcar2(1)+1

   zcar2=pot3(zcar2,0.5_kd)

   zcar2=asin3(div3(zcar1,zcar2))

   end function atan3

 

    function exps3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4

   integer ::i,j

  !start exps3d

   if ((abs(zcar1(1))>50.0).or.(abs(zcar1(2))>50.0).or.(abs(zcar1(3))>50.0)) then

   stop

   endif

   zcar2=0.0_kd

   zcar2(1)=1.0_kd

   zcar3=zcar1

   zcar2=zcar2+zcar1

   do i=1,150

   zcar4(1)=zcar3(1)*zcar1(1)-zcar3(2)*zcar1(2)-zcar3(3)*zcar1(3)+zcar3(4)*zcar1(4)

   zcar4(2)=zcar3(1)*zcar1(2)+zcar3(2)*zcar1(1)-zcar3(3)*zcar1(4)-zcar3(4)*zcar1(3)

   zcar4(3)=zcar3(1)*zcar1(3)+zcar3(3)*zcar1(1)-zcar3(2)*zcar1(4)-zcar3(4)*zcar1(2)

   zcar4(4)=zcar3(1)*zcar1(4)+zcar3(4)*zcar1(1)+zcar3(2)*zcar1(3)+zcar3(3)*zcar1(2)

   zcar3=zcar4/(i+1)

   zcar2=zcar2+zcar3

   if((abs(zcar3(1))<10e-30).and.(abs(zcar3(2))<10e-30).and.   &

      (abs(zcar3(3))<10e-30).and.(abs(zcar3(4))<10e-30))then

   exit

   endif

   end do

   end function exps3

 

   function sqrt3(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(3)::zcar2

   !start function sqrt3

   zcar2=pot3(zcar1,0.5_kd)

   end function sqrt3

 

  end module cmpl3dm

 

 

 

 

 

 

 

 ! programma scritto in fortran f_world

!modulo delle operazioni e funzioni elementari dello spazio complesso 4D

   module cmplx4dm

    implicit none

    public ::tracargeoat4,trageocar4,per4,div4,pot4,ln4,exp4,sin4,asin4,&

             pers4,divs4,cos4,tan4,ckasin4,atan4,acos4,sqrt4

    integer,parameter,public::kd=selected_real_kind(15,99)

    real (kind=kd),parameter,private::pigreco=3.141592653589793

    real(kind=kd),public::prc

 

    contains

 

     function tracargeoat4(zcar) result(zgeo)

    real(kind=kd),dimension(:),intent(in)::zcar

    real(kind=kd),dimension(4)::zgeo

    real (kind=kd),parameter::uno=1.0_kd

    !start function tracargeoat4

    zgeo(1)=sqrt(zcar(1)*zcar(1)+zcar(2)*zcar(2)+zcar(3)*zcar(3)+zcar(4)*zcar(4))

    if (abs(zcar(3))<prc) then

    zgeo(4)=pigreco/2*sign(uno,zcar(4))

    else

    zgeo(4)=atan(zcar(4)/zcar(3))

    endif

    if (abs(zcar(2))<prc) then

    zgeo(3)=pigreco/2

    else

    zgeo(3)=atan(sqrt(zcar(4)*zcar(4)+zcar(3)*zcar(3))/zcar(2))

    endif

      if (zcar(3)<-prc) then

        zgeo(4)=zgeo(4)+pigreco

      endif

      if (zcar(2)<-prc) then

        zgeo(3)=zgeo(3)+pigreco

      endif

      if ((abs(zcar(2))<prc).and.(abs(zcar(4))<prc)) then

       zgeo(3)=pigreco/2*sign(uno,zcar(3))

       zgeo(4)=0.0_kd

      endif

      if ((abs(zcar(2))<prc).and.(abs(zcar(3))<prc)) then

       zgeo(3)=pigreco/2

       zgeo(4)=pigreco/2*sign(uno,zcar(4))

      endif

      if (abs(zcar(1))<prc) then

      zgeo(2)=pigreco/2

      else

      zgeo(2)=atan(sqrt(zcar(4)*zcar(4)+zcar(3)*zcar(3)+zcar(2)*zcar(2))/zcar(1))

      endif

      if ((abs(zcar(2))<prc).and.(abs(zcar(3))<prc)      &

         .and.(abs(zcar(4))<prc))then

      zgeo(2)=0.0_kd

      zgeo(3)=0.0_kd

      zgeo(4)=0.0_kd

      endif

      if(zcar(1)<-prc) then

      zgeo(2)=zgeo(2)+pigreco

      endif

      end function tracargeoat4

 

  

 

 

    function trageocar4 (zgeo) result(zcar)

    real(kind=kd),dimension(:),intent(in)::zgeo

    real(kind=kd),dimension(4)::zcar

    !start function trageocar

    zcar(1)=zgeo(1)*cos(zgeo(2))

    zcar(2)=zgeo(1)*sin(zgeo(2))*cos(zgeo(3))

    zcar(3)=zgeo(1)*sin(zgeo(2))*sin(zgeo(3))*cos(zgeo(4))

    zcar(4)=zgeo(1)*sin(zgeo(2))*sin(zgeo(3))*sin(zgeo(4))

    end function trageocar4

 

    function pers4(zcar1,zcar2) result (zcar3)

    real(kind=kd),dimension(:),intent(in) ::zcar1,zcar2

    real(kind=kd),dimension(4):: zcar3

    !start function per

    zcar3(1)=zcar1(1)*zcar2(1)-zcar1(2)*zcar2(2)                  &

            -zcar1(3)*zcar2(3)-zcar1(4)*zcar2(4)                 

    zcar3(2)=zcar1(1)*zcar2(2)+zcar1(2)*zcar2(1)                  &

            +zcar1(3)*zcar2(4)+zcar1(4)*zcar2(3)

    zcar3(3)=zcar1(1)*zcar2(3)+zcar1(3)*zcar2(1)                  &

            +zcar1(2)*zcar2(4)+zcar1(4)*zcar2(2)

    zcar3(4)=zcar1(1)*zcar2(4)+zcar1(4)*zcar2(1)                  &

            +zcar1(2)*zcar2(3)+zcar1(3)*zcar2(2)

    end function pers4

 

    function div4(zcar1,zcar2) result(zcar3)

    real(kind=kd),intent(in),dimension(:)::zcar1,zcar2

    real(kind=kd),dimension(4)::zcar3

    real(kind=kd),dimension(4)::zcar2c

    real(kind=kd)::ro2

    integer::i

    !start function div

    ro2=zcar2(1)*zcar2(1)+zcar2(2)*zcar2(2)+zcar2(3)*zcar2(3)+zcar2(4)*zcar2(4)

    if (ro2==0.0) then

    ! "fatal error hai diviso per 0.0"

     stop

    endif

     zcar2c(1)=zcar2(1)

     zcar2c(2)=-zcar2(2)

     zcar2c(3)=-zcar2(3)

     zcar2c(4)=-zcar2(4)

     zcar3=per4(zcar1,zcar2c)

     zcar3=zcar3/ro2

    end function div4

 

     function per4(zcar1,zcar2) result (zcar3)

    real(kind=kd),dimension(:),intent(in) ::zcar1,zcar2

    real(kind=kd),dimension(4):: zcar3

    real (kind=kd)::uno,due,tre,quattro

    !start function per

    uno=zcar1(2)*zcar2(3)-zcar1(3)*zcar2(2)

    tre=zcar1(2)*zcar2(4)-zcar1(4)*zcar2(2)

    quattro=zcar1(3)*zcar2(4)-zcar1(4)*zcar2(3)

    due=0.562640006184190

    zcar3(1)=zcar1(1)*zcar2(1)-zcar1(2)*zcar2(2)-zcar1(3)*zcar2(3)&

           -zcar1(4)*zcar2(4)-0.605699946517314*(uno+tre+quattro)

    zcar3(2)=zcar1(1)*zcar2(2)+zcar1(2)*zcar2(1)+due*(uno+tre)

    zcar3(3)=zcar1(1)*zcar2(3)+zcar1(3)*zcar2(1)+due*(uno+quattro)

    zcar3(4)=zcar1(1)*zcar2(4)+zcar1(4)*zcar2(1)+due*(tre+quattro)

    end function per4

 

    function divs4(zcar1,zcar2) result(zcar3)

    real(kind=kd),intent(in),dimension(:)::zcar1,zcar2

    real(kind=kd),dimension(4)::zcar3

    real(kind=kd),dimension(4)::zcar2c,zcar

    real(kind=kd)::ro2

    integer::i

    !start function divs

    ro2=zcar2(1)*zcar2(1)+zcar2(2)*zcar2(2)+zcar2(3)*zcar2(3)+zcar2(4)*zcar2(4)

     zcar2c=-zcar2

     zcar2c(1)=zcar2(1)

     zcar3=pers4(zcar1,zcar2c)

      ro2=ro2+2*(zcar2(2)*zcar2(3)+zcar2(2)*zcar2(4)+zcar2(3)*zcar2(4))

      if (ro2==0.0) then

    ! "fatal error hai diviso per 0.0"

     stop

    endif

     zcar=pers4(zcar2,zcar2c)

     zcar3=div4(zcar3,zcar)

      !zcar3=zcar3/ro2

    end function divs4

    

    function pot4(zcar1,r) result(zcar2)

    real(kind=kd),dimension(:),intent(in)::zcar1

    real(kind=kd),intent(in)::r

    real(kind=kd),dimension(4)::zcar2

    real(kind=kd),dimension(4)::zgeo1,zgeo2

    !start pot4d

    if ((zcar1(1)==0.0_kd).and.(zcar1(2)==0.0_kd).and.(zcar1(3)==0.0_kd)&

         .and.(zcar1(4)==0.0_kd))then

    zcar2=0.0_kd

    else

    zcar2=exp4(r*ln4(zcar1))

    endif

    end function pot4

 

   function ln4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zgeo

   !start function ln4d

   zgeo=tracargeoat4(zcar1)

   if (zgeo(1)==0.0) then

     !" hai cercato di fare ln 0.0"

     stop

   else

     zcar2(1)= log(zgeo(1))

     zcar2(2)=zgeo(2)*cos(zgeo(3))

     zcar2(3)=zgeo(2)*sin(zgeo(3))*cos(zgeo(4))

     zcar2(4)=zgeo(2)*sin(zgeo(3))*sin(zgeo(4))

   endif

   end function ln4

 

   function exp4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4

   integer ::i,j

  !start exp4d

   zcar2=(/1,0,0,0/)

   zcar3=zcar1

   zcar2=zcar2+zcar1

   do i=1,1150

   zcar4(1)=zcar3(1)*zcar1(1)-zcar3(2)*zcar1(2)-zcar3(3)*zcar1(3)-zcar3(4)*zcar1(4)

   zcar4(2)=zcar3(1)*zcar1(2)+zcar3(2)*zcar1(1)

   zcar4(3)=zcar3(1)*zcar1(3)+zcar3(3)*zcar1(1)

   zcar4(4)=zcar3(1)*zcar1(4)+zcar3(4)*zcar1(1)

   zcar3=zcar4/(i+1)

   zcar2=zcar2+zcar3

   if((abs(zcar4(1))<10e-20).and.(abs(zcar4(2))<10e-20).and.(abs(zcar4(3))<10e-20) &

       .and.(abs(zcar4(4))<10e-20))then

   exit

   endif

   end do

   end function exp4

 

   function sin4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4,zcar5

   integer::i,j,k,l

   !start function sin4d

   l=1

   zcar5=zcar1

   if (zcar1(1)>4*pigreco) then

   zcar5(1)=zcar5(1)-2*pigreco*(int(zcar1(1)/2/pigreco)-2)

   endif

   zcar2=zcar5

   zcar3=zcar5

   do i=1,2000

     l=-l

      do j=1,2

        zcar4(1)=zcar3(1)*zcar5(1)-zcar3(2)*zcar5(2)     &

                -zcar3(3)*zcar5(3)-zcar3(4)*zcar5(4)

        zcar4(2)=zcar3(1)*zcar5(2)+zcar3(2)*zcar5(1)

        zcar4(3)=zcar3(1)*zcar5(3)+zcar3(3)*zcar5(1)

        zcar4(4)=zcar3(1)*zcar5(4)+zcar3(4)*zcar5(1)

        zcar3=zcar4

      end do

        zcar3=zcar4/2/i/(2*i+1)

     zcar2=zcar2+zcar3*l

     if((abs(zcar3(1))<1.0e-30).and.(abs(zcar3(2))<1.0e-30).and.&

        (abs(zcar3(3))<1.0e-30).and.(abs(zcar3(4))<1.0e-30))then

     exit

     endif

   end do

   end function sin4

 

   function ckasin4 (zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4,zcar5,zcar6

   !start function asin4d

      zcar3=(/0,1,1,1/)

      zcar3=zcar3/sqrt(3.0)

   zcar4=per4(zcar1,zcar3) 

   zcar5=per4(zcar4,zcar4)

   zcar5(1)=1.0+zcar5(1)

   zcar6=ln4(zcar4+pot4(zcar5,0.5_kd))

   zcar2=-per4(zcar6,zcar3)

   end function ckasin4

 

   function cos4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4,zcar5

   integer::i,j,l

   !start function cos4

   l=-1

   zcar5=zcar1

   if(zcar1(1)>4*pigreco) then

   zcar5(1)=zcar1(1)-2*pigreco*(int(zcar1(1)/2/pigreco)-2)

   endif

   zcar2=(/1,0,0,0/)

      zcar3(1)=zcar5(1)*zcar5(1)-zcar5(2)*zcar5(2)    &

              -zcar5(3)*zcar5(3)-zcar5(4)*zcar5(4)

      zcar3(2)=zcar5(1)*zcar5(2)*2

      zcar3(3)=zcar5(1)*zcar5(3)*2

      zcar3(4)=zcar5(1)*zcar5(4)*2

   zcar3=zcar3/2

   zcar2=zcar2-zcar3

   do i=1,1000

   l=-l

      do j=1,2

      zcar4(1)=zcar3(1)*zcar5(1)-zcar3(2)*zcar5(2)    &

              -zcar3(3)*zcar5(3)-zcar3(4)*zcar5(4)

      zcar4(2)=zcar3(1)*zcar5(2)+zcar3(2)*zcar5(1)

      zcar4(3)=zcar3(1)*zcar5(3)+zcar3(3)*zcar5(1)

      zcar4(4)=zcar3(1)*zcar5(4)+zcar3(4)*zcar5(1)

      zcar3=zcar4

      end do

     zcar3=zcar4/(2*(i+1))/(2*(i+1)-1)

   zcar2=zcar2+l*zcar3

     if((abs(zcar4(1))<1.0e-30).and.(abs(zcar4(2))<1.0e-30).and.&

        (abs(zcar4(3))<1.0e-30).and.(abs(zcar4(4))<1.0e-30)) then

      exit

     endif

   end do

   end function cos4

 

   function tan4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4

   real(kind=kd),parameter::uno=1.0_kd

   !start function tan4

   zcar3=sin4(zcar1)

   zcar4=cos4(zcar1)

   if ((zcar4(1)==0.0_kd).and.(zcar4(2)==0.0).and.     &

       (zcar4(3)==0.0_kd).and.(zcar4(4)==0.0)) then

   stop

   else

   zcar2=div4(zcar3,zcar4)

   endif

   end function tan4

 

   function asin4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   real(kind=kd),dimension(4)::zcar3,zcar4

   real(kind=kd)::ro2

   integer::i,j

   !start function asin4

   ro2=zcar1(1)*zcar1(1)+zcar1(2)*zcar1(2)+zcar1(3)*zcar1(3)*zcar1(4)*zcar1(4)

   if (ro2>=1.0_kd) then

   stop

   endif

   zcar2=zcar1

   zcar3=zcar1

   do i=1,150

      do j=1,2

      zcar4(1)=zcar3(1)*zcar1(1)-zcar3(2)*zcar1(2)   &

              -zcar3(3)*zcar1(3)-zcar3(4)*zcar1(4)

      zcar4(2)=zcar3(1)*zcar1(2)+zcar3(2)*zcar1(1)

      zcar4(3)=zcar3(1)*zcar1(3)+zcar3(3)*zcar1(1)

      zcar4(4)=zcar3(1)*zcar1(4)+zcar3(4)*zcar1(1)

      zcar3=zcar4

      end do

      do j=1,(2*i-1),2

      zcar4=zcar4*j

      end do

      do j=1,i

      zcar4=zcar4/j/2

      end do

   zcar2=zcar2+zcar4/(2*i+1)

   if((abs(zcar4(1))<1.0e-30).and.(abs(zcar4(2))<1.0e-30)&

     .and.(abs(zcar4(3))<1.0e-30).and.(abs(zcar4(4))<1.0e-30)) then

   exit

   endif

   end do

   end function asin4

 

   function acos4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   !start function acos4

   if ((zcar1(1)==0.0_kd).and.(zcar1(2)==0.0_kd).and.     &

       (zcar1(3)==0.0_kd).and.(zcar1(4)==0.0_kd)) then

   zcar2=0.0_kd

   else

   zcar2(1)=zcar1(1)*zcar1(1)-zcar1(2)*zcar1(2)    &

           -zcar1(3)*zcar1(3)-zcar1(4)*zcar1(4)

   zcar2(2)=2*zcar1(1)*zcar1(2)

   zcar2(3)=2*zcar1(1)*zcar1(3)

   zcar2(4)=2*zcar1(1)*zcar1(4)

   zcar2=-zcar2

   zcar2(1)=zcar2(1)+1

   zcar2=asin4(pot4(zcar2,0.5_kd))

   endif

   end function acos4

 

   function atan4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   !start function acos4

   zcar2(1)=zcar1(1)*zcar1(1)-zcar1(2)*zcar1(2)     &

           -zcar1(3)*zcar1(3)-zcar1(4)*zcar1(4)

   zcar2(2)=2*zcar1(1)*zcar1(2)

   zcar2(3)=2*zcar1(1)*zcar1(3)

   zcar2(4)=2*zcar1(1)*zcar1(4)

   zcar2(1)=zcar2(1)+1

   zcar2=pot4(zcar2,0.5_kd)

   zcar2=asin4(div4(zcar1,zcar2))

   end function atan4

 

   function sqrt4(zcar1) result(zcar2)

   real(kind=kd),dimension(:),intent(in)::zcar1

   real(kind=kd),dimension(4)::zcar2

   ! start function sqrt4

   zcar2=pot4(zcar1,0.5_kd)

   end function sqrt4

 

 

  end module cmplx4dm

 

 

 

 

 

 

 

 

 

 

[1]B.FINZI-M.PASTORI,”Calcolo tensoriale e applicazioni”,ZANICHELLI BOLOGNA,1971

[2]L.D.LANDAU-E.M.LIFSITS,”Teoria dei campi”,EDITORI RIUNITI,1976

[3]A.I.MARKUSEVIC,”Elementi di teoria delle funzioni analitiche”,EDITORI RIUNITI,1988

[4]A.G.SVESNIKOV,”Teoria delle funzioni di una variabile complessa”,EDITORI RIUNITI,1984