function solinit=bvpinit(x,y,parameters) solinit.solver = 'bvpinit'; if isa(x,'struct') xx=x.x; while min(xx)>min(y)&&max(xx)=max(y))=[]; if xx(end)>xx(1) xx=[min(y) xx max(y)]; else xx=[max(y) xx min(y)]; end solinit.x=xx; solinit.y=interp1(x.x,x.y,xx,"pchip","extrap"); else solinit.x = x(:)'; signdiffx=sign(diff(solinit.x)); if any(signdiffx~=signdiffx(1)) error("solinit: x must be ordered"); endif sizex=size(solinit.x); if isa(y,'function_handle'); solinit.y=y(solinit.x) elseif columns(y)==1 solinit.y=kron(y,ones(sizex)); elseif columns(y)==sizex(2) solinit.y=y; end end if nargin()==3 solinit.parameters=parameters; end end