Noyau de Bergman pour P1 prive de 1 point puis 2 points alignes.
   Dans ces cas particuliers le noyau est connu explicitement.

\(\(\(\ \)\(\(g[a_, k_, c_, z_] = 
        Module[{i}, 
\ 
          Sum[Binomial[k, i]*\((a + z)\)^\((2*i - k)\), {i, k*c, 
                  k}]^2/\((\((1 + \((a + z)\)^2)\)^\((k)\)*
                Sum[Binomial[k, i]*\((a + z)\)^\((2*i - 2*k)\), {i, k*c, 
                    k}])\)];\)


    Plot[g[a, 50, 0.1, 0.5], {a, \(-2\), 1}]

    \)\)\)

\(\(\(\ \ \)\(\(f[a_, k_, c_, z_] = 
        Module[{i}, 
\ 
          Sum[Binomial[k, i]*\((a*\((a + z)\))\)^\((2*i - k)\), {i, k*c, 
                  k}]^2/\((\((1 + \((a*\((a + z)\))\)^2)\)^\((k)\)*
                Sum[Binomial[k, i]*\((a*\((a + z)\))\)^\((2*i - 2*k)\), {i, 
                    k*c, k}])\)];\)


    Plot[f[a, 80, 0.1, 1], {a, \(-4\), 3}]

    \)\)\)

Noyau de Bergman pour P^1 prive de 2 points (0 et z2) (alignes) reels. Ici on retrouve le
resultat precedent.

L2prod[P_, Q_, k_] := 
      Module[{i, s, b, P1, Q1}, b = 1; 
        s = 0; 
P1 = 
          CoefficientList[P, z]; 
Q1 = 
          CoefficientList[Q, z]; 
For[i = 0, 
          i <= Min[Length[P1] - 1, Length[Q1] - 1], 
          s = s + (1/b)*Part[P1, i + 1]*Part[Q1, i + 1]; 
          b = b*(k - i)/(i + 1);  
          i = i + 1]; 
Return[s]]

\(Peak[k_, cbegin_, cend_, cstep_, z2_, xmin_, 
        xmax_] := 
Module[{\ kc, c, TS, i, b, t, S, ONS, 
          ONS3, R, alpha, nmber, ttime}, 

        nmber = 0; 
ttime = TimeUsed[]; 

        For[c = \ cbegin, c <= cend, \ 
nmber = nmber + 1; 

            kc = Round[k*c]; 

            TS[0] = Expand[z^\((kc)\)*\((z - z2)\)^\((kc)\), 
                z]; 
 (*\(Print[TS[0]];\)*) 

            S = Expand[TS[0]/Sqrt[L2prod[TS[0], TS[0], k]], z]; 

            ONS[0] = S; 
R = TS[0]; 
 (*\(Print[S];\)*) 

            For[i = 1, i <= \ k - 2*kc\ , 
b = Max[0, i - kc]; 

              alpha[i, i] = \(-1\)/
                  L2prod[ONS[b], z^i*R, k]; 
 (*\(Print[
                    N[alpha[i, i]]];\)*) 

              For[t = \ b + 1, 
                t <= \ i - 1, 
\ \ alpha[i, 
                    t] = \(-N[alpha[i, i]*L2prod[ONS[t], z^i*R, k], 75]\); 
                t = t + 1]; 
\ \ \ S = 
                ONS[b] + alpha[i, i]*z^i*R + 
                  Sum[alpha[i, q]*ONS[q], {q, b + 1, 
                      i - 1}]; 
ONS[i] = 
                Expand[S/Sqrt[L2prod[S, S, k]]]; 
              i = i + 1]; 
Res[nmber] = 
              Sum[ONS[q]^2, {q, 0, k - 2*kc}]; 
\ 
            Plot[Res[nmber]/\((1 + Abs[z]^2)\)^\((k)\), {z, xmin, 
                xmax}]; 
c = 
              c + cstep]
Print["Done in ", 
            TimeUsed[] - ttime, "- Number=", nmber]
]\)

Peak[50, 0.1, 0.1, 0.1, -1, -2, 2]

Noyau de Bergman pour P1 prive de 3 points (0,z2,z3) complexes

