MATLAB dibuja un diagrama de fase / campo de dirección / campo vectorial de ecuación diferencial

Para ecuaciones diferenciales

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

Dibuja su diagrama de fase, donde x ∈ [- 3, 3] x \ in [-3,3]X[ - 3 ,3 ] ,y ∈ [- 3.3] y \ in [-3.3]y[ - . 3 .. 3 ] , tamaño de pasoh = 0,2 h = 0,2h=0 . 2 , flecha longitudc = 0,01 c = 0,01C=0 . 0 1

Entonces el código MATLAB es

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

Inserte la descripción de la imagen aquí


9 de febrero de 2021 20:35:54

Supongo que te gusta

Origin blog.csdn.net/Infinity_07/article/details/113775210
Recomendado
Clasificación