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.
Similar content being viewed by others
References
Berrut, J.P., Trefethen, L.N.: Barycentric Lagrange interpolation. SIAM Rev. 46, 501–517 (2004)
Buhmann, M.D.: Radial Basis Functions: Theory and Implementations. Cambridge University Press, Cambridge (2004)
Canuto, C., Hussaini, M., Quateroni, A., Zang, T.: Spectral Methods: Fundamentals in Single Domains. Springer, Berlin (2006)
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)
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)
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)
Fasshauer, G.E.: RBF collocation methods and pseudospectral methods, Technical Report, Illinoise Institute of Technology (2004)
Fornberg, B.: A practical guide to pseudospectral methods. In: Cambridge Monographs on Applied Computational Mathematics. Cambridge University Press, New York (1996)
Fornberg, B., Piret, C.: A stable algorithm for flat radial basis functions on a sphere. SIAM J. Sci. Comput. 30, 60–80 (2007)
Franke, R.: Scattered data interpolation: tests of some methods. Math. Comp. 38, 181–200 (1982)
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)
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)
Huckle, T.: Computations with Gohberg-SemencuI-Type Formulas for Toeplitz Matrices. Linear Algebra Appl. V 273, 169–198 (1998)
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)
Kim, S.D., Parter, S.V.: Preconditioning Chebyshev spectral collocation method for elliptic partial differential equations. SIAM J. Numer. Anal. 33, 2375–2400 (1996)
Kim, S.D., Parter, S.V.: Preconditioning Chebyshev spectral collocation by finite difference operations. SIAM J. Numer. Anal. 34, 939–958 (1997)
Ling, L., Kansa, E.J.: Preconditioning for radial basis functions with domain decompo- sition methods. Math. Comput. Model. 40, 1413–1427 (2004)
Ling, L.: A univariate quasi-multiquadric interpolation with better smoothness. Comput. Math. Appl. 48, 897–912 (2004)
Madych, W.R., Nelson, S.A.: Multivariable interpolation and conditionally positive definite functions II. Math. Comp. 54, 211–230 (1990)
Micchelli, C.A.: Interpolation of scattered data: distance matrices and conditionally positive definite functions. Constr Approx. 2, 11–22 (1986)
Miller, K.S.: On the inverse of the sum of matrices. Math. Mag. 54, 67–72 (1981)
Park, J., Sandberg, I.W.: Universial approximations using radial-basis-function networks. Neu. Comput. 3, 246–257 (1991)
Schaback, S.: Error estimates and condition numbers for radial basis function interploation. Adv. Comput. Math. 3, 251–264 (1995)
Shen, J., Tang, T., Wang, L.L.: Spectral Methods: Algorithms, Analysis and Applications. Springer-Verlag, Berlin (2011)
Wang, Y., Lü, F., Lu, W.: The inverse of bisymmetric matrices. Linear and Multilinear Algebra 67, 479–489 (2018)
Wendland, H.: Scattered data approximations. In: Cambridge Monographs on Applied Computational Mathematics, Cambridge University Press (2005)
Yoon, J.: Spectral approximation order of radial basis funcion interpolation on the Sobolev space. SIAM J. Math. Anal. 33, 946–958 (2001)
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
Corresponding author
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/.{x → x[k],y → x[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/.{x → x[k],y → x[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/.{x → x[k],y → x[j]}) ∗u1[k, j]
−(f/.{x → x[k],y → x[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[r∧2 + (c[i, b])∧2]
norm[{x_,y_}]:=Sqrt[x∧2 + y∧2]
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[x − x[i],{i,0,j − 1}] ∗Product[x − x[i],{i, j + 1,n}],{j,0,n}]
Do[qq[j] = Product[y − x[i],{i,0,j − 1}] ∗Product[y − x[i],{i, j + 1,n}],{j,0,n}]
Do[p[i, x] = pp[i]/(pp[i]/.x → x[i]),{i,0,n}];
Do[p[i, y] = qq[i]/(qq[i]/.y → x[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[Y − X[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])/.{x → X[i][[1]],y → X[i][[2]],b → i}) − (f/.{x → X[i][[1]],y → X[i][[2]]}),
r[i] = (approximation/.{x → X[i][[1]],y → X[i][[2]],b → i})]]
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[Y − X[k]],k, b],{k,0,(n + 1)∧2 − 1}] + PolynomialPart;
Do[r[i] = ((approximation)/.{x → X[i][[1]],y → X[i][[2]],b → i}),{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/.{x → X[s][[1]],y → X[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
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10444-019-09738-1