L2prodc[P_, Q_, k_] := 
      Module[{i, s, b, P1, Q1}, b = 1; 
        s = 0; 
P1 = 
          CoefficientList[P, z]; 
Q1 = 
          CoefficientList[Q, z]; 
For[i = 0, 
          i <= Min[Length[P1] - 1, Length[Q1] - 1], 
          s = s + (1/b)*Part[P1, i + 1]*Conjugate[Part[Q1, i + 1]]; 
          b = b*(k - i)/(i + 1); 
          i = i + 1]; 
Return[s]]

\(\(\(\ \)\(Peak3pointscomplex[k_, cbegin_, cend_, cstep_, z2_, z3_, 
        xmin_, xmax_] := 
Module[{\ kc, c, TS, i, b, t, S, 
          ONS, ONS3, R, alpha, nmber, ttime, Res, Res2}, 

        nmber = 0; 
ttime = 
          TimeUsed[]; 
Block[{$MaxPrecision = ∞, $MinPrecision = prec}, 

          For[c = \ cbegin, c <= cend, \ 

            nmber = nmber + 1; 

kc = Round[k*c]; 

            TS[0] = Expand[
                z^\((kc)\)*\((z - z2)\)^\((kc)\)*\((z - z3)\)^\((kc)\), 
                z]; 
 (*\(Print[TS[0]];\)*) 
S = 
              Expand[TS[0]/Sqrt[L2prodc[TS[0], TS[0], k]], z]; 

            ONS[0] = S; 

            R = TS[0]; 
 (*\(Print[S];\)*) 
For[i = 1, 
              i <= \ k - 3*kc\ , 
b = Max[0, i - 2*kc]; 

              alpha[i, 
                  i] = \(-Conjugate[
                    1/L2prodc[ONS[b], z^i*R, 
                        k]]\); 
 (*\(Print[
                    N[alpha[i, i]]];\)*) 

              For[t = \ b + 1, 
                t <= \ i - 1, 
\ \ alpha[i, 
                    t] = \(-Conjugate[
                      L2prodc[ONS[t], alpha[i, i]*z^i*R, k]]\); 
                t = t + 1]; 

\ \ \ S = 
                ONS[b] + alpha[i, i]*z^i*R + 
                  Sum[alpha[i, q]*ONS[q], {q, b + 1, 
                      i - 1}]; 
ONS[i] = 
                Expand[S/Sqrt[L2prodc[S, S, k]]]; 
              i = i + 1]; 
Res[nmber] = 
              Sum[Abs[ONS[q]]^2, {q, 0, k - 3*kc}]; 
Res2[
                nmber] = 
              Res[nmber]/\((1 + Abs[z]^2)\)^\((k)\); 
fc2[
                x_, y_] = 
              ReplaceAll[Res2[nmber], 
                z -> 
                  x + I*y]; 
Print["c=", 
              c]; 
Result3pts[nmber] 
              Plot3D[fc2[x, y], {x, xmin, xmax}, {y, xmin, xmax}, 
                ViewPoint -> {0, \(-0.5\), 1.5}, 
                PlotPoints -> 50]; 
c = 
              c + cstep]]; 
Print["Done in ", 
          TimeUsed[] - ttime, "- Number=", nmber]
]\)\)\)

Peak3pointscomplex[40, 0.05, 0.2, 0.05, -0.5, 
      0.5 + 0.5*I, -1, 1]

$MaxPrecision = ∞
Precision[1/3. ]
$MachinePrecision

Ici prec est la precision du calcul

L2prodc[P_, Q_, k_, prec_] := 
      Module[{i, s, b, P1, Q1}, b = 1; 
        s = 0; 

Block[{$MaxPrecision = ∞, $MinPrecision = prec}, 
P1 = 
            CoefficientList[P, z]; 
Q1 = 
            CoefficientList[Q, z]; 
For[i = 0, 
            i <= Min[Length[P1] - 1, Length[Q1] - 1], 
            s = s + (1/b)*Part[P1, i + 1]*Conjugate[Part[Q1, i + 1]]; 
            b = b*(k - i)/(i + 1); 
            i = i + 1]; 
Return[s]]]

