MATLAB绘制微分方程的相图/方向场/向量场

对于微分方程

y ′ = 1 − y 2 y'=1-y^2 y=1y2

画出他的相图,其中 x ∈ [ − 3 , 3 ] x\in[-3,3] x[3,3] , y ∈ [ − 3.3 ] y\in [-3.3] y[3.3],步长为 h = 0.2 h=0.2 h=0.2,箭头长为 c = 0.01 c=0.01 c=0.01

则MATLAB代码为

clc,clear,close all
c=0.01;
x_0=-3:0.2:3;
y_0=-3:0.2:3;
[x,y]=meshgrid(x_0,y_0);
d=sqrt(1+(1-y.^2).^2);
u=c./d;
v=c*(1-y.^2)./d;
quiver(x,y,u,v);
xlim([-3,3])
ylim([-3,3])
%		下面几行代码用来绘制初值为 y(0)=1.6 的数值解图像
%		[X,Y]=ode45(@(x,y) 1-y.^2,[-3,3],[0,1.6]);
%		hold on
%		plot(X,Y(:,2),'-r',"LineWidth",2)
%		hold off
%%%%%%%%%% 以下代码保存成 ode1.m 文件 %%%%%%%%%%
%		function dy= ode1(~,y)
%    		dy = 1:1-y(2).^2;
%    	end

在这里插入图片描述


2021年2月9日20:35:54

猜你喜欢

转载自blog.csdn.net/Infinity_07/article/details/113775210