Out of memory. The likely cause is an infinite recursion within the program.

3 views (last 30 days)
% Function for speed
function fv = project_1 (v)
v = [2 3]; % Speed values
g = 9.81; % Gravity
d = .05; % Distance to Mixing System Output
ki = 2.4; % Flow Obstruction Factor in the pipe
D = .0254; % Hose diameter
pe = 746; % Electrical power of the pump
L = 2.2; % Length
ipsilon = .00000101; % Kinematic Viscosity
ro = 997; % Water Density
epsilon = .00001; % Roughness
Re = (v * D)/ ipsilon; % Reynolds Number
f = 1.325./ (log(epsilon /(3.7 * D) + 5.74./(Re.^.9 )).^ 2; % Coefficient of friction
hf = (L * f.*v.^2) / (2 * g * D) + (ki * v.^2 / (2 * g)); % Friction loss
A = 3.141592 * (D^2 / 4); % Cross sectional area
Q = v.* A; % Pipe flow
hb = w./ (Q * ro * g); % Energy gain per pump
fv = ((v.^2) / (2 * g)) + d + hf - hb; % Speed function
% Secant method
i = 2;
err = .00005;
while abs(fv(i)) > err
v(i+1) = v(i)-(fv(i)*(v(i)-v(i-1)))/(fv(i)-fv(i-1))
i=i+1;
fv(i) = project_1 (v);
if i > 100
break
end
end
I'm trying to apply the secant method to the function defined in fv, but I keep getting the out of memory message.
Out of memory. The likely cause is an infinite recursion within the program.
Error in project_1 (line 37)
fv(i) = project_1 (v);

Accepted Answer

Cris LaPierre
Cris LaPierre on 3 Dec 2020
Edited: Cris LaPierre on 3 Dec 2020
Like the error message is saying, your problem is infinite recursion. Your function name is the same as the function you define in line 37. This means the function keeps calling itself endlessly.
If you are supposed to solve this assignment using recursion, you will need to correct your stopping criteria. If not, then you should modify your approach so that your function does not call itself.

More Answers (0)

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!