Gradient vector field not perpendicular to contour map
Show older comments
I have the following code:
function [ ] = kermack( I0,r,p,c,N,numSteps )
I(1)=I0;
S(1)=N-I0;
for t = 1:numSteps % construct I and S vectors
I(t+1) = I(t) + (p*c*I(t)*S(t) - r*I(t));
S(t+1) = S(t) - p*c*I(t)*S(t);
end
% create contour
x = min(I):0.2:max(I);
y = min(S):0.2:max(S);
[xx,yy] = meshgrid(x,y);
zz = xx + yy - (r/(p*c))*log(yy); % f(I,S)
[DX,DY] = gradient(zz);
figure % new window
contour(xx,yy,zz)
hold on % superimpose graphs
scale=10; % to make the arrows visible
quiver(xx,yy,DX,DY,scale) % vector field of f(I,S)
xlim([0 60]); % set bounds on the window
ylim([0,80]);
xlabel('I(t) (infected/infectious population)');
ylabel('S(t) (susceptible population)');
hold off
Now, as made clear by the title of my question, the generated gradient vector field doesn't seem to be perpendicular with the superimposed contour mapping. How can this be? What am I doing wrong?
5 Comments
KSSV
on 10 Oct 2017
What's the input data? and what is your purpose?
Cole Butler
on 11 Oct 2017
David Goodmanson
on 11 Oct 2017
Hi Cole,
could you supply a set of six input parameters that can be used to illustrate the problem?
KSSV
on 12 Oct 2017
Give the input directly.....how did you run code and what you expect?
Cole Butler
on 16 Oct 2017
Accepted Answer
More Answers (0)
Categories
Find more on Surface and Mesh Plots 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!