对于微分方程
y ′ = 1 − y 2 y'=1-y^2 y′=1−y2
画出他的相图,其中 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