Why do I get repeated values for a variable when its parameters change with every iteration?

2 views (last 30 days)
I have a code, and I was figuring out the equations to plug into my for loops, testing as I went. The initial run throughs were fine, yielding results that weren't quite correct, but were expected. Now, while I think I have my final equations, the variable that I would like to see is getting repeating values, and I do not know why.
In my code V3 should equal A2 times V2 times 1.1, all divided by A3. A3 is constant, but A2 and V2 change with every loop iteration. However V3 is getting repeating resutls.
Code Below
Thank You
clc;
clear all;
close all;
%Define variables
d1 = .05; %m
A1 = (pi/4)*d1^2;%m^2
d3 = .01; %m
A3 = (pi/4)*d3^2;%m^2
d2 = (0.1:.1:0.5).*d1;%m
A2 = (pi/4)*d2.^2;%m^2
L = 0.5; %m
h = 3; %m
rho = 1000; %kg/m^3
Pt = [500 750 1000].*1000; %Pa gauge
g = 9.81; %m/s^2
%Preallocation Matrices
Vave = zeros();%m/s
Ptube = zeros();%Pa
V3 = zeros();%m/s
V1 = zeros();%m/s
V2 = zeros();%m/s
%Loop to iterativly calculate Vave, Ptube, V2, and V3
for j = 1: length(Pt)
for k = 1:length(d2)
Vave(j,k) = sqrt((Pt(j)*A1 +rho*g*h*A1)/((((rho*A1)/2)+...
((0.002*rho)/2)*(2*pi*(d1/2)*L)+2*pi*(d1/2)^2)));
Ptube(j,k) = Pt(j) + rho*g*h-(rho*0.002*Vave(j,k).^2)/2;
V2(j,k) = (A1*Vave(j,k))./(A2(k)*(.1+1));
V3(j,k) = (A2(k).*V2(j,k)*(1.1))/A3;
end
end
plot(V3, d2);
xlabel('Nozzle Velocity (m/s)');
ylabel('Pump Jet Nozzle diameter (m)');
legend('Pt = 500kPa', 'Pt = 750kPa', 'Pt = 1000kPa', 'location', 'southeast');

Accepted Answer

David Goodmanson
David Goodmanson on 10 Feb 2019
Hi Michael,
Vave(j,k) and Ptube(j,k) are assigned values that depend on row index j but not column index k, so each row contains all identical values. V2(j,k) brings in k dependence by dividing by A2(k), so those matrix elements change with the column index k. But V3(j,k) comes back and multiplies v2(j,k) by A2(k), canceling out the previous k dependence and leaving rows with identical values again.
  3 Comments
David Goodmanson
David Goodmanson on 11 Feb 2019
Hi Michael, the same equations have the same solutions, so if you suspect something is wrong you will have to check the underlying equations.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements 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!