restart; Qi:=t->a+b*t+c*t^2+d*t^3; eqns:= {Qi(0)=y_i, D(Qi)(0)=hyp_i, Qi(1)=y_ip,D(Qi)(1)=hy_ip}; solve(eqns,{a,b,c,d}); assign(%); collect(Qi(t),[y_i,hyp_i,y_ip,hy_ip]);