【问题标题】:Vector field in matlabmatlab中的向量场
【发布时间】:2013-02-27 03:32:17
【问题描述】:

我正在尝试在 matlab 中解决这个特殊问题

"考虑系统 dr/dt = r*(l - r^2 ) + mu*r cos (theta)

d(θ)/dt = 1

当 mu = o 时,在 r =1 处有一个稳定的极限环, 证明在 ,mu > 0 时仍然存在闭合轨道,只要 mu 足够小。”

我可以画出一个封闭的极限环,但无法画出 x vs y 图的向量场。

这是我的代码..

function file->
function dy = tst(t,y)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
dy = zeros(2,1);
dy(1) = y(1)*(1-y(1)*y(1))+1.5*y(1)*cos(y(2));
dy(2) = 1;
end

script file->

[t,r] = ode45(@tst,[0, 40],[1,0]);
x = r(:,1).*cos(r(:,2)); 
y = r(:,1).*sin(r(:,2));
figure(1)
plot(x,y);

hold on

[R,T] = meshgrid(r(:,1),r(:,2));

X = R.*cos(T);

Y = R.*sin(T);

quiver(R,T,X,Y);

我的做法是错误的,绘制矢量场的正确方法是什么? 问题出在脚本文件中。

【问题讨论】:

  • 你遇到了什么错误?
  • 我没有收到任何错误,代码没有生成欲望向量场箭头。

标签: matlab


【解决方案1】:

想法是取参数的微分:

quiver(x(1:end-1),y(1:end-1),diff(x)./diff(t),diff(y)./diff(t))

【讨论】:

  • 哦,天哪,它真的有效,我将数据存储在 tha meshgrid 中,这改变了 d(theta)/dt 和 dr/dt 的值,为什么它不工作。非常感谢你。
  • 还有一个问题,我怎样才能增加箭头的大小,我通过绘图编辑工具栏尝试了这个,'MaxHeadSize'也试过了,但没有效果。
  • 绘图编辑工具栏应该可以工作。你也可以试试这里的代码:mathworks.com/matlabcentral/fileexchange/…
猜你喜欢
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多