簡體   English   中英

如何在Matlab中繪制斜率場?

[英]How to plot slope fields in Matlab?

我是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)我還得到了空白圖形。

另外,如果我能獲得不同顏色的正,負和零斜率,那就太好了。

幫助將不勝感激,謝謝!

您在評估此函數時會產生inf值,因為它的極點在Y = +-1附近。 inf使圖按比例縮放以荒謬。...仍要繪制此圖,您可以將所有inf值轉換為NaN (圖中未顯示數字):

DY(isinf(DY))=NaN;
quiver(X,Y,DX,DY);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM