如何使用 MATLAB(或非 matlab)绘制图形?

How to plot the graph using MATLAB (or not matlab))?

我有函数 fi(ϕ)=γi+sin(2⋅sinϕ) for i=1,2 where γ1=0.01 and γ2=0.02

φ1(0)=0.1 和 φ2(0)=0.2

φ1/dt=f1(φ)+d⋅sin(φ2−φ1)

φ2/dt=f2(φ)+d⋅sin(φ1−φ2)

其中 d=0.1

所以应该有类似这样的东西 table:

t     | ϕ1  | ϕ2
0.00  | 0.1 |0.2
0.01  | ... |...
0.02  | ... |...
...
100.00| ... | ...

因此需要使用接收到的值按坐标绘制图表

所以问题是如何使用MATLAB在下图中绘制函数φ2(φ1)?

所以系统的故事可能是您从两个不耦合且略有不同的方程式开始

ϕ1/dt=f1(ϕ1)
ϕ2/dt=f2(ϕ2)

并用耦合或交换项连接它们sin(ϕ2-ϕ1),

ϕ1/dt=f1(ϕ1)+d⋅sin(ϕ2−ϕ1)
ϕ2/dt=f2(ϕ2)+d⋅sin(ϕ1−ϕ2)

在 matlab 脚本中,您可以将其实现为

y0 = [ 0.1; 0.2 ];
[T,Y] = ode45(eqn,[0, 100], y0);

plot(Y(:,1),Y(:,2));

function dy_dt = eqn(t,y)
  d = 0.1;
  g = [ 0.01; 0.02 ];
  f = g+sin(2*sin(y));
  exch = d*sin(y(2)-y(1));
  dy_dt = f+[d;-d];
end%function

这几乎给出了一条以 [pi; pi] 结尾的对角线。使用更强的耦合常数 d 这会变得更有趣。

您可以将参数作为参数参数提供,然后您必须通过 odeset 在选项对象中声明它们,或者使用匿名函数在求解器调用中绑定参数。