Noyau de Bergman pour P1 prive de 2 points z1,z2 avec precision prec.

\(Peak2pointscomplex[k_, cbegin_, cend_, cstep_, z1_, z2_, xmin_, xmax_, 
        prec_] := 
Module[{\ kc, c, TS, i, b, t, S, ONS, 
          ONS2, ONS3, R, alpha, nmber, ttime, Res, Res2}, 

        nmber = 0; 
ttime = 
          TimeUsed[]; 
Block[{$MaxPrecision = ∞, $MinPrecision = prec}, 
\(For[c = \ cbegin, c <= cend, \ 

              nmber = nmber + 1; 


              kc = Round[k*c]; 


              TS[0] = Expand[\((z - z1)\)^\((2*kc)\)*\((z - z2)\)^\((2*kc)\), 
                  z]; 
 (*\(Print[TS[0]];\)*) 

              S = Expand[TS[0]/Sqrt[L2prodc[TS[0], TS[0], k, prec]], z]; 

              ONS[0] = S; 

              R = TS[0]; 
 (*\(Print[S];\)*) 

              For[i = 1, i <= \ k - 4*kc\ , 
b = Max[0, i - 3  kc]; 

                alpha[i, 
                    i] = \(-Conjugate[
                      1/L2prodc[ONS[b], z^i*R, k, 
                          prec]]\); 
 (*\(Print[
                      N[alpha[i, i]]];\)*) 

                For[t = \ b + 1, 
                  t <= \ i - 1, 
\ \ alpha[i, 
                      t] = \(-Conjugate[
                        L2prodc[ONS[t], alpha[i, i]*z^i*R, k, prec]]\); 
                  t = t + 1]; 

\ \ \ S = 
                  ONS[b] + alpha[i, i]*z^i*R + 
                    Sum[alpha[i, q]*ONS[q], {q, b + 1, 
                        i - 1}]; 
ONS[i] = 
                  Expand[S/Sqrt[L2prodc[S, S, k, prec]]];  (*\(Print[i];\)*) 
                  i = i + 1]; 

Res[
                  nmber] = 
                Sum[Abs[ONS[q]]^2, {q, 0, k - 4*kc}]; 
Res2[
                  nmber] = 
                Res[nmber]/\((1 + Abs[z]^2)\)^\((k)\); 
fc[
                  Z_] = N[ReplaceAll[Res2[nmber], z -> Z], 
                  prec]; 
 (*\(fc[z_] := 
                    Res2[nmber];\)*) 
Print["c=", 
                c]; 
Print[
                TimeUsed[] - ttime, " sec"]; 
Result[
                  nmber] = 
                Plot3D[fc[x + I*y], {x, xmin, xmax}, {y, xmin, 
                    xmax}, ViewPoint -> {0, 0, 1}, 
                  PlotPoints -> 64]; 
c = 
                c + cstep];\)]; 
Print["Done in ", 
          TimeUsed[] - ttime, "- Number=", nmber]
]\)

Peak2pointscomplex[20, 0.05, 0.05, 
      0.5, -1.8`128 + 0.1`128*I, 
      1.8`128 + 0.1`128*I, -30, 30, 128]

Peak2pointscomplex[250, 0.11, 0.11, 
      0.5, -1.8`128 + 0.1`128*I, 
      1.8`128 + 0.1`128*I, -10, 10, 128]

N[fc[100*I], 3]

N[fc[110], 3]

Peak2pointscomplex[40, 0.1, 0.1, 
      0.5, - .8`128 + 0.1`128*I,  .8`128 + 
        0.1`128*I, -10, 10, 128]

Peak2pointscomplex[40, 0.1, 0.1, 
      0.5, - .6`128 + 0.1`128*I,  .6`128 + 
        0.1`128*I, -10, 10, 128]

Peak2pointscomplex[40, 0.1, 0.1, 
      0.5, - .4`128 + 0.1`128*I,  .4`128 + 
        0.1`128*I, -5, 5, 128]

N[fc[5.1 + 5.4*I], 3]

Peak2pointscomplex[40, 0.2, 0.2, 
      0.5, - .2`128 + 0.1`128*I,  .2`128 + 
        0.1`128*I, -10, 10, 128]

