Not enough input arguments. Error in odefun (line 2) y1 = y(1); Error in bvp4c (line 5) sol =bvp4c(odefun,bcfun,solinit);
4 views (last 30 days)
Show older comments
function dydx = odefun(y,x) % equation to solve
y1 = y(1);
y2= y(2);
dy1_dx = y(2);
dy2_dx = [U*y2+K*y1/D];
dy_dx = [dy_dx; dy2_dx];
end
function bcfun=bvp_bc(ya,yb)
bc=[ya(1)-3*yb(1)-2];
guess =[2;1];
xmesh = linspace(0,1,5);
solinit = bvpinit(xmesh,guess);
sol =bvp4c(odefun,bcfun,solinit);
plot(sol.x,sol.y(1,:),'--o');
title('chlorine decay')
xlabel('pipe length(m)');
ylabel('Concentration (mg/L)');
function dydx = ode(x,y)
D=0.1; % m2/s
U=1; % m/s
K = 1*10^-6; % 1/s
dydx = [y(2)*(U*y(2)+K*y(1))/D];
end
function res = bc(ya,yb)
res = [ya(1)-3 yb(1)-2];
end
I need to plot C vs x using Matlab's BVP4C
0 Comments
Answers (2)
Walter Roberson
on 19 Mar 2022
As we told you in one of your other questions, the first two parameters to bvp4c need to be function handles, not function names. As in bvp4c(@odefun, @bcfun, solinit)
10 Comments
Walter Roberson
on 21 Mar 2022
guess =[2;1];
xmesh = linspace(0,1,5);
solinit = bvpinit(xmesh,guess);
sol = bvp4c(@odefun,@bcfun,solinit);
plot(sol.x,sol.y(1,:),'--o');
title('chlorine decay')
xlabel('pipe length(m)');
ylabel('Concentration (mg/L)');
function dydx = odefun(y,x) % equation to solve
y1 = y(1);
y2= y(2);
dy1_dx = y(2);
dy2_dx = [U*y2+K*y1/D];
dy_dx = [dy_dx; dy2_dx];
end
function res = bcfun(ya,yb)
res = [ya(1)-3
yb(1)-2];
end
MOSLI KARIM
on 17 Dec 2022
function ANSWER_MATHWORKII
D=0.1; % m2/s
U=1; % m/s
K = 1*10^-6;% equation to solve
guess =[2;1];
xmesh = linspace(0,1,5);
solinit = bvpinit(xmesh,guess);
sol =bvp4c(@fct,@bc,solinit);
plot(sol.x,sol.y(1,:),'--o');
title('chlorine decay')
xlabel('pipe length(m)');
ylabel('Concentration (mg/L)');
% dydx = [y(2) ; U*y(2)+(K*y(1))/D];
function yp=fct(x,y)
yp=[y(2);U*y(2)+(K*y(1))/D ];
end
function res = bc(ya,yb)
res = [ya(1)-3 ;yb(1)-2];
end
end
0 Comments
See Also
Categories
Find more on Boundary Value Problems in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!