我是Matlab的新手(刚刚下载了它),我想知道如何创建斜率场和积分曲线。
我的等式是dy / dx = x ^ 2 /(1-y ^ 2)。
我对代码的尝试是:
Ffun = @(X,Y)X.^2./(1-Y.^2); % function f(x,y)
[X,Y]=meshgrid(-5:.5:5,-5:.5:5); % choose the plot sizes
DY=Ffun(X,Y); DX=ones(size(DY)); % generate the plot values
quiver(X,Y,DX,DY);
hold on;
contour(X,Y,DY,10);
我一直在说:“警告:矩阵与工作精度是一致的。在@(X,Y)X^2/(1-Y^2)
我也得到了空白的图表。
另外,如果我能得到不同颜色的正斜率,负斜率和零斜率,那就太好了。
帮助将不胜感激,谢谢!
答案 0 :(得分:1)
在评估此函数时,您正在生成inf
值,因为它具有围绕Y = + - 1的极点。 inf
使得绘图可以扩展到荒谬......要仍然绘制此图,您可以将所有inf
值转换为NaN
(不是数字未在图中显示),如下所示:
DY(isinf(DY))=NaN;
quiver(X,Y,DX,DY);