Peak2pointscomplex[130, 0.25, 0.25, 
      0.5, - .2`128 + 0.1`128*I,  .2`128 + 
        0.1`128*I, -10, 10, 128]

N[fc[100], 3]

z0 = 0.4 + 0.4*I

Peak2pointscomplex[150, 0.13, 0.13, 0.5, -z0, 
      z0, - .5,  .5]

Peak2pointscomplex[150, 0.1212, 0.1212, 0.5, -z0, 
      z0, - .5,  .5]

z0 =  .4`128 +  .4`128*I

    Peak2pointscomplex[170, 0.13, 0.13, 0.5, -z0, z0, -2.3, 2.3, 
      128]

Get["MathGL3d`OpenGLViewer`"];

MVCreatePalette[] ;  (*non necessary*)

({{ , OpenGL  Viewer,  ,  }, {Actions, Main, Spin, Window}, {MVShow3D[\[Placeholder]], Clear Window, X - axis, Show}, {MVWritePOVRay[\[Placeholder]], Reset view, Y - axis, Hide}, {MVWritePNG[\[Placeholder]], MVWriteVRML[\[Placeholder]], Z - axis, Iconify}, {MVWriteEPS[\[Placeholder]], MVWrite3DMF[\[Placeholder]], Stop, Quit}})

LinkPatterns[$MVLink] ;

    Names["MathView3D`*"];

\(Peak2pointscomplex3D[k_, cbegin_, cend_, cstep_, z1_, z2_, xmin_, 
        xmax_, prec_] := 
Module[{\ kc, c, TS, i, b, t, S, 
          ONS, ONS2, ONS3, R, alpha, nmber, ttime, Res, Res2}, 

        nmber = 0; 
ttime = 
          TimeUsed[]; 
Block[{$MaxPrecision = ∞, $MinPrecision = prec}, 
\(For[c = \ cbegin, c <= cend, \ 

              nmber = nmber + 1; 


              kc = Round[k*c]; 


              TS[0] = Expand[\((z - z1)\)^\((2*kc)\)*\((z - z2)\)^\((2*kc)\), 
                  z]; 
 (*\(Print[TS[0]];\)*) 

              S = Expand[TS[0]/Sqrt[L2prodc[TS[0], TS[0], k, prec]], z]; 

              ONS[0] = S; 

              R = TS[0]; 
 (*\(Print[S];\)*) 

              For[i = 1, i <= \ k - 4*kc\ , 
b = Max[0, i - 3  kc]; 

                alpha[i, 
                    i] = \(-Conjugate[
                      1/L2prodc[ONS[b], z^i*R, k, 
                          prec]]\); 
 (*\(Print[
                      N[alpha[i, i]]];\)*) 

                For[t = \ b + 1, 
                  t <= \ i - 1, 
\ \ alpha[i, 
                      t] = \(-Conjugate[
                        L2prodc[ONS[t], alpha[i, i]*z^i*R, k, prec]]\); 
                  t = t + 1]; 

\ \ \ S = 
                  ONS[b] + alpha[i, i]*z^i*R + 
                    Sum[alpha[i, q]*ONS[q], {q, b + 1, 
                        i - 1}]; 
ONS[i] = 
                  Expand[S/Sqrt[L2prodc[S, S, k, prec]]];  (*\(Print[i];\)*) 
                  i = i + 1]; 

Res[
                  nmber] = 
                Sum[Abs[ONS[q]]^2, {q, 0, k - 4*kc}]; 
Res2[
                  nmber] = 
                Res[nmber]/\((1 + Abs[z]^2)\)^\((k)\); 
fc[
                  x_, y_] = 
                N[ReplaceAll[Res2[nmber], z -> x + I*y], 
                  prec]; 
 (*\(fc[z_] := 
                    Res2[nmber];\)*) 
Print["c=", 
                c]; 
Print[
                TimeUsed[] - ttime, " sec"]; 
Result[
                  nmber] = 
                Plot3D[fc[x, y], {x, xmin, xmax}, {y, xmin, xmax}, 
                  PlotPoints -> 64, 
                  DisplayFunction -> Identity]; 
c = 
                c + cstep];\)]; 
Print["Done in ", 
          TimeUsed[] - ttime, "- Number=", nmber]
]\)

