MATLAB Answers

Wrong graph is coming with this code

조회 수: 1(최근 30일)
MINATI 7 Aug 2020
댓글: Star Strider 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));
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)];
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))];
f1 = @(x,y) S(2);
xlabel '\bfx';ylabel '\bfy';zlabel '\bff^\prime(\eta)'
hold on
%% The graph is not obeying Boundary Condition
%% I am trying graphs like Fig. (14) and another is contour (Attached)
  댓글 수: 2
MINATI 26 Aug 2020
Please have a try

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 26 Aug 2020
Using fsurf is not appropriate here.
Try this instead:
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
Star Strider
Star Strider 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!

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by