MATLAB Answers

Wrong graph is coming with this code

2 views (last 30 days)
MINATI
MINATI on 7 Aug 2020
Commented: Star Strider on 27 Aug 2020
function main
A=0.5; pr=1; a=1; phi=0.1;rhos=997.1;Cps=4179;ks=0.613;rhof=8933;Cpf=385;kf=401;
a1=(1-phi)^-2.5*((1-phi)+phi*(rhos/rhof)); Knf=(ks+2*kf-2*phi*(kf-ks))/(ks+2*kf+phi*(kf-ks));
a2=((1-phi)+phi*((rhos*Cps)/(rhof*Cpf)))*Knf;
xa = 0;xb = 5;solinit=bvpinit(linspace(xa,xb,101),[0 1 0 a 1 0 0 0]);
sol = bvp4c(@ode,@bc,solinit); x = linspace(xa,xb,101);S = deval(sol,x);
function res = bc(ya,yb)
res = [ya(1); ya(2)-1; ya(4); ya(5)-a; ya(7)-1; yb(2); yb(5); yb(7)];
end
function dydx = ode(~,y)
dydx = [y(2); y(3); 2*a1*y(2)*(y(2)+y(5))-a1*y(3)*(y(1)+y(4));
y(5); y(6); 2*a1*y(5)*(y(2)+y(5))-a1*y(6)*(y(1)+y(4));
y(8); A*pr*a2*y(7)*(y(2)+y(5))-pr*a2*y(8)*(y(1)+y(4))];
end
figure(14)
f1 = @(x,y) S(2);
fsurf(f1)
xlabel '\bfx';ylabel '\bfy';zlabel '\bff^\prime(\eta)'
hold on
end
%% The graph is not obeying Boundary Condition
%% I am trying graphs like Fig. (14) and another is contour (Attached)

  2 Comments

MINATI
MINATI on 10 Aug 2020
can anyone share idea here

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 26 Aug 2020
Using fsurf is not appropriate here.
Try this instead:
figure(14)
hs = surf(S);
grid on
xlabel '\bfx';ylabel '\bfy';zlabel '\bff^\prime(\eta)'
% shading('interp') % Optional
% hs.EdgeColor = 'none'; % Optional
That produces this plot:
I am not certain what the reference to ‘S(2)’ is suposed to do, beccause ‘S’ is a matrix. This plots the entire matrix.
.

  6 Comments

Show 3 older comments
Star Strider
Star Strider on 26 Aug 2020
Create a second loop for ‘a’:
function main
A = 0.5; pr = 1; %%a = 1; phi = 0.1;
rhos = 997.1;Cps=4179;ks=0.613;rhof=8933;Cpf=385;kf=401;
phiv = linspace (0,0.15,101);
av = [0 0.2 0.5 1];
for k = 1:numel(av)
a = av(k);
for i = 1:length(phiv)
phi = phiv(i);
a1=(1-phi)^2.5*((1-phi)+phi*(rhos/rhof)); Knf=(ks+2*kf-2*phi*(kf-ks))/(ks+2*kf+phi*(kf-ks));
a2 =((1-phi)+phi*((rhos*Cps)/(rhof*Cpf)))*Knf;
BCres = @(ya,yb)[ya(1); ya(2)-1; ya(4); ya(5)-a; ya(7)-1; yb(2); yb(5); yb(7)];
fODE = @(x,y)[y(2); y(3); 2*a1*y(2)*(y(2)+y(5))-a1*y(3)*(y(1)+y(4));
y(5); y(6); 2*a1*y(5)*(y(2)+y(5))-a1*y(6)*(y(1)+y(4));
y(8); A*pr*a2*y(7)*(y(2)+y(5))-pr*a2*y(8)*(y(1)+y(4))];
xa = 0;xb = 5;solinit=bvpinit(linspace(xa,xb,101),[0 1 0 a 1 0 0 0]);
sol = bvp4c(fODE,BCres,solinit);x = linspace(xa,xb,101);S = deval(sol,x);
Sk(i,k) = S(3,1)/((1-phi)^2.5); Nu(i,1) = - Knf * S(5,1);
end
end
figure(10)
surf(av, phiv, Sk)
% % title '(b)'
xlabel('a')
ylabel('\bf\phi');
zlabel('\bfSk_{r}')
view(40,40)
end
Also, put the surf call after both loops.
This then creates a matrix for ‘Sk’ that you can use with surf.
.
MINATI
MINATI on 27 Aug 2020
Thanks Star Strider
You are awsome.
Any way the first problem remain unanswered (Attached pdf)
surf(x, y, S(2,:)) and contour
pdf exist means code can be created but I can't.
But I have confidence on You in this matter. If you agree take your time to create.
A great thanks!
Star Strider
Star Strider on 27 Aug 2020
Thank you!
Your ccode does not produce the plot in the .PDF file. I have no idea what you are doing.
You can use essentially the same code to create the contour plot as the surf plot. Just call contour instead of surf, and remove the zlabel and view calls.
As always, my pleasure!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!