Peak2pointscomplex3D[50, 0.05, 0.05, 
      0.5, - .8`128 + 0.1`128*I,  .8`128 + 
        0.1`128*I, -3, 3, 128]

MVClear[]
MVShow3D[Result[1],MVPolygonShading->MVHollow[0.3],MVGrayBackground -> True]

MVReshapeWindow[640, 480]

MVPasteGraphics[];
 Show[MVGetGraphics3D[]];

z0 := 0.4`64 + 0.4`64*I

    Peak2pointscomplex3D[100, 0.1212, 0.1212, 0.5, -z0, z0, -2.3, 
      2.3, 64]

MVClear[]
MVShow3D[Result[1],MVPolygonShading->MVHollow[0.3],MVGrayBackground -> True]

Peak2pointscomplex3D[150, 0.1235, 0.1235, 0.5, -z0, 
      z0, - .5,  .5, 128]

Peak2pointscomplex3D[120, 0.058, 0.058, 0.05, 0.1`64, 
      0.5`64 + 0.5`64*I, -0.5, 1.5, 64]

\(Peak3pointscomplex3D[k_, cbegin_, cend_, cstep_, z2_, z3_, xmin_, 
        xmax_, prec_] := 
Module[{\ kc, c, TS, i, b, t, S, 
          ONS, ONS3, R, alpha, nmber, ttime, Res, Res2}, 

        nmber = 0; 
ttime = 
          TimeUsed[]; 
Block[{$MaxPrecision = ∞, $MinPrecision = prec}, 

          For[c = \ cbegin, c <= cend, \ 

            nmber = nmber + 1; 

kc = Round[k*c]; 

            TS[0] = Expand[
                z^\((kc)\)*\((z - z2)\)^\((kc)\)*\((z - z3)\)^\((kc)\), 
                z]; 
 (*\(Print[TS[0]];\)*) 
S = 
              Expand[TS[0]/Sqrt[L2prodc[TS[0], TS[0], k]], z]; 

            ONS[0] = S; 

            R = TS[0]; 
 (*\(Print[S];\)*) 
For[i = 1, 
              i <= \ k - 3*kc\ , 
b = Max[0, i - 2*kc]; 

              alpha[i, 
                  i] = \(-Conjugate[
                    1/L2prodc[ONS[b], z^i*R, 
                        k]]\); 
 (*\(Print[
                    N[alpha[i, i]]];\)*) 

              For[t = \ b + 1, 
                t <= \ i - 1, 
\ \ alpha[i, 
                    t] = \(-Conjugate[
                      L2prodc[ONS[t], alpha[i, i]*z^i*R, k]]\); 
                t = t + 1]; 

\ \ \ S = 
                ONS[b] + alpha[i, i]*z^i*R + 
                  Sum[alpha[i, q]*ONS[q], {q, b + 1, 
                      i - 1}]; 
ONS[i] = 
                Expand[S/Sqrt[L2prodc[S, S, k]]]; 
              i = i + 1]; 
Res[nmber] = 
              Sum[Abs[ONS[q]]^2, {q, 0, k - 3*kc}]; 
Res2[
                nmber] = 
              Res[nmber]/\((1 + Abs[z]^2)\)^\((k)\); 
fc2[
                x_, y_] = 
              ReplaceAll[Res2[nmber], 
                z -> 
                  x + I*y]; 
Print["c=", 
              c]; 
Result3pts[nmber] = 
              Plot3D[fc2[x, y], {x, xmin, xmax}, {y, xmin, xmax}, 
                PlotPoints -> 64, 
                DisplayFunction -> Identity]; 
c = 
              c + cstep]]; 
Print["Done in ", 
          TimeUsed[] - ttime, "- Number=", nmber]
]\)

Peak3pointscomplex3D[120, 0.058, 0.058, 0.05, 0.5`64, 
      0.5`64 + 0.5`64*I, -0.5, 1.5, 64]

MVClear[]
MVShow3D[Result3pts[1],MVPolygonShading->MVHollow[0.3],MVGrayBackground -> True]

MVClose[]