using Plots
function plotapprox(f0, fapp, lb, ub, xfit; np=25)
xp = range(lb[1],ub[1], np)
yp = range(lb[2],ub[2], np)
p1 = surface(xp, yp, (x, y) -> f0([x y]), title="f0")
#scatter!([x[1] for x in xfit], [x[2] for x in xfit], f0.(xfit), marker_z = f0.(xfit), title="f0")
p2 = surface(xp, yp, (x, y) -> fapp([x y]), title="Approximation")
#scatter!([x[1] for x in xfit], [x[2] for x in xfit], fapp.(xfit), marker_z = fapp.(xfit))
err = surface(xp,yp,(x,y)->(fapp([x y]) - f0([x y])), title="Error")
scatter!([x[1] for x in xfit], [x[2] for x in xfit], fapp.(xfit) - f0.(xfit), marker_z = fapp.(xfit)-f0.(xfit))
return(p1,p2, err)
end
plot(plotapprox(f0,radial,lb,ub,x)...)