Skip to main content
Log in

Preconditioning RBF collocation method by adapted finite difference matrix

  • Published:
Advances in Computational Mathematics Aims and scope Submit manuscript

Abstract

In this paper, we shall consider an adapted finite difference preconditioning technique for radial basis function (RBF) method. This technique, for the system of equations that arises from solving Helmholtz equation with Dirichlet boundary conditions by RBF collocation method, is considered. We prove that the eigenvalues of preconditioned matrices are bounded for one and two-dimensional cases. We also show that RBF interpolating matrix can be well-conditioned by using appropriate number of polynomial bases in augmented term of RBF approximation. Numerical experiments show the efficiency and robustness of the preconditioning procedure, particularly when there are non-zero boundary conditions.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Berrut, J.P., Trefethen, L.N.: Barycentric Lagrange interpolation. SIAM Rev. 46, 501–517 (2004)

    Article  MathSciNet  Google Scholar 

  2. Buhmann, M.D.: Radial Basis Functions: Theory and Implementations. Cambridge University Press, Cambridge (2004)

    MATH  Google Scholar 

  3. Canuto, C., Hussaini, M., Quateroni, A., Zang, T.: Spectral Methods: Fundamentals in Single Domains. Springer, Berlin (2006)

    Book  Google Scholar 

  4. Carr, J.C., Fright, W.R., Beatson, R.K.: Surface interpolation with radial basis functions for medical imaging. IEEE Trans. Med. Imag. 16, 96–107 (1997)

    Article  Google Scholar 

  5. Cavoretto, R., De Rossi, A., Donatelli, M., Serra-Capizzano, S.: Spectral analysis and pre- conditioning techniques for radial basis function collocation matrices. Numer. Lin. Alg. Appl. 19, 31–52 (2012)

    Article  Google Scholar 

  6. Cheng, A.H.D., Golberg, M.A., Kansa, E.J., Zammito, G.: Exponential convergence and h-c multiquadric collocation method for partial differential equations. Numer. Meth. Part. Differ. Eq. 19, 571–594 (2003)

    Article  MathSciNet  Google Scholar 

  7. Fasshauer, G.E.: RBF collocation methods and pseudospectral methods, Technical Report, Illinoise Institute of Technology (2004)

  8. Fornberg, B.: A practical guide to pseudospectral methods. In: Cambridge Monographs on Applied Computational Mathematics. Cambridge University Press, New York (1996)

  9. Fornberg, B., Piret, C.: A stable algorithm for flat radial basis functions on a sphere. SIAM J. Sci. Comput. 30, 60–80 (2007)

    Article  MathSciNet  Google Scholar 

  10. Franke, R.: Scattered data interpolation: tests of some methods. Math. Comp. 38, 181–200 (1982)

    MathSciNet  MATH  Google Scholar 

  11. Gohberg, I.C., Semencul, A.A.: On the inversion of finite Toeplitz matrices and their continuous analogs, (in Russian). Mat. Issled. 7, 201–223 (1972)

    MathSciNet  MATH  Google Scholar 

  12. Howell, G.W.: Derivative error bounds for lagrange interpolation: an extension of cauchy’s bound for the error of Lagrange interpolation. J. Approx. Theory. 67, 164–173 (1991)

    Article  MathSciNet  Google Scholar 

  13. Huckle, T.: Computations with Gohberg-SemencuI-Type Formulas for Toeplitz Matrices. Linear Algebra Appl. V 273, 169–198 (1998)

    Article  Google Scholar 

  14. Kansa, E.J., Hon, Y.C.: Circumventing the ill-conditioning problem with multiquadric radial basis functions: applications to elliptic partial differential equations. Comput. Math. Appl. 39, 423–137 (2000)

    Article  MathSciNet  Google Scholar 

  15. Kim, S.D., Parter, S.V.: Preconditioning Chebyshev spectral collocation method for elliptic partial differential equations. SIAM J. Numer. Anal. 33, 2375–2400 (1996)

    Article  MathSciNet  Google Scholar 

  16. Kim, S.D., Parter, S.V.: Preconditioning Chebyshev spectral collocation by finite difference operations. SIAM J. Numer. Anal. 34, 939–958 (1997)

    Article  MathSciNet  Google Scholar 

  17. Ling, L., Kansa, E.J.: Preconditioning for radial basis functions with domain decompo- sition methods. Math. Comput. Model. 40, 1413–1427 (2004)

    Article  Google Scholar 

  18. Ling, L.: A univariate quasi-multiquadric interpolation with better smoothness. Comput. Math. Appl. 48, 897–912 (2004)

    Article  MathSciNet  Google Scholar 

  19. Madych, W.R., Nelson, S.A.: Multivariable interpolation and conditionally positive definite functions II. Math. Comp. 54, 211–230 (1990)

    Article  MathSciNet  Google Scholar 

  20. Micchelli, C.A.: Interpolation of scattered data: distance matrices and conditionally positive definite functions. Constr Approx. 2, 11–22 (1986)

    Article  MathSciNet  Google Scholar 

  21. Miller, K.S.: On the inverse of the sum of matrices. Math. Mag. 54, 67–72 (1981)

    Article  MathSciNet  Google Scholar 

  22. Park, J., Sandberg, I.W.: Universial approximations using radial-basis-function networks. Neu. Comput. 3, 246–257 (1991)

    Article  Google Scholar 

  23. Schaback, S.: Error estimates and condition numbers for radial basis function interploation. Adv. Comput. Math. 3, 251–264 (1995)

    Article  MathSciNet  Google Scholar 

  24. Shen, J., Tang, T., Wang, L.L.: Spectral Methods: Algorithms, Analysis and Applications. Springer-Verlag, Berlin (2011)

    Book  Google Scholar 

  25. Wang, Y., Lü, F., Lu, W.: The inverse of bisymmetric matrices. Linear and Multilinear Algebra 67, 479–489 (2018)

    Article  MathSciNet  Google Scholar 

  26. Wendland, H.: Scattered data approximations. In: Cambridge Monographs on Applied Computational Mathematics, Cambridge University Press (2005)

  27. Yoon, J.: Spectral approximation order of radial basis funcion interpolation on the Sobolev space. SIAM J. Math. Anal. 33, 946–958 (2001)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgments

We thank the respected reviewers for their careful reading of our manuscript and their many insightful comments and suggestions.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to F. Ghoreishi.

Additional information

Communicated by: Robert Schaback

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix

Appendix

(**********The Mathematica code for Example 2. *********)

Clear[“Global*”];

n = Input[“Please enter n”];

b1 = 0;b2 = y;b3 = 0;

f = Input[“Please enter the RHS of your equation”];

Do[x[j] = N[Cos[j ∗Pi/n]],{j,0,n}]

(******** The Finite difference matrix ********)

h[n] = 1;

h[− 1] = 1;

Do[h[k] = x[k + 1] − x[k],{k,0,n − 1}]

equations1 = Table[2/(h[j] + h[j − 1]) ∗ (−u1[k, j + 1]/h[j] + (1/h[j] + 1/h[j − 1])

∗u1[k, j] −u1[k, j − 1]/h[j − 1]) + (b1/.{xx[k],yx[j]}) ∗ ((h[k − 1]

∗u1[k + 1,j] + (h[k] − h[k − 1]) ∗u1[k, j] − h[k] ∗u1[k − 1,j])/(2 ∗ h[k] ∗ h[k − 1]))

+(b2/.{xx[k],yx[j]}) ∗ ((h[j] ∗u1[k, j + 1] + (h[j] − h[j − 1])

∗u1[k, j] − h[j − 1]∗u1[k, j − 1])/(2 ∗ h[j] ∗ h[j − 1])) + (b3/.{xx[k],yx[j]}) ∗u1[k, j]

−(f/.{xx[k],yx[j]}),{j,0,n},{k,0,n}];

FinitUnknowns = Table[u1[0,j],{j,0,n}];

Do[FinitUnknowns = Join[FinitUnknowns,Table[u1[i, j],{j,0,n}]],{i,1,n}];FiniteDifferenceMatrix = (Normal[CoefficientArrays[Flatten[equations1],FinitUnknowns]][[2]]);

FiniteDifferenceMatrix = PadRight[FiniteDifferenceMatrix,{(n + 1)2,2 ∗ (n + 1)2}];

AugMat = PadLeft[IdentityMatrix[(n + 1)2],{(n + 1)2,2 ∗ (n + 1)2}];

FiniteDifferenceMatrix = Join[FiniteDifferenceMatrix,AugMat];

MM = PadRight[IdentityMatrix[(n + 1)2],{(n + 1)2,2 ∗ (n + 1) 2}];

Do[

a = Position[FinitUnknowns,u1[0,j]][[1]][[1]];

FiniteDifferenceMatrix = ReplacePart[FiniteDifferenceMatrix,a →MM[[a]]]

,{j,0,n}]

Do[

a = Position[FinitUnknowns,u1[n, j]][[1]][[1]];

FiniteDifferenceMatrix = ReplacePart[FiniteDifferenceMatrix,a →MM[[a]]],{j,0,n}]Do[a = Position[FinitUnknowns,u1[j,0]][[1]][[1]];

FiniteDifferenceMatrix = ReplacePart[FiniteDifferenceMatrix,a →MM[[a]]]

,{j,0,n}]

