How to plot array graph based on the equation?

5 views (last 30 days)
Hi, I need help on how to plot array graph based on the coding that I have program it?
%Parameters to define the governing casson fluid equation and the
%parameters value range
L = 1; % Length of the artery
maxk= 10; % Number of time steps
tmax = 0.1; % Maximum time
delta_t = tmax/maxk; % Time step
n = 10; % Number of space steps
delta_x = L/n; % Radial direction
%Initial conditions of velocity
for i = 1:n+1
u(i,1) = (i*delta_x)^2 + 2;
%disp(u(i,1));
end
% Boundary conditions
for k=1:maxk+1
u(1,k) = 2+4*(k*delta_t);
u(n,k) = 3+4*(k*delta_t);
end
% Implementation of the explicit
for k=1:maxk % Time Loop
for i=2:n % Space Loop
%S10 = (u(2,k)-2*u(1,k)+u(2,k))/((delta_x)^2);
%S20 = (u(2,k)-u(2,k))/(2*delta_x);
%u(1,k+1) = u(1,k)+ delta_t*(S10+S20+2-2*(1*delta_x));
%disp(u(1,k+1))
S1 = (u(i+1,k)-2*u(i,k)+u(i-1,k))/((delta_x)^2);
S2 = (u(i+1,k)-u(i-1,k))/(2*delta_x);
u(i,k+1) = u(i,k)+ delta_t*(S1+S2+2-2*(i*delta_x));
disp(u(i,k+1))
S1n = ((2*delta_x) + u(n,k)-2*u(n,k)+u(n-1,k))/((delta_x)^2);
S2n = ((2*delta_x) + u(n,k)-u(n-1,k))/(2*delta_x);
u(n,k+1) = u(n,k)+ delta_t*(S1n+S2n+2-2*(n*delta_x));
disp(u(n,k+1))
end
end

Answers (1)

Voss
Voss on 27 Dec 2021
If you want to plot u vs r, with one line for each time, you can do
plot(u);
or, if you want to plot u vs time, with one line for each r, you can do:
plot(u.');
or, if you want to show u vs r and time, you might try:
pcolor(u);
  6 Comments
Nur Nadhirah Syed Malik
Nur Nadhirah Syed Malik on 31 Dec 2021
I have tried it, but other error popping out " Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 1-by-3.
Error in cassoneqcode1 (line 29)
u(1,j+1) = u(1,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S10) + (1./r)* (S20))); "
%Parameters to define the governing casson fluid equation and the
%parameters value range
L= 1; % Length of the artery
maxk= 10; % Number of time steps
tmax = 0.1; % Maximum time
delta_t = tmax/maxk; % Time step
n = 10; % Number of space steps
delta_r = L/n; % Radial direction
Beta1 = 0.025; % Casson fluid parameter
A0 = 0.2; % Amplitude of systolic pressure gradient
A1 = 0.4; % Amplitude of diastolic pressure gradient
omega = pi/4;
%Initial conditions of velocity
for i = 1:n+1
u(i,1) = 0;
disp(u(i,1));
end
% Boundary conditions
for j=1:maxk+1
u(1,j) = 0;
u(n,j) = 0;
end
% Implementation of the explicit
for j=1:maxk % Time Loop
for i=2:n % Space Loop
S10 = (u(2,j)-2*u(1,j)+u(2,j))/((delta_r)^2);
S20 = (u(2,j)-u(1,j))/(delta_r);
u(1,j+1) = u(1,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S10) + (1./r)* (S20)));
disp(u(1,j+1))
S1 = (u(i+1,j)-2*u(i,j)+u(i-1,j))/((delta_r)^2);
S2 = (u(i+1,j)-u(i,j))/(delta_r);
u(i,j+1) = u(i,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S1) + (1./r)* (S2)));
disp(u(i,j+1))
S1n = (u(n+1,j)-2*u(n,j)+u(n-1,j))/((delta_r)^2);
S2n = (u(n+1,j)-u(n,j))/(delta_r);
u(n,j+1) = u(n,j) + delta_t*(A0 + A1*cos(omega*t) + Beta1*((S1n) + (1./r)* (S2n)));
disp(u(n,j+1))
end
end
%Graphical representation of the velocity at different selected times
plot(linspace(0,L,n+1),u);
grid on
title('Velocity vs Radius')
xlabel('Radius(r)')
ylabel('Velocity (m/s)')
Voss
Voss on 31 Dec 2021
Check your definition of the variable t. It does not appear in the code you showed. Or maybe t should be related to j (the time loop iterator) and delta_t.

Sign in to comment.

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!