I found this code online
bezier[pts_List] :=
With[{n = Length[pts] - 1},
Evaluate@ Sum[Binomial[n, i] (1 - #)^(n - i) #^i pts[[i + 1]], {i, 0, n}] &]
And than
yfn[pts_] :=
Piecewise[
Function[pp,
Select[
y /.
N@Solve[
Rationalize[bezier[pp][t] == {x, y} && pp[[1, 1]] <= x <= pp[[-1, 1]], 0],
{y}, {t}, Reals, Method -> Reduce] /.
Less -> LessEqual // Expand,
# == pp[[1, 2]] /. x -> pp[[1, 1]] &] /.
ConditionalExpression -> Sequence
] /@ Partition[pts, 4, 3, 1, {}],
Indeterminate
]
Rationalize and N is used, because that's what Solve would do, except Solve would issue warning messages about it. And finally
{y1, y2} = yfn /@ {Transpose[{data[[All, 1]], data[[All, 3]]}],
Transpose[{data[[All, 1]], data[[All, 2]]}]};
BUT since whoever wrote this online a couple of months ago uses mathematica 10.1, while I am still at 10.0.0.0, therefore the code doesn't work for me. Here is my printscreen
It looks as if the Solve in 10.1 version returns the result in different form than version 10.0 does. Since this is way beyond my knowledge of mathematica, could somebody please let me know how to edit the code so that it would work in version 10.0 ?