Do[

a = Position[FinitUnknowns,u1[j, n]][[1]][[1]];

FiniteDifferenceMatrix = ReplacePart[FiniteDifferenceMatrix,a →MM[[a]]]

,{j,0,n}]

(******* The RBF Collocation Matrix *******)

m = n;

c[i_,j_] = 1 + KroneckerDelta[i, j];

L[u_]:=D[u,{y,2}] + b1 ∗ D[u, y] + b2 ∗ D[u, x] + b3 ∗ u

φ[r_,i_,b_]:=Sqrt[r2 + (c[i, b])2]

norm[{x_,y_}]:=Sqrt[x2 + y2]

Do[Do[t = i + j ∗ (n + 1);X[t] = {x[j],x[i]},{j,0,n}],{i,0,n}]

(********** Lagrange interpolation ***********)

Do[pp[j] = Product[xx[i],{i,0,j − 1}] ∗Product[xx[i],{i, j + 1,n}],{j,0,n}]

Do[qq[j] = Product[yx[i],{i,0,j − 1}] ∗Product[yx[i],{i, j + 1,n}],{j,0,n}]

Do[p[i, x] = pp[i]/(pp[i]/.xx[i]),{i,0,n}];

Do[p[i, y] = qq[i]/(qq[i]/.yx[i]),{i,0,n}];

(************* Nodal points *************)

Do[Do[t = i + j ∗ (m + 1);p[t] = p[i, x] ∗ p[j, y],{j,0,m}],{i,0,m}];

PolynomialPart = Sum[𝜃[k] ∗ p[k],{k,0,(m + 1)2 − 1}];

Y = {x, y};

approximation = Sum[λ[k] ∗ φ[norm[YX[k]],k, b],{k,0,(n + 1)2 − 1}] + PolynomialPart;

For[i = 0,i ≤ (n + 1)2 − 1,i++,

If[((X[i][[1]]≠ 1)&&(X[i][[1]]≠ − 1)&&(X[i][[2]]≠ 1)&&(X[i][[2]]≠ − 1)),

r[i] = ((L[approximation])/.{xX[i][[1]],yX[i][[2]],bi}) − (f/.{xX[i][[1]],yX[i][[2]]}),

r[i] = (approximation/.{xX[i][[1]],yX[i][[2]],bi})]]

RBFUnknowns = Join[Table[λ[j],{j,0,(n + 1)2 − 1}],Table[𝜃[j],{j,0,(n + 1)2 − 1}]];

equations2 = Table[r[i],{i,0,(n + 1)2 − 1}];

RBFCollocationMatrix = Normal[CoefficientArrays[equations2,RBFUnknowns]][[2]];

Ihat = PadLeft [IdentityMatrix[2], {(n + 1)2,(n + 1)2}] ;

Ibast = PadRight [IdentityMatrix [(n + 1)2 − 2], {(n + 1)2,(n + 1)2}] ;

cons1 = Transpose[Join[Ibast,Ihat]];

RBFCollocationMatrix = Join[RBFCollocationMatrix,cons1];

RHS1 = Normal[CoefficientArrays[equations2,RBFUnknowns]][[1]];

RHS2 = ConstantArray [0,(n + 1)2] ;

RHS = Join[RHS1,RHS2];

solution1 = Chop[Solve[RBFCollocationMatrix.RBFUnknowns −RHS == 0]];

approximation = approximation/.solution1[[1]];

RBFUnknowns = Join[Table[λ[j],{j,0,(n + 1)2 − 1}],Table[𝜃[j],{j,0,(n + 1)2 − 1}]];

RBFPsmat = RBFCollocationMatrix;eigenvalues1 = Eigenvalues[RBFPsmat];real1 = Re[eigenvalues1];imaginary1 = Im[eigenvalues1];

eigenvalues1 = Table [{real1[[i]],imaginary1[[i]]}, {i,1,2(n + 1)2}] ;

m1 = Graphics[{EdgeForm[{Red,Thickness[.4]}],FaceForm[Lighter[White,1]],Disk[]}];

p1 = ListPlot[eigenvalues1,Axes →False,Frame →True,PlotMarkers →{{m1,0.029}},FrameLabel →

{“ Real ”,“Imaginary ”,,“”},GridLines →Automatic,GridLinesStyle →

Directive[RGBColor[0.7,1,0.7],Dashed],BaseStyle- >{FontSize → 6,FontFamily →Times},PlotRange →{{− 70,70},{− 80,80}},

PlotLabel →"WithoutPrecondition"]

