ClearAll;Clear[f1];Clear[f2];
$DefaultFont = {"Times-Roman",10};
Needs["Statistics`DataManipulation`"];
Needs["Graphics`Graphics`"];
cumulative = {312/545,413/545,487/545,522/545,537/545,1};
datapoints = {{0,0},{1,312/545},{2,413/545},
			  {3,487/545},{4,522/545},{5,537/545},{6,1}};
density = {312/545,101/545,74/545,35/545,15/545,8/545};
F1[A_,c_,x_] = 4 A c x/(1 + A c^2) - A x^2;
F2[A_,c_,x_] = 1 - ((1 - A c^2)^2 (c/x)^(2A c^2/(1 - A c^2)))/(1 + A c^2);

f1[A_,c_,x_] = 2 A(c-x) + 2 A c(1 - A c^2)/(1 + A c^2);
f2[A_,c_,x_] = (2A c(1 - A c^2) (c/x)^((1 + A c^2)/(1 - A c^2)))/(1 + A c^2);

FF[a_,c_,x_] = Which[x<=1.5,F1[a,c,x],x>1.5,F2[a,c,x]];

error[a_,c_] = Evaluate[Apply[Plus,Table[(FF[a,c,n]-cumulative[[n]])^2,{n,1,6}]]];
leasterror = FindMinimum[error[a,c],{a,0.13,0.131,0.12,0.15},{c,1.8,1.801,1.7,2}]

xticks = {{0.135," "},{0.12,0.13,0.14,0.15}};
yticks = {{1.85," "},{1.7,1.8,1.9,2}};
zticks = {0.1,0.11};
axeslabels = Graphics3D[{Text[FontForm["A",{"Times-Roman",12}],{0.15,1.67,0}],
					   Text[FontForm["c",{"Times-Roman",12}],{0.117,2,0}],
					   Text[FontForm["z",{"Times-Roman",12}],{0.12,1.7,0.0235}]}];
plot = Plot3D[error[a,c], {a,0.12,0.15},{c,1.7,2},
				ViewPoint->{-1.4,-1.9,1.4},
				PlotRange->{{0.115,0.15},{1.65,2},{0,0.035}},
				Ticks->{{{0.115," "},0.12,{0.125," "},0.13,{0.135," "},0.14,{0.145," "},0.15},
							{{1.65," "},1.7,{1.75," "},1.8,{1.85," "},1.9,{1.95," "},2},
							{{0.005," "},{0.01," "},{0.015," "},{0.02," "},0.025,{0.03," "}}},
				AxesEdge->{{-1,-1},{-1,-1},{-1,-1}},
				Shading->True,
				ClipFill->None,
				PlotLabel->"Figure 24.3\n z = S(A,c)",
				Boxed->False,
				Axes->True,
				Mesh->True,
				MeshStyle->Dashing[{0.01,0.01}]];
Show[plot,axeslabels]