Either write all the functions in one file like this. (Also note that I have made few changes in your code.)
tmesh = linspace(0,pi/2,5);
solinit = bvpinit(tmesh, @f);
sol = bvp4c(@odefun, @bcfun, solinit);
plot(sol.x, sol.y, '-o');
function dzdt = odefun(t,z)
dzdt = zeros(2,1);
dzdt = [z(2); z(1)];
end
function res = bcfun(za, zb)
res = [za(1); zb(2)-2];
end
function g = f(t)
g = [sin(t) cos(t)];
end
Or create 4 files like this.
main_script:
tmesh = linspace(0,pi/2,5);
solinit = bvpinit(tmesh, @f);
sol = bvp4c(@odefun, @bcfun, solinit);
plot(sol.x, sol.y, '-o');
odefun.m:
function dzdt = odefun(t,z)
dzdt = zeros(2,1);
dzdt = [z(2); z(1)];
end
bcfun.m:
function res = bcfun(za, zb)
res = [za(1); zb(2)-2];
end
f.m:
function g = f(t)
g = [sin(t) cos(t)];
end
Best Answer