matlab绘制庞加莱截面_matlab画的相图和庞加莱截面图

昨天刚知道什么是相图和庞加莱截面,今天用matlab实现,给我的感觉虽然能画出图但理论基础还差得远。以前我是用vc++编程,现在发现用matlab编程真是太简单了,不过简单归简单就是效率有点低与vc++相比;

相图和庞加莱截面图实现:

第一步,建立一个M文件,用来存贮函数,本例题以达芬方程为例,其中force为参数

function df=dafen(t,x,flag,force)

df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)];

第二步,建立一个画图的M文件

clear ff=0.222;

options=odeset(RelTol,1e-7); %定义误差精度的,系统默认1e-3,如果改为1e-3,X将等于0

tt=2*pi/1.2 %定义步长的

[t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],options,[],ff);

plot(x(2000:end,1),x(2000:end,2),-)

%X=x-xxx %检验options的 %

pojialai hold on

i=2000:100:3000;

plot(x(i,1),x(i,2),*)

昨天刚知道什么是相图和庞加莱截面,今天用matlab实现,给我的感觉虽然能画出图但理论基础还差得远。以前我是用vc++编程,现在发现用matlab编程真是太简单了,不过简单归简单就是效率有点低与vc++相比; 相图和庞加莱截面图实现: 第一步,建立一个M文件,用来存贮函数,本例题以达芬方程为例,其中force为参数 function df=dafen(t,x,flag,force) df=[x(2);force*cos(1.2*t)-x(1)^3+x(1)-0.3*x(2)]; 第二步,建立一个画图的M文件 clear ff=0.222; options=odeset(RelTol,1e-7); %定义误差精度的,系统默认1e-3,如果改为1e-3,X将等于0 tt=2*pi/1.2 %定义步长的 [t,x]=ode45(@dafen,[0:tt/100:80*tt],[0,0],options,[],ff); plot(x(2000:end,1),x(2000:end,2),-) %X=x-xxx %检验options的 % pojialai hold on i=2000:100:3000; plot(x(i,1),x(i,2),*)
经验分享 程序员 微信小程序 职场和发展