(************ RBF interpolation matrix************)

approximation = Sum[λ[k] ∗ φ[norm[YX[k]],k, b],{k,0,(n + 1)2 − 1}] + PolynomialPart;

Do[r[i] = ((approximation)/.{xX[i][[1]],yX[i][[2]],bi}),{i,0,(n + 1)2 − 1}]

equations3 = Table[r[i],{i,0,(n + 1)2 − 1}];

RBFInterpolationMatrix = Normal[CoefficientArrays[equations3,RBFUnknowns]][[2]];

cons1 = Transpose[Join[Ibast,Ihat]];

RBFInterpolationMatrix = Join[RBFInterpolationMatrix,cons1];

(**** Computing the inverse of interpolation matrix by using algorithm 1. ****)

A1 = RBFInterpolationMatrix;

AA = ToeplitzMatrix[A1[[1]]];

ZeroMatrix = Table [0, {i,0,2(n + 1)2 − 1}, {j,0,2(n + 1)2 − 1}];

Do[B[i] = Transpose[(A1 −AA)][[i]];

B[i] = Transpose[ReplacePart[ZeroMatrix,i- >B[i]]], {i,1,2(n + 1)2}] ;

AI[1] = Chop[Inverse[AA]];

Do [AI[i + 1] = Chop[AI[i] − (1/(N[1 + Tr[B[i].AI[i]],30]) ∗AI[i].B[i].AI[i])], {i,1,2(n + 1)2}]

InvRBFInterpolationMatrix = AI [2(n + 1)2 + 1];

(************** Collocation and interpolation with boundary conditions ***********)

matrbf = RBFPsmat.InvRBFInterpolationMatrix;

MM = PadRight[IdentityMatrix[(n + 1)2],{(n + 1)2,2 ∗ (n + 1)2}];

Do[

a = Position[FinitUnknowns,u1[0,j]][[1]][[1]];

matrbf = ReplacePart[matrbf,a →MM[[a]]],

{j,0,n}];

Do[

a = Position[FinitUnknowns,u1[n, j]][[1]][[1]];

matrbf = ReplacePart[matrbf,a →MM[[a]]],

{j,0,n}];

Do[

a = Position[FinitUnknowns,u1[j,0]][[1]][[1]];

matrbf = ReplacePart[matrbf,a →MM[[a]]]

,{j,0,n}];

Do[

a = Position[FinitUnknowns,u1[j, n]][[1]][[1]];

matrbf = ReplacePart[matrbf,a →MM[[a]]]

,{j,0,n}];

PreconditionedMatrix = Inverse[FiniteDifferenceMatrix].matrbf;

eigenvalues2 = Eigenvalues[PreconditionedMatrix];

real2 = Re[eigenvalues2];

Imaginary2 = Im[eigenvalues2];

eigenvalues2 = Table [{real2[[i]],Imaginary2[[i]]}, {i,1,2(n + 1)2}] ;

m1 = Graphics[{EdgeForm[{Blue,Thickness[0.4]}],FaceForm[Lighter[White,1]],Disk[]}];

p2 = ListPlot[eigenvalues2,Axes →False,Frame →True,PlotMarkers →{{m1,0.029}},FrameLabel →

{“ Real ”,“Imaginary ”,,“”},GridLines →Automatic,GridLinesStyle →

Directive[RGBColor[0.7,1,0.7],Dashed],BaseStyle- >{FontSize → 6,FontFamily →

Times},PlotRange →{{− 2.4,1.2},{−.1,.1}},PlotLabel →"WithPrecondition"]

spectrum = Eigenvalues[PreconditionedMatrix.Transpose[PreconditionedMatrix]];

Print[“The condition number of coefficient matrix after preconditioning = ”,Sqrt[Max[Abs[spectrum]]/Min[Abs[spectrum]]]]

solution2 = −Inverse[PreconditionedMatrix].Inverse[FiniteDifferenceMatrix].RHS;

ExactSolutionution = Input[“Please enter the exact solutionution For computing the uniform norm of the error”];

error = Table[Abs[solution2[[s + 1]] − (ExactSolutionution/.{xX[s][[1]],yX[s][[2]]})],{s,0,(n + 1)2 − 1}];

UniformError = Max[error];

Print[“The uniform norm of the error for given n after preconditioning = ”,UniformError]

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Ghoreishi, F., Keshavarzi, C.G. Preconditioning RBF collocation method by adapted finite difference matrix. Adv Comput Math 45, 3293–3325 (2019). https://doi.org/10.1007/s10444-019-09738-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10444-019-09738-1

Keywords

Mathematics Subject Classification (2010)

Navigation