Not enough input arguments Error in bvpfcn (line 5) dydx = [y(2)*(U*y​(2)+K*y(1)​)/D];

1 visualización (últimos 30 días)
Error in bvpfcn (line 5) dydx = [y(2)*(U*y(2)+K*y(1))/D];
  5 comentarios
Naveen Krish
Naveen Krish el 15 de Mzo. de 2022
Editada: Walter Roberson el 15 de Mzo. de 2022
function dydx = ode(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
Torsten
Torsten el 15 de Mzo. de 2022
dy_dx = [dy1_dx; dy2_dx]
instead of
dy_dx = [dy_dx; dy2_dx]

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 15 de Mzo. de 2022
Editada: Jan el 16 de Mzo. de 2022
r = bvp4c(ode,bc,solinit);
% ^^^
This is a call of the function ode() without input arguments. You want to provide a function handle instead:
r = bvp4c(@ode,bc,solinit);
% ^
This will fail also:
function dydx = ode(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
The function replies "dydx", but you define "dy_dx". Easier:
function dydx = ode(y, x)
D = 0.1; % m2/s
U = 1; % m/s
K = 1e-6; % 1/s
dydx = [y(2); ...
(U * y(2) + K * y(1)) / D]; % EDITED, parentheses added
end
Remember that 1*10^-6 is a multiplication and an expensive power operation, while 1e-6 is a cheap constant.
  8 comentarios
Naveen Krish
Naveen Krish el 18 de Mzo. de 2022
Unrecognized function or variable 'solinit'.
Error in bvpfcn (line 1)
r = bvp4c(@ode,@bc,solinit);

Iniciar sesión para comentar.

Categorías

Más información sobre Numerical Integration and Differential Equations en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by